中文 English

别再用那些臃肿的内网穿透了!手把手带你用 EasyTier 在 Ubuntu 26.04 搭建去中心化虚拟局域网

发布时间: 2026-05-26
EasyTier Ubuntu 26.04 内网穿透 虚拟局域网 Systemd WireGuard P2P 自动启动

先说结论

在多设备互联的今天,异地组网(虚拟局域网)已经成为刚需。传统的 ZeroTier、Tailscale 虽然优秀,但往往受制于中心化控制器和服务器位于国外的问题,导致握手慢、打洞成功率低。而自建 frp / nps 又需要一台公网 IP 服务器,且流量全部经过服务器中转,带宽有限。

EasyTier 是一款使用 Rust 语言编写的、完全去中心化的虚拟局域网组网工具。它最大的特点是:节点对等。一旦节点通过握手互相认识,即使最初的中继/引导服务器挂了,节点间依然能保持稳定的 P2P 通信。更令人兴奋的是,它原生支持子网代理(网对网)内置 WireGuard 门户。本文将手把手带你在最新的 Ubuntu 26.04 LTS 上,从零开始安装、配置并以 Systemd 服务托管运行最新版的 EasyTier。

本文所有配置、命令及拓扑结构均采用通用占位符,不包含任何真实内网敏感信息。


1. 为什么选择 EasyTier?

在尝试了各种组网方案后,EasyTier 凭借以下优势脱颖而出:

  1. 完全去中心化 (Decentralized):没有强依赖的中心化控制台。节点之间是平等的。
  2. 极速打洞与高性能:得益于 Rust 和 Tokio 异步框架,EasyTier 的网络性能极高,CPU/内存占用极低。在支持 FullCone 的网络环境下,打洞成功率极高;即便无法打洞,也能通过自建或公共的中继节点进行流量转发。
  3. 极简的部署方式:官方提供单文件二进制,没有任何动态链接库依赖,解压即用。
  4. 功能丰富
    • 子网代理 (Subnet Proxy):允许某一个节点将其所在的物理局域网段(如 192.168.1.0/24)共享给虚拟网络中的其他设备,免去在每台设备上安装客户端的麻烦。
    • 内置 WireGuard 支持:EasyTier 节点可以直接充当 WireGuard 门户,让 iPhone、Android 等移动设备使用原生的 WireGuard App 接入虚拟网络。

下面是官方提供的客户端 GUI 配置与运行状态示意图,设计十分现代且清晰:

EasyTier 配置页面

图 1:EasyTier 官方客户端配置界面示例

EasyTier 运行状态

图 2:EasyTier 官方客户端运行状态图


2. 环境准备与网络边界

在开始前,请确认你的 Ubuntu 26.04 系统已联网。如果你的设备位于严苛的防火墙后,请确保至少能发起出站的 UDP/TCP 请求。

为了演示,我们将假设以下网络规划:


3. 在 Ubuntu 26.04 上安装 EasyTier

在 Ubuntu 26.04 上,我们可以通过官方的一键安装脚本或者手动下载二进制包进行安装。推荐使用一键安装脚本,它会自动配置 Systemd 服务模块,非常省心。

方法一:使用官方一键脚本安装(推荐)

在终端执行以下命令:

curl -fsSL "https://github.com/EasyTier/EasyTier/blob/main/script/install.sh?raw=true" | sudo bash -s install

提示:如果遇到 GitHub 连接速度慢或被墙的问题,可以使用官方脚本中内置的 Github Proxy 镜像(例如 ghfast.top),脚本会默认尝试使用代理下载。

该脚本在运行时会完成以下工作:

  1. 检测当前 CPU 架构(如 x86_64aarch64)。
  2. 从 GitHub Releases 下载最新版本的压缩包。
  3. 将可执行文件解压到 /opt/easytier/ 目录下。
  4. 创建默认的空配置文件 /opt/easytier/config/default.conf
  5. 生成 Systemd 服务模板 /etc/systemd/system/easytier@.service
  6. 创建软链接 /usr/sbin/easytier-core/usr/sbin/easytier-cli 到系统路径。
  7. 启动名为 easytier@default 的 Systemd 服务。

安装完成后,你可以通过运行以下命令验证版本:

easytier-core --version
easytier-cli --version

方法二:手动二进制安装

如果你倾向于完全手动控制,可以直接下载官方预编译的 Linux 二进制包。

  1. 打开 EasyTier GitHub Releases 获取最新版链接(以 v2.1.3 为例)。
  2. 下载并解压:
    wget https://github.com/EasyTier/EasyTier/releases/download/v2.1.3/easytier-linux-x86_64-v2.1.3.zip
    unzip easytier-linux-x86_64-v2.1.3.zip -d /opt/easytier
    
  3. 赋予可执行权限并链接到系统路径:
    chmod +x /opt/easytier/easytier-core /opt/easytier/easytier-cli
    sudo ln -s /opt/easytier/easytier-core /usr/sbin/easytier-core
    sudo ln -s /opt/easytier/easytier-cli /usr/sbin/easytier-cli
    

