Linux通过ZeroTier实现内网穿透
本文记录一下Zerotier的搭建及Moon服务器优化。
Zerotier的搭建
Zerotier官网 注册账号,笔者使用谷歌邮箱注册。注册后创建一个网络:
- 注册好之后进去会有一个默认创建好的网络,没有的话,就创建一个网络
- 创建好点击进入,啥都不用改,记住
[网络ID]
即可
linux安装Zerotier,使用官方脚本安装:
1 | curl -s https://install.zerotier.com | sudo bash |
启动Zerotier服务并设置为开机自启:
1 | sudo systemctl start zerotier-one |
加入Zerotier网络:([网络ID]是刚开始让你记住那个)
1 | sudo zerotier-cli join [网络ID] |
查看已经加入的网络:
1 | sudo zerotier-cli listnetworks |
离开某网络:
1 | sudo zerotier-cli leave [网络ID] |
进入刚才创建好的网络页面,下滑找到Members部分。刚加入这个网络的linux信息会显示在这里。
点击address前边的小扳手–>点击Allow Ethernet bridging
,再把小扳手前边的框
勾上即可。
习惯上:小扳手后边的
Name/Description
下边会备注对应的服务器名字,Managed IPs
下边是自动分配的ip。假设加入该网络有两台服务器A和B,现在你想通过服务器A访问服务器B,就直接访问服务器B的IP即可(相当于内网穿透访问)。当然你也可以把这个IP修改成你喜欢的IP。
以上过程完成了一台服务器的配置,如果想让其他服务器也加入这个局域网,执行前边相同的操作。
Moon服务器优化
zerotier默认使用全球的服务节点,高峰时刻不稳定,官方也有说明,可以搭建自己的moon服务器作为跳板,加速网络。需要有个云服务器。
配置Moon服务器,进入云服务器:
1 | cd /var/lib/zerotier-one/ |
执行上述命令后会生成一个moon.json的配置文件。编辑moon.json中的 stableEndpoints
字段, 添加云服务器的公网IP
1 | "stableEndpoints": ["<PublicIP>/9993"] |
其中,<PublicIP>
为云服务器的公网ip,9993为zerotier默认端口(注:云服务器安全组中需开放9993端口,否则客户端连接不上moon)
接下来,生成Moon配置文件
1 | zerotier-idtool genmoon moon.json |
执行后会生成一个 0000006a449297b4.moon
文件,将生成的 .moon
文件移动到 moons.d
目录:
1 | sudo mkdir -p /var/lib/zerotier-one/moons.d |
重启中转服务器的zerotier-one
1 | systemctl restart zerotier-one |
在其他节点中加入Moon服务器
1 | sudo zerotier-cli orbit <MoonID> <MoonID> |
其中 <MoonID>
是你在 moon.json 文件中看到的Moon服务器的ID。
接下来,验证Moon服务器
1 | sudo zerotier-cli listpeers |
你应该能看到你的Moon服务器出现在列表中,并且状态为 MOON。