部署逻辑
这个软件其实主打的是去中心化,但是如果从 netbird 或者 tailscale 迁移过来,就很不习惯。所以写一个教程按照中心化的使用逻辑去部署。
按中心化的使用逻辑,需要先部署一个中枢,用来管理所有节点,所有节点也要连接到这个机器上。
如果你部署 Headscale,那本质上就是一个 Web 控制台 + DERP 中继服务器;如果你部署 Netbird,那本质上就是 Web 控制台 + coturn 中继服务器。只不过你部署的时候是丢到一个 Compose 里一起跑的。
Easytier 也类似,只不过你需要分开部署。不过由于当前版本下,web 配置无法设置网络白名单和接受子网的白名单,这会导致你的中继节点只要被扫描到就可以被他人使用,你的子网路由也会默认下发到所有节点上,使用上有所不便,所以本版本教程是在无 web 管理的情形下进行配置。若要查看 web 控制台部署,请参阅这篇文章
若要便捷地查看其他设备,你只需要任意节点使用 GUI 客户端,或是使用 web 配置,也可看到其他设备,只是不能管理他们。
本教程使用二进制程序启动加参数的形式进行配置,不使用配置文件。二进制的所有参数可以通过执行 easytier --help
查看说明。
添加中继设备
配置步骤
-
首先你要想一个网络名,比如叫 mytier。这个名字会在下面启动中继服务器时设置为白名单。
-
在你想要作为中继服务器上启动 easytier
使用
--network-name
和--network-secret
设置网络名称与密码,后续的节点也要使用这个网络名称和密码使用
--ipv4
设置你要组网的内网 IP使用
--hostname
来设置一个容易辨别的设备名称--relay-network-whitelist
可以说是必加的,否则如果这个节点直接暴露在公网,任何人都可以拿来做中转服务器--manual-routes
也是建议加上的,EasyTier 如果你设置了子网路由,他会把路由表自动下发到所有节点上,这与 Tailscale 的行为是正好相反的。–manual-routes 后不加任何选项则默认拒绝所有子网路由表,后续你要接受哪个子网网段的路由表就再添加即可1 2 3 4 5 6
./easytier-core --network-name mytier \ --network-secret passwd \ --ipv4 192.168.99.1/24 \ --hostname node1 \ --manual-routes \ --relay-network-whitelist mytier
-
默认端口是 11010,记得开放端口,假设你公网 IP 是 11.22.33.44
添加其他设备
启动命令和中转服务器基本是一样的,只需要修改 --ipv4
和 --hostname
和添加中继节点信息
|
|
至此,完成了等效于 Netbird 或是 Tailscale 的添加两个设备的步骤
子网路由设置
需要再次提醒的是,本教程只是面向从 Netbird 或者 Tailscale 迁移过来的用户,所以下面的说明假设你已经熟悉 Netbird 或者 Tailscale 的子网路由功能
-
在你需要共享的局域网内按照上面的步骤安装并配置好 Easytier
-
启动参数增加
--proxy-networks
,比如你要下发你当前所在的内网 192.168.5.0/24 给其他节点,那你的启动命令就变成1 2 3 4 5 6 7 8
./easytier-core --network-name mytier \ --network-secret passwd \ --ipv4 192.168.99.2/24 \ --hostname node2 \ --manual-routes \ --relay-network-whitelist mytier \ --proxy-networks 192.168.5.0/24 \ --external-node tcp://11.22.33.44:11010
默认情况下,他会把路由表下发到所有其他设备上,不过由于在前面我推荐你使用不带参数的
--manual-routes
启动客户端,所以现在其他客户端默认是不会接受下发的路由的。 -
若要在别的设备上接收这条路由,修改
--manual-routes
选项的参数即可,比如你要接受 192.168.5.0/24 和 192.168.2.0/24 的路由,那启动命令就改成1 2 3 4 5 6 7
./easytier-core --network-name mytier \ --network-secret passwd \ --ipv4 192.168.99.3/24 \ --hostname node3 \ --manual-routes 192.168.5.0/24 192.168.2.0/24 \ --relay-network-whitelist mytier \ --external-node tcp://11.22.33.44:11010
-
如果做网关的话,转发和防火墙可以酌情配置,这些和 netbird 与 tailscale 是一致的:开启 ipv4 转发
在
/etc/sysctl.conf
****文件中添加或修改以下行:1
net.ipv4.ip_forward = 1
然后运行
sudo sysctl -p
来应用更改 -
配置 NAT 规则
1 2 3 4 5 6
sudo iptables -I FORWARD -i eth0 -j ACCEPT sudo iptables -I FORWARD -o eth0 -j ACCEPT sudo iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE sudo iptables -I FORWARD -i tun0 -j ACCEPT sudo iptables -I FORWARD -o tun0 -j ACCEPT sudo iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE
保活进程
由于不使用 web 管理,所以只需要保活 easytire-core 这一个程序
注册为 systemd 服务
-
移动二进制文件并设置执行权限
1 2
sudo mv easytier-core /usr/local/bin/easytier-core sudo chmod +x /usr/local/bin/easytier-core
-
创建 systemd 服务单元文件
1
sudo nano /etc/systemd/system/easytier-core.service
内容如下,就是把启动的参数重新写一遍
1 2 3 4 5 6 7 8 9 10 11 12 13
[Unit] Description=easytier-core Service After=network.target [Service] Type=simple ExecStart=/usr/local/bin/easytier-core --network-name mytier --network-secret passwd --ipv4 192.168.99.1/24 --hostname node1 --manual-routes --relay-network-whitelist mytier User=root Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
-
设置权限与加载服务
保存并退出编辑器后,执行以下命令让 systemd 重新加载服务配置:
1
sudo systemctl daemon-reload
让该服务在开机时自动启动:
1
sudo systemctl enable easytier-core
启动该服务:
1
sudo systemctl start easytier-core
你可以使用下面的命令查看服务状态和日志:
1 2
systemctl status easytier-core journalctl -u easytier-core -f
使用 docker 部署
参考官方文档 https://easytier.cn/guide/installation.html 修改这里的启动参数即可
|
|
Photo by Pawel Czerwinski on Unsplash