4. 详解 EasyTier 配置文件

当使用一键脚本安装后,EasyTier 的配置文件位于 /opt/easytier/config/。由于脚本生成的是参数化的 Systemd 服务(easytier@.service),这意味着你可以拥有多个配置文件。

例如,/opt/easytier/config/default.conf 对应系统服务 easytier@default.service;如果你新建一个 /opt/easytier/config/office.conf,则可以通过 systemctl start easytier@office 来启动它。

以下是一个生产环境可用的 /opt/easytier/config/default.conf 详细配置模板,你可以使用编辑器进行修改:

# 实例名称,用以区分不同的局域网实例
instance_name = "default"

# 虚拟网卡 IP 地址。如果启用 DHCP,可以留空或设置为 ""
# 这里我们手动指定固定 IP 10.144.144.1,子网掩码为 24 位
ipv4 = "10.144.144.1"

# 是否启用内建的 DHCP 客户端,自动获取 IP
dhcp = false

# 本地监听地址,支持多种协议。用于其他节点向本节点发起连接
listeners = [
    "tcp://0.0.0.0:11010",
    "udp://0.0.0.0:11010",
    "wg://0.0.0.0:11011",
    "ws://0.0.0.0:11011/",
    "wss://0.0.0.0:11012/",
]

# 静态指定的对端节点。如果你有公网 IP 服务器,可以将其填在这里作为引导节点
# 如果没有,可以使用官方或社区共享的引导节点,例如:
[[peer]]
uri = "tcp://public.easytier.top:11010"

# 虚拟网络的身份凭证,只有网络名称和密钥匹配的节点才能互相通信
[network_identity]
network_name = "my_secure_net"
network_secret = "my_super_secret_password"

# 运行参数与优化标志
[flags]
# 默认传输协议,推荐 udp。如果 udp 受限会自动回退到 tcp
default_protocol = "udp"
# 虚拟网卡设备名称,留空则由系统自动命名(如 et_xxxx)
dev_name = ""
# 开启传输加密,确保数据安全
enable_encryption = true
# 允许 IPv6 通信
enable_ipv6 = true
# 最大传输单元 MTU 限制,一般 1380-1420 较为稳定
mtu = 1380
# 延迟优先模式。如果为 true,会尽量走低延迟链路
latency_first = false
# 是否开启出口节点功能
enable_exit_node = false
# 不创建虚拟网卡(仅作为中继节点时开启)
no_tun = false
# 限制 P2P 连接(仅通过中继)
p2p_only = false

编辑完成后,保存并退出。


5. Systemd 托管服务配置与运行

为了让 EasyTier 像一个真正的系统后台服务那样稳定运行,我们需要使用 Ubuntu 的 Systemd 机制。

一键脚本已经为我们写好了服务模板。我们可以直接检查一下该服务文件:

# /etc/systemd/system/easytier@.service
[Unit]
Description=EasyTier Service (Instance %i)
Wants=network.target
After=network.target network.service
StartLimitIntervalSec=0

[Service]
Type=simple
WorkingDirectory=/opt/easytier
ExecStart=/opt/easytier/easytier-core -c /opt/easytier/config/%i.conf
Restart=always
RestartSec=1s

[Install]
WantedBy=multi-user.target

5.1 启动与自启命令

配置好 /opt/easytier/config/default.conf 后,依次执行以下命令:

# 重新加载 Systemd 配置
sudo systemctl daemon-reload

# 启用并立即启动 default 实例服务
sudo systemctl enable easytier@default --now

5.2 状态检查

你可以通过以下命令检查服务是否正常启动:

sudo systemctl status easytier@default

如果输出中显示 active (running),则说明 EasyTier 已经在后台跑起来了!

5.3 防火墙(UFW)配置

EasyTier 默认会在 11010 端口上监听 UDP/TCP。如果你的 Ubuntu 开启了 UFW 防火墙,请务必放行该端口,否则其他节点将无法与你建立直连通道,导致流量全部走慢速中转。

sudo ufw allow 11010/tcp
sudo ufw allow 11010/udp
sudo ufw reload

6. 验证互联状态与 CLI 工具使用

EasyTier 提供了一个非常强大的命令行工具 easytier-cli,我们可以使用它来实时监测网络状态和链路信息。

6.1 查看网卡信息

运行以下命令,你可以看到本地节点的信息:

