EasyTier 是一个基于 WireGuard 协议的点对点 VPN,支持自动 NAT 穿透打洞,配置简单。

适用场景

  • ​远程办公​:让公司、家中和外地的电脑像在同一局域网一样互通。

  • ​异地访问​:随时随地安全访问家中 NAS、服务器或其他设备。

  • ​游戏加速​:组建虚拟局域网,畅玩联机游戏。

  • ​物联网组网​:让分布在不同地点的设备安全互联。

核心特点

  • ​去中心化​:无需依赖中心服务器,所有节点平等独立,都可以参与转发和组网。

  • ​安全加密​:支持 WireGuard 和 AES-GCM 加密,保障数据安全。

  • ​跨平台​:支持 MacOS、Linux、Windows、FreeBSD、Android,未来将支持 iOS。

  • ​无公网 IP 组网​:可通过共享公网节点组网,详见配置指南

  • ​NAT 穿透​:支持 UDP NAT 穿透,复杂网络环境下也能稳定连接。

  • ​智能路由​:自动选择最佳链路,降低延迟,提高吞吐量。

  • ​高可用性​:多路径支持,自动切换健康链路,提升稳定性。

高级特性

  • ​KCP / QUIC 代理​: 支持将 TCP 流量转为 KCP / QUIC 协议,提升高 UDP 丢包环境下的传输延迟和稳定性。

  • ​非特权模式​:支持在非特权用户下运行,避免需要 root 权限。(仅可作为被访问端)

  • WireGuard 接入: 支持 WireGuard 客户端接入 EasyTier 网络。

本文档将记录我在现有家庭、公司多台 Linux、Windows 主机如何实现自建 EasyTier 虚拟局域网 VPN 到达异地组网的全过程。


1. 网络构成

1.1 家庭局域网构成

家庭局域网由一台 PVE 主机 和 两台独立主机组建,其中 PVE 主机中虚拟机5个。

主机名

类型

系统

内网地址

功能

pve

虚拟机平台

pve 9.0

192.168.1.5

虚拟机平台

docker

虚拟机 lxc

debian 13

192.168.1.18

docker服务

maxfn

虚拟机

fnOS

192.168.1.15

存储服务、影视照片服务

debian

虚拟机

debian 13

192.168.1.110

docker服务备用

Tiny10

虚拟机

windows 10

192.168.1.13

离线下载服务

maxwrt

虚拟机

OpenWrt

192.168.1.102

旁路由

GEM12

独立主机

windows 11

192.168.1.14

办公学习娱乐离线下载

x200s

独立主机

debian 13

192.168.1.227

学习离线下载,docker服务备用

1.2 单位局域网构成

单位局域网由一台 Linux 主机 和 一台 Windows 主机组建。

主机名

类型

系统

内网地址

功能

matebook

独立主机

windows 11

192.168.101.9

办公,远程访问

J900

独立主机

debian 13

192.168.101.98

存储,docker服务

1.3 云主机

在阿里云购买搭建一台 ECS 云主机,提供公网IP和域名转发。

主机名

类型

系统

公网地址

功能

ECS

云主机

Ubuntu

xx.xx.xx.xx

域名转发,信标节点

2. 部署目标

目前网络采取 frp 的方式由云主机 ECS 内网穿透各局域网主机,实现服务异地访问。目的是改用 EasyTier 异地组网代替目前的 frp 内网穿透模式。

核心思路是:利用公网 IP 的 ECS 作为核心节点,为其他没有公网 IP 的设备提供连接帮助。在 P2P 成功时,设备间数据直达;失败时,则通过 ECS 服务器中转,确保网络的稳定。

3 环境与规划

首先规划由 ECS 作为核心节点部署 EasyTier 作为信标,组网名为 “zhong”,组网网段为 10.10.10.0/24​。其他主机分别部署 EasyTier 加入该组网,实现服务互通互联。主机部署完毕后再加入手机、平板移动端。

节点

主机

系统

功能

组网IP

部署方式

1

ECS

ubuntu

核心节点

10.10.10.1

脚本安装

2

maxwrt

openwrt

普通节点
子网代理

10.10.10.2

插件安装

3

pve

