17
0
0

docker搭建EasyTier

2026-08-25
2026-08-25

📝 笔记摘要: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 及已开放端口。


温馨提示:

  • 请确保所有端口已在防火墙中放行。

  • 网络名称及密码请妥善保管,避免泄露。


支持与分享

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