EasyTier 私有虚拟网络搭建全流程

1847 字
9 分钟
EasyTier 私有虚拟网络搭建全流程
EasyTier 私有虚拟网络搭建全流程

EasyTier 私有虚拟网络搭建全流程#

EasyTier简介#

在国内复杂的网络环境中,内网穿透和异地组网始终是个棘手问题。之前折腾过 Zerotier、Tailscale 等工具的朋友可能深有体会,网络通畅时,P2P 直连体验流畅。可一旦遇到 NAT 复杂或网络波动,就不得不依赖国外中继服务器 —— 延迟飙升、速度骤降几乎成了常态。

最近接触到了国内的一个开源穿透软件EasyTier ,EasyTier是一个简单、安全、去中心化的内网穿透 SD-WAN 方案,使用 Rust 语言实现。它实现了零拷贝和全链路高性能,性能与主流组网软件相当。EasyTier 支持跨平台运行,包括 MacOS/Linux/Windows/FreeBSD/Android,未来还将支持 iOS。可执行文件静态链接,部署简单。

EasyTier的特点#

  • 去中心化:无需依赖中心化服务,节点平等且独立。
  • 安全:支持利用 WireGuard 加密通信,也支持 AES-GCM 加密保护中转流量。
  • 高性能:全链路零拷贝,性能与主流组网软件相当。
  • 跨平台:支持 MacOS/Linux/Windows/FreeBSD/Android,未来将支持 iOS。
  • 无公网 IP 组网:支持利用共享的公网节点组网。
  • NAT 穿透:支持基于 UDP 的 NAT 穿透,在复杂的网络环境下也能建立稳定的连接。
  • 子网代理(点对网):节点可以将可访问的网段作为虚拟网暴露给其他节点,允许其他节点通过这些节点访问子网。
  • 智能路由:根据流量智能选择链路,减少延迟,提高吞吐量。
  • TCP 支持:在 UDP 受限的情况下,通过并发 TCP 链接提供可靠的数据传输,优化性能。
  • 高可用性:支持多路径和在检测到高丢包率或网络错误时切换到健康路径。
  • IPV6 支持:支持利用 IPV6 组网。

安装(docker-compose)#

服务端配置#

创建配置目录

Terminal window
sudo mkdir -p /opt/easytier

创建一个docker-compose.ymlconfig.yaml文件:

Terminal window
vim /opt/easytier/docker-compose.yml