pve

普通节点

10.10.10.88

二进制安装

4

docker

debian

普通节点

10.10.10.3

docker安装

5

maxfn

fnOS

普通节点

10.10.10.4

应用市场安装

6

x200s

debian

普通节点

10.10.10.5

二进制安装

7

debian

debian

普通节点

10.10.10.6

二进制安装

8

J1900

debian

普通节点

10.10.10.7

二进制安装

9

GEM12

windows11

普通节点

10.10.10.31

图形界面安装

10

Tiny10

windows10

普通节点

10.10.10.32

图形界面安装

11

matebook

windows11

普通节点

10.10.10.33

图形界面安装

12

iPhone

IOS

普通节点

10.10.10.50

APP安装

4. ECS 云主机(核心节点)部署

  1. 云主机采取 Linux 一键脚本安装方式。

注意:一键脚本依赖 unzip​ ,需提前安装。

wget -O /tmp/easytier.sh "https://raw.githubusercontent.com/EasyTier/EasyTier/main/script/install.sh" && sudo bash /tmp/easytier.sh install --gh-proxy https://ghfast.top/

脚本执行成功后,EasyTier 的二进程程序会安装到 /opt/easytier​ 目录下,EasyTier 会被注册为系统服务,配置文件位于 /opt/easytier/config/default.conf​。

  1. 修改配置文件

首先备份默认配置文件。

cp /opt/easytier/config/default.conf /opt/easytier/config/default.conf.bak

修改配置文件 default.conf​如下:

instance_name = "ecs-server"
hostname = "ecs"
dhcp = false # 关闭 DHCP 改为固定 IP
ipv4 = "10.10.10.1" # 指定 ECS 组网 IP
listeners = [
    "tcp://0.0.0.0:11010",
    "udp://0.0.0.0:11010",
]
exit_nodes = []
rpc_portal = "127.0.0.1:15888"

#[[peer]]
#uri = "tcp://public.easytier.top:11010" # 注释掉官网监听地址,避免网络问题无法启动服务

[network_identity]
network_name = "zhong" # 确保其他节点一致
network_secret = "你的组网密码" # 确保其他节点一致

[flags]
default_protocol = "udp"
dev_name = "easytier0"
enable_encryption = true
enable_ipv6 = false
mtu = 1380
latency_first = false
enable_exit_node = false
no_tun = false
use_smoltcp = false
foreign_network_whitelist = "*"
disable_p2p = false
p2p_only = false
relay_all_peer_rpc = false
disable_tcp_hole_punching = false
disable_udp_hole_punching = false
  1. 重启服务

systemctl daemon-reload
systemctl restart easytier@default
systemctl status easytier@default
  1. ECS 安全组放行 11010​ 端口。

5. 节点 (maxwrt) 部署

将 EasyTier 部署在 OpenWrt 旁路由上,可以使其成为整个家庭网络的访问入口,其他设备无需单独安装。同时,确保路由器或 OpenWrt 开启了 UPnP 功能,以提高 P2P 打洞成功率。

  1. ​安装插件​:在 OpenWrt 上安装 luci-app-easytier​ 插件,这能让你通过 Web 界面轻松配置。你可以在 EasyTier 的 OpenWrt 插件页面 找到预编译的安装包。

  2. ​基础配置​:登录 OpenWrt 的 LuCI 后台,找到 EasyTier 配置界面,填入网络名和密码,并将该节点注册到你的 Web 控制台。

  3. ​设置子网代理(关键!)​:在插件设置中,启用“子网代理”功能,并填入 192.168.1.0/24​。​这一步至关重要,它向虚拟网络宣告了你的整个家庭内网​。配置完毕后,保存并应用设置。

  4. 启用 IP 转发:确保 OpenWrt 系统开启了 IP 转发功能。

    echo 1 > /proc/sys/net/ipv4/ip_forward
    

完成以上步骤后,虚拟网络中的其他设备(如单位电脑)就能直接访问你家庭内网中任意设备的 IP 地址了。

