1. 背景

原来使用 npc 穿透加 RDP 连接云电脑,画面本身很流畅,但遇到两个问题:

  • RDP 隔一段时间会断连。
  • 从本地复制大文件到云电脑速度慢,而且容易中断。

后来改用 EasyTier 组建虚拟局域网。因为云电脑的 NAT 比较严格,本地电脑的 NAT 相对宽松,所以最终采用一台 200M 低延迟公网服务器作为 EasyTier 共享节点。

目标是:

  1. 本地电脑和云电脑优先尝试 P2P 直连。
  2. P2P 失败时自动走公网服务器中继。
  3. RDP 使用 EasyTier 虚拟 IP 连接。

2. 最终架构

                     公网服务器
              EasyTier 共享节点 / 中继节点
                 TCP/UDP 11010
                         |
       -------------------------------------
       |                                   |
   本地电脑                              云电脑
  10.188.188.20                       10.188.188.10
       |                                   |
       --------- 优先 P2P,失败走中继 -------

服务器只作为共享节点,不分配虚拟 IP。真正的虚拟网段给本地电脑、云电脑和其他设备使用。

3. 服务器准备

服务器安全组和系统防火墙放行:

TCP 11010
UDP 11010

4. 安装 EasyTier

curl -fsSL "https://github.com/EasyTier/EasyTier/blob/main/script/install.sh?raw=true" | sudo bash -s install

检查版本:

easytier-core --version
easytier-cli --version

5. 服务器共享节点配置

服务器节点参数示例:

服务器共享节点网络名:aichuguang
服务器共享节点密码:SERVER_SECRET
允许中继的私有网络名:aichuguang-rdp-net
监听端口:11010

说明:

  • aichuguang 是服务器共享节点自己的网络名。
  • SERVER_SECRET 是服务器共享节点自己的密码。
  • xi-rdp-net 是本地电脑和云电脑实际加入的私有网络名,相当于白名单,只有这个网络名才允许服务器中转
  • 客户端不需要填写服务器的 aichuguang 密码,只需要填写自己的私有网络名和私有网络密码。

前台测试启动:

sudo easytier-core \
  --network-name aichuguang \
  --network-secret "SERVER_SECRET" \
  --relay-network-whitelist "aichuguang-rdp-net" \
  -l tcp://0.0.0.0:11010 \
  -l udp://0.0.0.0:11010 \
  --multi-thread \
  --multi-thread-count 4

如果出现 Address in use,说明端口已被占用,可以查看:

ss -lntup | grep 11010
ps -ef | grep easytier | grep -v grep

6. systemd 持久化

先确认 easytier-core 的真实路径:

command -v easytier-core
readlink -f "$(command -v easytier-core)"

例如路径是:

/opt/easytier/easytier-core

创建 systemd 服务,将 SERVER_SECRET 替换成真实密码:

systemctl stop easytier 2>/dev/null
systemctl reset-failed easytier 2>/dev/null

cat > /etc/systemd/system/easytier.service <<'EOF'
[Unit]
Description=EasyTier Public Relay Node
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/opt/easytier/easytier-core --network-name aichuguang --network-secret "SERVER_SECRET" --relay-network-whitelist "aichuguang-rdp-net" -l tcp://0.0.0.0:11010 -l udp://0.0.0.0:11010 --multi-thread --multi-thread-count 4
Restart=always
RestartSec=3
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
EOF

启动并设置开机自启:

systemctl daemon-reload
systemctl enable --now easytier
systemctl status easytier --no-pager -l

查看日志:

journalctl -u easytier -n 80 --no-pager -l
journalctl -u easytier -f

确认端口监听:

ss -lntup | grep 11010

7. 客户端配置

客户端包括本地电脑、云电脑和后续加入的其他设备。这些设备都加入同一个私有网络:

网络名:aichuguang-rdp-net
网络密码:PRIVATE_NET_SECRET
共享节点:tcp://服务器公网IP:11010
共享节点:udp://服务器公网IP:11010

云电脑配置示例:

虚拟 IPv4:10.188.188.10/24
主机名:cloud-pc
网络名:aichuguang-rdp-net
网络密码:PRIVATE_NET_SECRET
节点:tcp://服务器公网IP:11010
节点:udp://服务器公网IP:11010

本地电脑配置示例:

虚拟 IPv4:10.188.188.20/24
主机名:local-pc
网络名:xi-rdp-net
网络密码:PRIVATE_NET_SECRET
节点:tcp://服务器公网IP:11010
节点:udp://服务器公网IP:11010

命令行写法示例:

.\easytier-core.exe -i 10.188.188.20 --network-name aichuguang-rdp-net --network-secret "PRIVATE_NET_SECRET" -p tcp://服务器公网IP:11010 -p udp://服务器公网IP:11010 --hostname local-pc --latency-first

8. 验证组网状态

查看节点、对端和路由:

easytier-cli node
easytier-cli peer
easytier-cli route

重点看这些字段:

显示含义
p2p已经直连,最好
relay通过服务器中继,可用但多一跳
tcpTCP 链路,通常更稳
udpUDP 链路,通常延迟更低
0%当前无丢包
Symmetric对称型 NAT,P2P 难度较高
Port Restricted端口受限 NAT,P2P 成功率通常比 Symmetric 好

如果看到类似:

10.188.188.10  cloud-pc  p2p  udp  11ms  0%

说明本地电脑和云电脑已经 P2P 打洞成功。

image.png

这就很舒服了!

最后修改:2026 年 06 月 26 日
感谢大哥送来的卡布奇诺和冰阔乐!