本文说明本管理面板的用途、推荐部署方式,以及如何填写各表单项、使用部署脚本与查看节点状态。面向运维与需要自助部署的同事。
这是一个配置与脚本生成器:在浏览器里维护「虚拟网络名称、网络密钥、节点清单」,为每台机器生成一键部署的 Shell 脚本;脚本会安装 EasyTier、写入配置并注册 systemd 服务。它不是 EasyTier 核心进程本身,也不替代官方 GUI/Web,只是把常见部署步骤固化成表单和脚本。
npm start 或 PM2),便于其他节点从同一台机器下载 dist/ 里的安装包。http://<服务器公网或内网 IP>:<端口>(默认端口以服务器启动时为准,常见为 3002)。data.json,请做好备份与权限控制。二者共同决定「哪些节点属于同一虚拟网」。同一虚拟网内所有节点的名称与密钥必须一致才能互通。
与 dist/ 目录中 zip 文件名里的版本对应;若界面提示与 dist 不一致,可按提示同步,避免脚本下载的安装包版本与填写不一致。
| 角色 | 作用概要 |
|---|---|
| Relay(共享节点) | 公网可达的中继;需填写公网 IP/域名与监听端口;通常预先放入 dist/ 安装包供其他节点下载。 |
| Admin | 管理侧节点;需虚拟 IPv4;可勾选多个 Relay;脚本中可带 RPC 端口供本机 easytier-cli 查询状态。 |
| Developer | 开发机类节点;填写方式接近 Admin,虚拟 IP 勿与其他节点冲突。 |
| Project Gateway | 项目网关:除虚拟 IP、Relay 外,必须填写 代理目标子网 (proxy_targets),用于把虚拟网流量代理到指定内网网段或主机。 |
-p 里要填的地址,须与运营商/云厂商实际对外地址一致。11010,与安全组/防火墙放行一致。tcp:11010 udp:11010;云安全组需同时放行 TCP 与 UDP(若仅用 TCP 仍可能异常)。10.144.0.x,同一网络内不可重复。添加非 Relay 节点时,面板会尝试自动建议下一个可用 IP,可改。-p,由 EasyTier 选路。先选远程访问范围(面板单选):
10.144.0.5),不要填代理目标。代理目标填的是:在网关 B 所在局域网里、你要从虚拟网访问的那台(或那段)设备的 IP,不是虚拟网里的 10.144.x.x。
| 场景 | 填什么 | 示例 |
|---|---|---|
| 只访问一台内网机 C | 该机在 B 侧 LAN 的 IPv4(可只写 IP,系统自动补 /32) | 172.21.101.208 |
| 访问多台指定内网机 | 英文逗号分隔多个 IP | 172.21.101.49, 172.21.101.208 |
| 访问整段内网 | CIDR 网段(慎用) | 172.21.101.0/24 |
你填 172.21.101.208 表示:从虚拟网来的流量,由网关 B 转发到其局域网中地址为 172.21.101.208 的机器。请确认在 B 上能 ping 172.21.101.208。
若多个 Project 网关在同一虚拟网中配置了互相重叠的 CIDR,保存节点时面板会弹出提示。建议各现场使用不同私网段,或通过 ssh -J 明确经哪台网关再连内网。
10.144.0.5,连内网机却是 172.21.101.49?EasyTier 里同时存在两层地址,用途不同,不要混用:
| 地址 | 属于哪张网 | 谁有这个地址 | 你怎么连 |
|---|---|---|---|
10.144.0.5 |
EasyTier 虚拟网(全网唯一) | 装了 EasyTier 的网关机 B 自己 | ssh root@10.144.0.5 — 连的是 B 这台机器,不是 B 后面的 C |
172.21.101.49 |
B 所在现场的局域网(各现场可重复) | 没装 EasyTier 的内网机 C | ssh user1@172.21.101.49 — 连的是 C;包经虚拟网到 B,再由 B子网代理转进 LAN |
可以这样记:
若远程目标就是 B 本机(没有后面的 C),应选「仅本网关」,只使用 B 的虚拟 IP 10.144.0.5,不要把 10.144.0.5 填进代理目标。
172.21.101.49,怎么区分?典型拓扑:
10.144.0.5,现场 LAN 里有一台 172.21.101.4910.144.0.6,现场 LAN 里也有一台 172.21.101.49(IP 相同但不在同一物理网)两台网关各自在面板填代理目标 172.21.101.49 没问题;但在你的 Admin 上若直接执行 ssh user@172.21.101.49,虚拟网可能不知道走 10.144.0.5 还是 10.144.0.6(路由歧义),可能连错省、连不上或时好时坏。
① 各现场用不同私网段(最佳)
例如 A 省用 172.21.101.0/24,B 省用 172.22.101.0/24。这样 172.21.101.49 与 172.22.101.49 在虚拟网内可区分,可直接:
ssh user@172.21.101.49 # A 省 ssh user@172.22.101.49 # B 省
② 无法改网段时:用 SSH 跳板,先锁定网关虚拟 IP
通过 -J 先连到某一省网关的 10.144 地址,再在该网关的 LAN 里访问 172.21.101.49:
# A 省(经 10.144.0.5 这台网关进内网) ssh -J root@10.144.0.5 user1@172.21.101.49 # B 省(经 10.144.0.6 这台网关进内网) ssh -J root@10.144.0.6 user1@172.21.101.49
Windows 目标同理:先 RDP 到 10.144.0.5 再在 B 上连内网,或使用支持 ProxyJump 的客户端;RDP 无统一跳板时可先 SSH 到 B 再在内网 RDP 到 172.21.101.49。
③ 配置 SSH 别名(避免记错)
# ~/.ssh/config
Host prov-a-inner
HostName 172.21.101.49
User user1
ProxyJump root@10.144.0.5
Host prov-b-inner
HostName 172.21.101.49
User user1
ProxyJump root@10.144.0.6
之后:
ssh prov-a-inner # 一定走 A 省 ssh prov-b-inner # 一定走 B 省
④ 只想连网关本身(不连内网 C)
ssh root@10.144.0.5 # A 省网关 B ssh root@10.144.0.6 # B 省网关 B
这里不要用 172.21.101.49,除非你要连的是该网关 LAN 里的那台 C。
面板保存节点时若提示「与另一网关代理网段重叠」,即此类歧义风险;两省同 IP 时务必用跳板或改网段,不要依赖裸 ssh user@172.21.101.49。
下面「本机」指已安装 EasyTier 并已加入同一虚拟网的机器,通常是面板里的 Admin 或 Developer 节点(下称 A)。Project 网关 Windows/Linux 下称 B;被代理的内网机下称 C。
network_name / 密钥。easytier-cli 能看到 B 的虚拟 IP(例:10.144.0.5)。ping 172.21.101.208 通;目标机防火墙放行你要用的端口(SSH 22、RDP 3389 等)。172.21.101.208面板填写(Project Gateway 节点 B):
172.21.101.208(不必写 /32)在 A(本机)上连接——直接使用目标在 B 侧局域网里的 IP,不要写成 10.144.x.x:
# 1. 先确认虚拟网通 ping 10.144.0.5 # B 的虚拟 IP(以你面板登记为准) # 2. 再测代理目标是否可达 ping 172.21.101.208 # 3. SSH(Linux 目标) ssh 用户名@172.21.101.208 # 4. 传文件 scp ./本地文件 用户名@172.21.101.208:/tmp/
若目标是 Windows,在 A 上用远程桌面连 172.21.101.208:3389(mstsc 里填该 IP 即可)。
流量路径:A → 虚拟网 → Relay → B(网关)→ 172.21.101.208。你在 A 上输入的是 C 的 LAN 地址,EasyTier 会把包经 B 转过去。
172.21.101.49 和 172.21.101.208面板填写(同一 Project Gateway B 上,一条里写两个 IP,英文逗号分隔):
172.21.101.49, 172.21.101.208
保存后系统会自动规范为 172.21.101.49/32,172.21.101.208/32。部署 / 重启 B 后,两台都会经 B 代理。
在 A(本机)上分别连接——哪台目标就用哪个 IP,互不干扰:
ping 172.21.101.49 ping 172.21.101.208 ssh user1@172.21.101.49 ssh user2@172.21.101.208
不需要为第二台单独再建一个网关节点;一个 B + 一条逗号分隔的代理列表即可覆盖多台 C/D/E,只要它们都在 B 的同一局域网且 B 能访问。
ping <B 的虚拟 IP> — 不通则先查 A/B 是否都在线、密钥是否一致。ping 172.21.101.208 — 不通则是 B 与 C 之间的局域网问题,与 EasyTier 无关。ping 172.21.101.208 — B 通而 A 不通,查 B 的代理配置是否已重启生效、ACL 是否允许 A 访问。ssh / mstsc / 业务端口。两省 LAN 里都是 172.21.101.49 时,不能只靠裸 ssh user@172.21.101.49 区分,必须用跳板或不同网段。完整说明见 「A 省、B 省同 IP 怎么区分」。
ssh -J root@10.144.0.5 user1@172.21.101.49 # 指定 A 省网关 ssh -J root@10.144.0.6 user1@172.21.101.49 # 指定 B 省网关
deploy-<节点ID>.sh,目标机执行 sudo bash deploy-xxx.sh。脚本安装二进制、写入 /etc/easytier/*.env 并 systemctl enable --now 后台常驻。uninstall-<节点ID>.sh,执行 sudo bash uninstall-xxx.sh。默认只移除 systemd 服务,不删 /opt/easytier/bin。需同时删 env 时:sudo REMOVE_ENV=1 bash uninstall-xxx.sh。.ps1 文件——窗口会秒关,看不出是否成功。请右键「以管理员身份运行 PowerShell」,cd 到脚本目录后执行:
powershell -ExecutionPolicy Bypass -File ".\deploy-xxx-windows.ps1"
easytier-core.exe 等解压到 C:\Program Files\EasyTier(或与 .env 里 ET_BIN_DIR 一致)。uninstall-xxx-windows.ps1,同样用管理员 PowerShell 执行;会停止进程并删除计划任务。Start-EasyTierFromEnv.ps1 -EnvFile xxx.env,用于排错,窗口关闭即停止。.sh 文件。sudo bash deploy-<节点ID>.sh。dist/ 解压安装;其他角色:默认从面板 HTTP 下载 zip(若脚本同目录或 dist/ 子目录已有同名 zip,会优先用本地文件)。systemctl status … 查看服务;日志可用 journalctl -u … -f。easytier-cli 连接本机 easytier-core 的 RPC(如 127.0.0.1:15888)拉取 peer/route,再与清单里的节点做匹配。easytier-cli peer list 核对真实拓扑,再查防火墙、密钥、端口。Project 网关代理场景的逐步示例(含 172.21.101.208、多台 IP 填写方式)见上文 「填好代理目标后,如何从本机远程?」。
在虚拟网内为每台节点分配了唯一的虚拟 IPv4(如 10.144.0.x,以面板登记为准)。从已加入同一虚拟网的另一台机器上,应优先使用:
ssh 用户名@10.144.0.x
虚拟 IP 在整张网内不重复,可避免与「各现场局域网里常见的 192.168.1.x」混淆。
前提是网关上已正确配置 proxy_targets,且路由已打通。在 Admin(或其它虚拟网成员)上,可直接使用目标在其现场局域网中的 IP:
ping 192.168.50.22 ssh 用户名@192.168.50.22 scp 本地文件 用户名@192.168.50.22:/tmp/
流量路径一般为:本机 → 虚拟网 → Project 网关 → 现场局域网 → 目标机。
若仅靠虚拟网自动下发的路由,可能出现「到 192.168.1.10 不知走哪个网关」的歧义。此时请使用 SSH 跳板,先用网关的虚拟 IP 锁定「从哪条出口进内网」:
ssh -J 跳板用户@10.144.0.GW 目标用户@192.168.1.10
其中 10.144.0.GW 是某一台 Project 网关在虚拟网中的地址;内网 IP 在该网关所在局域网内解析。换一台网关的虚拟 IP 即对应另一现场。
建议在 ~/.ssh/config 里为不同现场配置不同 Host 别名,避免手打错地址。
在未连虚拟网、未走网关的电脑上,192.168.x.x 通常只指向你当前所在局域网;要访问远端现场,必须先具备到达该现场的通道(EasyTier、VPN、专线等)。
easytier-cli peer list 展示的是执行该命令的那台机器的视角:当前节点到表格里每一个「对端」的连接情况,不是「只对部署管理面板的那一台 Relay 的连线表」。
p2p 类字样,通常表示双方之间建立了更贴近端到端的隧道;实际路径仍可能因 NAT、多 Relay 等动态变化。data.json;密钥与脚本勿提交到公开仓库。dist/ 中 zip 并统一版本号,按需重新生成脚本并在各节点更新。文档版本随面板功能更新;若与界面不一致,以当前界面提示为准。