下面是 luci-app-easytier​中需要填写的项目:

  • 网络名称:填入 zhong​

  • Network Secret:填入设置的组网密码

  • Enable HDCP:取消勾选

  • Interface IP Address:填入 10.10.10.2​

  • Peer Nodes:填入云主机节点 IP 和 端口 tcp:xx.xx.xx.xx:11010​

  • Subnet Proxy:填入 192.168.1.0/24​启用子网代理

  1. 测试连通性

在 ECS 主机键入以下命令

easytier-cli peer

正常应该看到如下显示

| ipv4           | hostname | cost     | lat(ms) | loss | rx        | tx        | tunnel  | NAT            | version        |
|----------------|----------|----------|---------|------|-----------|-----------|---------|----------------|----------------|
| 10.10.10.1/24  | ecs      | Local    | -       | -    | -         | -         | -       | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.2/24  | maxwrt   | p2p      | 27.90   | 0.0% | 492.57 kB | 482.35 kB | tcp     | PortRestricted | 2.5.0-88a45d11 |

6. 飞牛部署

  1. 打开飞牛应用市场,搜索 easytier​安装,安装界面如下

{29270ED4-8CB6-4102-B3CC-B28A783C3D7B}.png

  • 网络名称填写:zhong​

  • 网络密码填写:与ECS设置的密码一致

  • 服务链接填写:tcp://xx.xx.xx.xx:11010​

  • 主机名称填写:maxfn​

  1. 由于飞牛应用市场安装的 easytier 默认采取的是 DHCP ,要固定飞牛的组网 IP 必须修改 easytier 配置文件。

登录飞牛终端后台修改配置文件 config.yaml​

sudo chmod 060 /vol1/@appshare/EasyTier/etc/config.yaml # 由于该文件默认为只读,先打开可写
sudo vi /vol1/@appshare/EasyTier/etc/config.yaml

修改如下内容

dhcp = false # 关闭 DHCP
ipv4 = "10.10.10.4" # 指定飞牛的组网 IP

最后在应用市场重启 EasyTier 服务

  1. 测试连通性

在 ECS 终端键入 easytier-cli peer​,正常应显示如下:

| ipv4           | hostname | cost  | lat(ms) | loss | rx        | tx        | tunnel  | NAT            | version        |
|----------------|----------|-------|---------|------|-----------|-----------|---------|----------------|----------------|
| 10.10.10.1/24  | ecs      | Local | -       | -    | -         | -         | -       | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.2/24  | maxwrt   | p2p   | 28.69   | 0.0% | 563.33 kB | 576.64 kB | tcp     | PortRestricted | 2.5.0-88a45d11 |
| 10.10.10.4/24  | maxfn    | p2p   | 35.23   | 0.0% | 286.41 kB | 230.65 kB | tcp     | PortRestricted | 2.3.2-42c98203 |

7. lxc 节点 docker 部署

虚拟机 lxc 由于已经搭建 docker 环境,直接采取 docker 方式部署。

  1. 编辑 docker-compose.yml​如下:

services:
  easytier:
    image: easytier/easytier:latest
    container_name: easytier
    network_mode: host
    cap_add:
      - NET_ADMIN
      - NET_RAW
    devices:
      - /dev/net/tun:/dev/net/tun
    volumes:
      - ./root:/root
    command: -i 10.10.10.88 --network-name zhong --network-secret <password> -p tcp://xx.xx.xx.xx:11010
    restart: unless-stopped

需自定义的是 command 行:

  • ​-i​ 后指定该节点的组网 IP,如果采取 DHCP 方式 改为 -d​

  • ​--network-name​ 为统一网络名

  • ​--network-secret​ 为 ECS 设置的统一密码

  • ​-p​ 后为 ECS 节点公网地址和端口

  1. 部署容器

docker compose up -d
  1. 测试连通性

在 ECS 终端键入 easytier-cli peer​,正常应显示如下:

| ipv4           | hostname | cost     | lat(ms) | loss | rx        | tx        | tunnel  | NAT            | version        |
|----------------|----------|----------|---------|------|-----------|-----------|---------|----------------|----------------|
| 10.10.10.1/24  | ecs      | Local    | -       | -    | -         | -         | -       | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.2/24  | maxwrt   | p2p      | 27.88   | 0.0% | 905.94 kB | 941.32 kB | tcp     | PortRestricted | 2.5.0-88a45d11 |
| 10.10.10.3/24  | docker   | p2p      | 27.33   | 0.0% | 13.54 MB  | 1.00 MB   | tcp     | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.4/24  | maxfn    | p2p      | 31.96   | 0.0% | 412.15 kB | 329.03 kB | tcp     | PortRestricted | 2.3.2-42c98203 |

