docker搭建EasyTier
📝 笔记摘要:EasyTier 私有虚拟局域网自建方案
1.EasyTier 是什么?EasyTier 是一款基于 Rust 语言开发的去中心化网状 VPN(虚拟专用网络)工具,能够将分散在不同网络环境下的设备组成一个安全的虚拟局域网。其核心优势在于“去中心化”和“即插即用”——无需公网 IP、无需复杂的路由配置,节点之间自动协商最优通信路径,支持 NAT 穿透和中继转发,是为分布式办公、家庭组网和远程访问场景设计的现代化网络基础设施。
2.核心功能:
私有网络隔离:通过
--network-name和--network-secret参数创建独立的虚拟网络空间,实现网络隔离和访问控制。不同网络的流量完全隔离,确保数据安全。内置中继与 NAT 穿透:节点默认作为中继,帮助其他节点建立 P2P 直连。即使所有节点都位于 NAT 之后,也能通过内置的 TURN/STUN 协议实现穿越,无需依赖第三方服务。同时可通过
--relay-network-whitelist限制仅为特定网络提供转发服务。多协议监听与端口复用:支持 TCP、UDP 和 WebSocket Secure(WSS)三种协议同时监听,可灵活适配不同网络环境。同一端口可同时承载多种协议(除 TCP 与 WSS 外),极大节省公网端口资源,特别适合端口数量受限的 NAT 服务器部署场景。
即插即用的虚拟 IP 分配:支持静态 IP(
-i参数)和 DHCP 自动分配两种模式。每个节点获得唯一的虚拟 IP,设备间可直接通过该 IP 通信,就像在同一个物理局域网中一样。容器化友好部署:官方提供 Docker 镜像,支持
--network host模式直接使用宿主机网络栈,避免复杂的端口映射配置。Docker Compose 一键部署,完美适配云原生环境。
3.自建私有网络的配置要点:
服务端(中继节点)配置:在有公网 IP 的云服务器上部署 EasyTier 服务端。关键参数包括虚拟 IP(如
10.112.112.1)、网络名称和密码、监听端口(如tcp://0.0.0.0:11010)。通过--relay-network-whitelist限制仅为指定网络转发流量,防止被其他网络滥用。端口放行策略:由于服务端以
--network host模式运行,端口直接暴露在宿主机上。需在云服务商安全组和服务器内部防火墙中同时放行监听的端口(如11010的 TCP 和 UDP),并确认外部访问端口与内部监听端口的映射关系正确。客户端连接:在任意设备上安装 EasyTier 客户端,使用与服务端一致的网络名称和密码,通过
-p tcp://<公网IP>:<外部端口>指定服务器地址即可加入私有网络。客户端同样支持--network host模式的 Docker 部署。
4.常见问题与解决方案:
端口冲突(Address in use):TCP 监听与 WSS 监听不能使用同一端口,因为两者均基于 TCP 协议。解决方案:为 WSS 单独分配不同端口,或根据实际需求移除 WSS 监听。
网络白名单拒绝(network not in whitelist):客户端使用了与服务端白名单不同的网络名称。检查客户端
--network-name参数是否与服务端一致,或移除服务端--relay-network-whitelist限制。客户端命令未找到(command not found):Docker 部署的服务端宿主机未安装客户端程序。需单独在宿主机安装 EasyTier 客户端,或使用 Docker 运行客户端容器。
端口不可达:外部端口虽已配置映射,但需同时检查云服务商安全组、服务器内部防火墙(ufw/firewalld)及 NAT 映射关系是否完整正确。
5.与同类工具的区别:
Tailscale/ZeroTier:依赖第三方中央控制节点和 Web 管理平台,数据流经厂商服务器,存在隐私顾虑和供应商锁定风险。EasyTier 完全自建、去中心化,所有数据由自己掌控。
WireGuard + FRP:WireGuard 需要静态配置公钥和端点地址,FRP 需要额外维护端口映射规则,组合部署复杂度高。EasyTier 将 P2P 连接和中继合二为一,无需单独配置。
传统 VPN(OpenVPN/IPsec):配置繁琐、证书管理复杂、NAT 穿透困难。EasyTier 开箱即用,自动化 NAT 穿越和网络发现,极大降低运维负担。
💡 适用场景:
个人开发者跨地域办公,安全访问家庭内网或云上开发环境。
多机房/多云环境下的服务互联,作为基础设施实现安全通信。
IoT 设备远程管理,无需为每台设备申请公网 IP 或配置复杂的端口转发。
对数据隐私和网络自主权要求高的团队,构建完全自控的虚拟专用网络。
🔥 一句话总结:EasyTier 让你以“零配置”的体验,在几分钟内利用云服务器搭建属于自己的私有虚拟局域网——安全、自主、永不被厂商锁定。
EasyTier 服务端与客户端搭建笔记
1. 服务端搭建
docker-compose 配置如下:
version: '3.8'
services:
easytier:
image: easytier/easytier:latest
container_name: easytier-server
hostname: easytier
restart: unless-stopped
network_mode: host # 关键:使用宿主机网络
privileged: true # 必须,用于创建虚拟网卡
cap_add:
- NET_ADMIN
- NET_RAW
environment:
- TZ=Asia/Shanghai
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- /etc/machine-id:/etc/machine-id:ro
command: >
-d
--network-name MyPrivateNetwork # 自定义网络名
--network-secret YourStrongPassword # 自定义密码
-i 10.112.112.1
-l tcp://0.0.0.0:11010 # 替换为已放行的端口
-l udp://0.0.0.0:11010 # 替换为已放行的端口
--relay-network-whitelist MyPrivateNetwork
配置要点:
network_mode: host:使用宿主机网络,确保网络通信顺畅。
privileged: true 和 cap_add:允许容器创建虚拟网卡。
command 参数中需自定义网络名称、密码,并指定监听端口。
2. Windows 下客户端配置
直接填写与服务端一致的网络名称、密码及服务器地址、端口即可。

3. Linux 下 Docker 客户端配置
docker-compose 配置示例:
version: '3.8'
services:
easytier-client:
image: easytier/easytier:latest
container_name: easytier-client
restart: always
privileged: true
network_mode: host
command: >
-i 10.112.112.3 # 客户端在局域网中的 IP
--network-name MyPrivateNetwork # 与服务端一致的网络名
--network-secret YourStrongPassword # 与服务端一致的密码
-p tcp://103.205.254.65:35879 # 服务端开放的端口
配置说明:
-i 参数填写客户端在局域网中的 IP。
--network-name 和 --network-secret 必须与服务端保持一致。
-p 指定服务端的公网 IP 及已开放端口。
温馨提示:
请确保所有端口已在防火墙中放行。
网络名称及密码请妥善保管,避免泄露。