easytier-cli node

6.2 查看已连接的 Peers

当你在另一台机器(例如 Windows 或另一台 Linux)上也运行了配置相同 network_namenetwork_secret 的 EasyTier,并指向了同一个引导节点后,两台设备应该会在数秒内完成直连握手。

执行以下命令查看连接的对端:

easytier-cli peer

你将看到类似下面的表格:

| ipv4         | hostname       | cost  | lat_ms | loss_rate | rx_bytes | tx_bytes | tunnel_proto | nat_type | id         | version         |
| ------------ | -------------- | ----- | ------ | --------- | -------- | -------- | ------------ | -------- | ---------- | --------------- |
| 10.144.144.1 | ubuntu-2604    | Local | *      | *         | *        | *        | udp          | FullCone | 439804259  | 2.1.3-70e69a38~ |
| 10.144.144.2 | win-desktop    | p2p   | 5.12   | 0         | 112.3 kB | 94.4 kB  | udp          | FullCone | 390879727  | 2.1.3-70e69a38~ |

这里 cost 显示为 p2p,表明两台设备之间成功打洞,建立了端到端的直接 UDP 连接,数据不再经过第三方服务器,速度将取决于两端物理宽带的上传/下载极限!

6.3 查看详细路由表

easytier-cli route

你会在输出中看到整个虚拟网络的拓扑和各节点之间的下一跳路由关系。

路由表同步

图 3:easytier-cli 路由状态输出示例(展示子网代理解析)


7. 进阶实战玩法

除了基础的异地一对一互联,EasyTier 还支持许多高阶网络拓扑。

7.1 子网代理(网对网穿透)

如果你希望将 Ubuntu 26.04 所在的实体局域网(例如 192.168.1.0/24)共享给虚拟网里的其他节点,让它们无需安装客户端即可直接访问局域网内的 NAS、打印机等设备,你可以配置子网代理

编辑配置文件:

# 在 [flags] 部分或全局部分添加 proxy_cidrs
# 允许把本地 192.168.1.0/24 网段代理到虚拟网中
proxy_cidrs = [ "192.168.1.0/24" ]

保存并重启服务:

sudo systemctl restart easytier@default

这样,虚拟网内的其他节点(如 10.144.144.2)就会自动在路由表中同步这条指向 192.168.1.0/24 且下一跳为 10.144.144.1 的静态路由。

注意:Ubuntu 主机需要开启 IP 转发(IP Forwarding)才能正常充当路由器角色。 临时开启:echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward 永久开启:编辑 /etc/sysctl.conf,取消 net.ipv4.ip_forward=1 的注释,然后执行 sudo sysctl -p

7.2 内置 WireGuard 门户(支持手机接入)

EasyTier 并不支持 iOS/Android 平台的原生客户端,但它极其聪明地内置了 WireGuard Portal。也就是说,你可以让 Ubuntu 运行的 EasyTier 充当一个 WireGuard 服务端,手机使用标准的 WireGuard 客户端连接它,即可融入整个虚拟局域网。

在配置文件中添加以下配置:

# 在 listeners 中添加 wg 监听端口
listeners = [
    "tcp://0.0.0.0:11010",
    "udp://0.0.0.0:11010",
    "wg://0.0.0.0:11013/10.14.14.0/24",  # 新增此行,10.14.14.0/24 是分配给 WG 客户端的独立网段
]

重启服务:

sudo systemctl restart easytier@default

然后,你可以使用命令行生成供手机导入的 WireGuard 配置文件:

easytier-cli vpn-portal

此命令将输出类似下面的标准 WireGuard 配置。你只需要将其保存为 .conf 文件,或者使用二维码工具生成二维码,用手机客户端扫码导入即可:

[Interface]
PrivateKey = <ClientPrivateKey>
Address = 10.14.14.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = <ServerPublicKey>
Endpoint = <你的公网IP或域名>:11013
AllowedIPs = 10.144.144.0/24, 192.168.1.0/24
PersistentKeepalive = 25

8. 常见问题排查与调优

8.1 无法打洞成功,全是 relay?

8.2 网络延迟较高或有丢包?


9. 总结

EasyTier 作为一个新一代的 Rust 异地组网工具,以其彻底的去中心化架构原生子网代理以及开箱即用的 WireGuard 桥接,完美解决了许多复杂网络场景下的互联难题。配合 Ubuntu 26.04 LTS 强大的系统底座,无论是搭建家庭私有云、异地办公联调,还是游戏局域网联机,EasyTier 都是目前最值得一试的利器。

快去部署你的 EasyTier 虚拟局域网吧!如果在安装或组网过程中遇到问题,欢迎在评论区留言交流。