8. Linux 节点的二进制部署

其他四个 Linux 节点(pve、x200s、debian、J900)采取更为简单的二进制部署方式。

在 EasyTier 官网下载页面下载 Linux 对应的 x86_64 二进制包。解压后得到4个可执行二进制文件:

  • ​easytier-core​:EasyTier 的核心程序

  • ​easytier-cli​:EasyTier 管理程序,启动 easytier-core 后,可以使用 easytier-cli 查看虚拟网信息

  • ​easytier-web​: 用于自建 EasyTier 的 Web 控制台后端,一般情况下无需自建,使用官方提供的 Web 控制台即可

  • ​easytier-web-embed​: 与 easytier-web​ 功能相同,但内置了 Web 前端。

将解压得到的4个可执行文件移动到 /usr/local/bin/​,如果没有可执行属性用 sudo chmod +x filename​添加。

  1. 建立服务文件

sudo vi /etc/systemd/system/easytier.service

内容如下:

[Unit]
Description=EasyTier VPN Service
Documentation=https://easytier.rs
After=network-online.target nss-lookup.target
Wants=network-online.target nss-lookup.target

[Service]
Type=simple
PrivateDevices=no
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# 下面注意替换 --ipv4 后的当前节点虚拟IP,hostname 和 secret 替换具体网络名和密码, -p 为核心节点地址及端口
ExecStart=/usr/local/bin/easytier-core --ipv4 10.10.10.5 --network-name zhong --network-secret LoginUlanhot0080 -p tcp://xx.xx.xx.xx:11010
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

⚠️注意 ExecStart​行的自定义项。--ipv4​ 后需根据当前节点修改不同的组网 IP。

  1. 启动服务

sudo systemctl daemon-reload
sudo systemctl enable easytier.service
sudo systemctl start easytier.service
sudo systemctl status easytier.service
  1. 测试连通性

在 ECS 或当前节点主机终端键入 easytier-cli peer​,正常应显示如下:

| ipv4           | hostname | cost     | lat(ms) | loss | rx        | tx        | tunnel  | NAT            | version        |
|----------------|----------|----------|---------|------|-----------|-----------|---------|----------------|----------------|
| 10.10.10.1/24  | ecs      | Local    | -       | -    | -         | -         | -       | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.2/24  | maxwrt   | p2p      | 27.88   | 0.0% | 905.94 kB | 941.32 kB | tcp     | PortRestricted | 2.5.0-88a45d11 |
| 10.10.10.3/24  | docker   | p2p      | 27.33   | 0.0% | 13.54 MB  | 1.00 MB   | tcp     | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.4/24  | maxfn    | p2p      | 31.96   | 0.0% | 412.15 kB | 329.03 kB | tcp     | PortRestricted | 2.3.2-42c98203 |
| 10.10.10.5/24  | x200s    | p2p      | 34.81   | 1.0% | 352.52 kB | 262.71 kB | tcp,udp | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.6/24  | debian   | p2p      | 31.53   | 0.0% | 20.85 kB  | 50.49 kB  | tcp     | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.7/24  | j1900    | p2p      | 29.80   | 0.0% | 1.83 MB   | 1.99 MB   | tcp     | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.88/24 | pve      | p2p      | 26.17   | 0.0% | 4.44 MB   | 368.46 kB | tcp     | PortRestricted | 2.6.0-79b562cd |

至此,所有 Linux 主机节点已部署完毕,下面部署 Windows 节点。

9. Windows 主机节点部署

  1. 下载图形界面

到 EasyTier Github 项目 下载页面下载 EasyTier Manager(Windows)安装包。

得到安装包 easytier-manager-pro_3.2.6_x64_zh-CN.msi​。双击安装。

  1. 安装内核