docker-compose.yml填入以下内容(注意#号标注相关提示):

services:
# 可选:自动更新镜像的watchtower
watchtower:
image: containrrr/watchtower:latest
container_name: easytier-watchtower
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 3600 --cleanup --label-enable
# easytier服务端
easytier-server:
image: easytier/easytier:latest # 国内:m.daocloud.io/docker.io/easytier/easytier:latest
container_name: easytier-server
hostname: easytier-server # 与配置文件中hostname一致
labels:
com.centurylinklabs.watchtower.enable: 'true' # 允许watchtower更新
restart: unless-stopped
network_mode: host # 必须用host模式,确保端口监听正常
cap_add:
- NET_ADMIN # 允许网络配置(如创建tun设备)
- NET_RAW
environment:
- TZ=Asia/Shanghai
devices:
- /dev/net/tun:/dev/net/tun # 提供WireGuard隧道支持
volumes:
- /opt/easytier:/root # 挂载配置目录到容器内/root
- /etc/machine-id:/etc/machine-id:ro # 保持机器标识一致
command: --config-file /root/config.yaml # 加载配置文件

config.yaml文件输入以下核心配置文件内容

# 服务端基础信息(唯一标识)
hostname = "easytier-server" # 服务端主机名(自定义,需唯一)
instance_name = "primary-server" # 实例名称(区分多个服务端)
instance_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479" # 标准UUID(必填,需唯一,生成方法见下方)
ipv4 = "10.126.126.1/24" # 虚拟网络IP(建议用网段首个IP,如.1)
dhcp = false # 服务端固定IP,关闭DHCP
# 监听端口(客户端通过这些端口连接)
listeners = [
"tcp://0.0.0.0:11010", # TCP协议监听(推荐客户端优先使用)
"udp://0.0.0.0:11010", # UDP协议监听
"wg://0.0.0.0:11011" # WireGuard加密协议监听(需tun设备支持)
]
# RPC端口(0表示随机分配,服务端无需固定)
rpc_portal = "0.0.0.0:0"
# 网络标识(客户端必须完全匹配才能加入网络)
[network_identity]
network_name = "my-easytier-network" # 网络名称(自定义,如公司/项目名)
network_secret = "your-secure-secret-123" # 网络密钥(类似密码,建议复杂字符串)
# 服务端无需配置[[peer]](客户端会主动连接服务端)
# 若多服务端集群,可在此添加其他服务端的uri(如"tcp://server2-ip:11010")

在当前目录下,运行代码直接编排容器上线即可:

Terminal window
# 启动容器
docker-compose up -d
# 查看日志(确认启动成功)
docker logs -f easytier-server

开放防火墙端口

Terminal window
# 开放TCP/UDP 11010和WireGuard 11011端口
sudo ufw allow 11010/tcp
sudo ufw allow 11010/udp
sudo ufw allow 11011/udp
sudo ufw reload
# 若用云服务器(如阿里云/腾讯云),需在安全组中同步开放上述端口

客户端配置#

客户端需连接服务端加入虚拟网络,配置核心是匹配服务端的网络标识,并指定服务端的连接地址。

安装配置文件docker-compose.yml与服务端一致,只需要修改和config.yaml文件

# 客户端基础信息(唯一标识)
hostname = "client-pc-01" # 客户端主机名(自定义,需唯一)
instance_name = "office-client" # 实例名称(区分多个客户端)
instance_id = "a1b2c3d4-5678-4f5e-8a9b-0c1d2e3f4a5b" # 客户端唯一UUID(与服务端不同)
ipv4 = "10.126.126.2/24" # 虚拟网络IP(与服务端同一网段,如.2、.3等)
dhcp = false # 客户端固定IP
# 客户端无需开放监听(若需被其他节点主动连接,可添加监听端口)
listeners = []
# RPC端口(随机分配)
rpc_portal = "0.0.0.0:0"
# 网络标识(必须与服务端完全一致)
[network_identity]
network_name = "my-easytier-network" # 与服务端network_name相同
network_secret = "your-secure-secret-123" # 与服务端network_secret相同
# 需连接的服务端地址(至少填写服务端的TCP/UDP地址)
[[peer]]
uri = "tcp://服务端公网IP:11010" # 替换为服务端的公网IP或域名
[[peer]]
uri = "udp://服务端公网IP:11010" # 可选,提高连接稳定性

客户端验证#

日志中出现以下信息说明连接成功:

successfully connected to peer: tcp://服务端IP:11010
virtual network ip assigned: 10.126.126.2

测试虚拟网络通信,客户端执行ping 10.126.126.1(服务端虚拟 IP),能 ping 通则说明网络互通。

使用 easytier-cli peer 查看子网中的节点信息:

Terminal window
easytier-cli peer

输出示例:

image-20251026235557438
image-20251026235557438

使用 easytier-cli route 查看子网中的路由信息:

Terminal window
easytier-cli route

输出示例:

image-20251026235726258
image-20251026235726258

使用 easytier-cli node 查看本节点的信息:

Terminal window
easytier-cli node

输出示例:

image-20251026235758346
image-20251026235758346

这是windows下gui的配置情况

image-20251026235149588
image-20251026235149588

关闭转发#

默认情况下,Easytier 的每个节点都允许为其他虚拟网提供转发服务,即使已加入一个虚拟网。若需改变此行为,可通过 --relay-whitelist 参数限定可转发的网络白名单(空格分隔的通配符列表)。当列表为空时,则不会为所有其他网络提供转发服务。例如:

Terminal window
easytier-core --relay-whitelist relay-all --relay-all-peer-rpc

只需设置参考白名单为空,同时仅允许转发 RPC 流量即可。

小结#

用了一段时间了,从实际用下来的感受看,EasyTier 最关键的好处就是 ——特别适配咱们国内的网络环境。不管是面对复杂的 NAT 网络,穿透成功率,还是用 WireGuard 加密传输的速度和稳定性,都比那些依赖国外中继服务器的工具稳一些。

而且它是去中心化的 P2P 方案,不用怕单个服务器挂了整个网络就崩了,节点之间直接连接,还能最大程度减少延迟。另外它还支持多平台,不同设备组网特别方便。不管是个人异地办公、家里设备互联,还是小团队做内网穿透,都很合适。

感兴趣的小伙伴不妨来试试 EasyTier。

参考#

  1. 快速组网 | EasyTier - 简单、安全、去中心化的异地组网方案

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
EasyTier 私有虚拟网络搭建全流程
https://blog.leihub.cn/archives/936/
作者
阿雷
发布于
2025-10-26
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
群晖照片异地备份到 Unraid + Immich 相册搭建详细教程:rsync 同步与踩坑全记录
NAS & 云服务搭建我家里同时有白群晖和 unRAID 两台 NAS ,准备把群晖里攒了几年的照片进行异地备份,单盘 NAS 一旦坏了,照片可就全没了。 我自己折腾了两天,踩了一堆坑,终于跑通了一套「unRAID 定时拉取群晖 + Immich 相册」的方案。
2
西上东下:梵净山雾中徒步记
城市短途漫游朋友嚷嚷了一年的梵净山,最近终于找到了爬山窗口,做足了攻略的我们,直接选择来一波特种兵爬梵净山。 一、周五晚上10点,株洲站出发 我们几个都是从株洲出发的,火车是晚上的卧铺车,10 点出发,第二天凌晨 5:40 到铜仁。一张硬卧 138 块
3
NotionNext 个人博客搭建教程:腾讯云 EdgeOne 部署
博客搭建 & 运维前言 目前主流的博客搭建方案可大致分为两类,且各有局限:一类是以 WordPress 为代表的动态博客系统,依赖独立服务器运行,运维与硬件成本较高;另一类是以 Hexo 为代表的静态博客框架,采用本地 Markdown 编写,无实时预览能力
4
五一萍乡自驾游|4天游玩全记录
自驾旅行日记五一不想挤人山人海的热门景区,和朋友果断冲萍乡自驾游!四天三晚玩遍孽龙洞、竹筏、反穿武功山,有好玩到封神的项目,也有巨踩雷的景点和美食,还有自驾专属大坑!全程真实无滤镜,新手直接抄作业,避坑省钱两不误✨ ✨出行省钱小技巧 出发前专门囤了株洲
5
2026黄山两日游|株洲出发,黄山两日20公里爬山记录
徒步登山攻略从株洲出发特种兵刷完黄山两日线!全程暴走20公里,日出、云海、天都峰、西海大峡谷全打卡✨ 所有路线、交通、踩坑点都是亲测实况,不用到处翻攻略了,新手直接抄作业就行! 一、全程交通|超详细换乘 我们的路线:株洲→长沙→黄山北站→黄山景区,全程
随机文章随机推荐

评论区

Profile Image of the Author
阿雷
一个小趴菜
公告
本站已从 WordPress 迁移到 Astro,访问更快、更清爽。文章链接保持原样(/archives/文章ID/),评论数据正在陆续恢复中。
分类
标签
最新动态
站点统计
文章
76
分类
15
标签
99
总字数
318,421
运行时长
0
最后活动
0 天前
站点信息
构建平台
EdgeOne Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录