前言:为什么选择 EasyTier?

平时我们常常面临跨网络访问设备的痛点:

  • 在家里的电脑、工位主机、NAS、云服务器散落在不同局域网;
  • 绝大多数宽带没有公网 IPv4,经过了运营商层层 NAT;
  • 传统组网工具(如 ZeroTier、Tailscale)的官方公共服务器位于海外,打洞成功率与中转延迟往往不理想。

EasyTier 是一款基于 Rust 开发的简单、去中心化点对点(P2P)Mesh 虚拟网络工具。它支持全自动 NAT 穿透打洞、多点加密中继,并且非常轻量。本文记录将一台 Linux 云服务器部署为公共中继节点,并将多台不同环境的设备接入自建虚拟内网的完整实战过程。


一、 网络架构规划

为了兼顾稳定打洞中转与安全私密访问,我们规划如下拓扑:

节点标识节点角色操作系统 / 环境虚拟内网 IP
云服务器 (relay-node)公网中继兼打洞协调端 (Relay)Linux VPS (Docker)10.10.10.1
工作机 (workstation-pc)主力工作环境 (Peer)Windows 11 (EasyTier GUI)10.10.10.89
远端节点 (home-pc)家用主机 / 笔记本 (Peer)Windows 11 (EasyTier GUI)10.10.10.88
  • 虚拟网段:10.10.10.0/24
  • 公网监听端口:TCP / UDP 11010
  • 网络名 (Network Name):my-mesh-net(所有网络成员必须一致)
  • 通信安全:自定义网络密码强加密,防止未授权设备接入。

二、 云服务器端部署(Docker)

服务器具有固定公网 IP,让它担任公网中继器与网络引导节点。

1. 开放防火墙端口

确保服务器系统防火墙与云服务商安全组放行 11010 端口:

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

2. 容器化部署(启用 TUN 网卡模式)

为了让服务器自身也能拥有虚拟 IP 并作为内网节点直接被访问,容器需要挂载 /dev/net/tun 并赋予网络管理权限:

docker run -d \
  --name easytier-node \
  --restart unless-stopped \
  --net=host \
  --cap-add=NET_ADMIN \
  --device=/dev/net/tun \
  easytier/easytier:latest \
    --network-name "my-mesh-net" \
    --network-secret "YourStrongPassword" \
    --ipv4 "10.10.10.1/24" \
    -l tcp://0.0.0.0:11010 \
    -l udp://0.0.0.0:11010

参数说明:

  • --net=host:共享主机网络栈,避免额外 NAT 层开销。
  • --cap-add=NET_ADMIN --device=/dev/net/tun:允许在宿主机内核中创建 tun0 虚拟网卡。
  • -l tcp://... -l udp://...:同时监听 TCP 与 UDP,方便外部客户端优先尝试 UDP 打洞,必要时自动回退到 TCP。

三、 客户端加入网络(以 Windows 客户端为例)

客户端可直接使用官方提供的桌面端应用(easytier-gui):

  1. 基本配置:
    • 网络名称:my-mesh-net
    • 网络密码:与服务器保持完全一致
    • 虚拟 IPv4:手动指定(例如 10.10.10.89/24)或选择自动 DHCP
  2. 连接对端 (Peer):
    • 填写公网服务器节点地址:tcp://your-vps-ip:11010
  3. 点击连接:
    • 客户端会自动在系统安装虚拟网卡并分配 IP。

四、 连通性测试与对端状态排查

进入云服务器,通过容器内置的 easytier-cli 工具查看网络拓扑:

docker exec easytier-node easytier-cli peer

节点状态输出示例:

| ipv4          | hostname       | cost  | lat(ms) | loss | rx      | tx      | tunnel | NAT            | version |
|---------------|----------------|-------|---------|------|---------|---------|--------|----------------|---------|
| 10.10.10.1/24 | relay-node     | Local | -       | -    | -       | -       | -      | PortRestricted | 2.6.4   |
| 10.10.10.88/24| home-pc        | p2p   | 251.15  | 0.0% | 1.46 kB | 1.70 kB | tcp    | Symmetric      | 2.6.4   |
| 10.10.10.89/24| workstation-pc | p2p   | 216.13  | 0.0% | 1.77 kB | 1.88 kB | tcp    | PortRestricted | 2.6.4   |
  • cost 显示为 p2p:代表各客户端之间已成功完成 NAT 穿透打洞!后续大文件传输、RDP 远程桌面等高流量交互将全部在客户端间端对端直连传输,不占用云服务器的公网中继带宽。
  • 双向连通性测试:
    # 在客户端测试 Ping 服务器虚拟 IP
    ping 10.10.10.1
    
    # 在服务器端测试 Ping 客户端虚拟 IP
    ping 10.10.10.89
    
    丢包率为 0%,双向隧道畅通无阻。

五、 安全加固与实用场景延伸

虚拟内网建立后,能够显著提升基础设施的安全性:

1. SSH 仅限虚拟内网访问(公网彻底隐形)

在服务器公网防火墙上关闭对公网开放的 22 端口,仅允许在 EasyTier 网卡(tun0)上接受 SSH 连接:

# 限制 SSH 仅接受 10.10.10.0/24 网段
sudo ufw allow in on tun0 to any port 22 proto tcp
sudo ufw delete allow 22/tcp

公网上的网络扫描爬虫和暴力破解机器人将完全无法嗅探到该服务器的 SSH 服务端口。

2. 本地快速别名配置

在开发机 ~/.ssh/config 中配置快捷直连:

Host vps-internal
    HostName 10.10.10.1
    User root

平时在终端输入 ssh vps-internal 即可一秒直达。


总结

EasyTier 相比传统组网方案,极大地简化了部署难度,几乎可以在 5 分钟内完成全套搭建。 配合一台配置哪怕仅有 1核1G 的轻量 VPS,就能搭建属于自己的低延迟、去中心化安全私有网络。