打开 EasyTier 管理器主界面,选择左侧设置,在内核下载与安装下,先点击下载内核,成功后再点击安装内核。

{B023065F-0810-43C6-B5FA-A2E33047AE4F}.png

成功后在该页面上部即可看到已安装的内核版本。

{BC8D4555-39EC-422B-A24E-E8769821E5CA}.png

  1. 建立节点配置文件

点击左侧配置,点击 新增组网配置(表单),按照如下填写:

{1D98141B-0AB2-409D-95F4-64E8C3D307EF}.png

注意关闭自动获取虚拟IP,并指定该节点的固定组网IP。服务器填写ECS节点公网IP和端口。

然后启动该配置,点击服务操作下该配置的 安装服务,再点击启动,即可看到服务状态为“运行中”。

{E500795F-D348-4B7D-9B27-370B25864E8B}.png

  1. 设置自动启动

完成配置后左侧设置打开自动启动并设置启动加载刚建立的组网配置。

{3968044F-146D-48E9-8C45-5441AEBEAE58}.png

其他 Windows 主机节点按此方法部署。

  1. 测试连通性

在 ECS 机终端键入 easytier-cli peer​,正常应显示如下:

| ipv4           | hostname | cost  | lat(ms) | loss | rx        | tx        | tunnel  | NAT            | version        |
|----------------|----------|-------|---------|------|-----------|-----------|---------|----------------|----------------|
| 10.10.10.1/24  | ecs      | Local | -       | -    | -         | -         | -       | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.2/24  | maxwrt   | p2p   | 28.70   | 0.0% | 985.59 kB | 1.02 MB   | tcp     | PortRestricted | 2.5.0-88a45d11 |
| 10.10.10.3/24  | docker   | p2p   | 28.13   | 0.0% | 13.62 MB  | 1.09 MB   | tcp     | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.4/24  | maxfn    | p2p   | 32.02   | 0.0% | 431.89 kB | 340.90 kB | tcp     | PortRestricted | 2.3.2-42c98203 |
| 10.10.10.5/24  | x200s    | p2p   | 38.16   | 0.0% | 370.46 kB | 276.75 kB | tcp,udp | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.6/24  | debian   | p2p   | 35.24   | 0.0% | 24.18 kB  | 53.67 kB  | tcp     | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.7/24  | j1900    | p2p   | 29.69   | 0.0% | 1.86 MB   | 2.01 MB   | tcp     | PortRestricted | 2.4.5-4c4d172e |
| 10.10.10.31/24 | GEM12    | p2p   | 32.21   | 0.0% | 6.67 kB   | 7.98 kB   | tcp     | PortRestricted | 2.2.4-67100407 |
| 10.10.10.32/24 | Tiny10   | p2p   | 29.64   | 0.0% | 81.14 kB  | 29.37 kB  | tcp     | PortRestricted | 2.6.0-79b562cd |
| 10.10.10.33/24 | matebook | p2p   | 32.64   | 0.0% | 1.31 MB   | 1.57 MB   | tcp     | PortRestricted | 2.6.0-79b562cd |
| 10.10.10.88/24 | pve      | p2p   | 26.17   | 0.0% | 4.44 MB   | 411.79 kB | tcp     | PortRestricted | 2.6.0-79b562cd |

10. 组网测试

至此全部主机已完成 EasyTier 部署,在确保连通性没有问题下采取下面方法测试。

  1. 测试 SSH 连接。

分别在 Windows 主机 (家庭 GEM12、Tiny10和单位 matebook)和 Linux 主机 (家庭 x200s 和单位 J1900 )测试 SSH 连接到 ECS、pve、maxfn、maxwrt、debian,分别采取内网 IP (如 192.168.1.5)和 组网 IP (如 10.10.10.88),正常应均可访问。

  1. 测试 RDP 连接。

分别采取内网 IP 和 组网 IP 的方式连接 GEM12、Tiny10、matebook、J1900这几台提供 RDP 远程桌面的主机,正常均可访问。

  1. 测试 docker 服务。

分别采取内网 IP 和 组网 IP 加端口的方式访问 docker、maxfn、J1900 这三台有 docker 服务的主机,正常均可访问。

11. 移动端部署

待续……