基于ZeroTier的内网穿透moon节点部署:可大幅提升内网穿透可能性
综述
内网穿透有许多用处,在没有公网地址的情况下,内网穿透可以很方便的连接不在一个网络内的主机。可以做到像在教室用平板远程控制放在宿舍的电脑,或远程访问在家里的NAS,可以和你距离很远的HXD愉快的P2P。
注册ZeroTier账号
为什么选择ZeroTier?
因为它可以免费供最多25个人共享网络
首先访问ZeroTier
注册一个账号,创建一个网络。进入你的网络的管理界面,你可以看到一个项是
Network ID,这里就是你加入网络所需要的填写的ID。
下载并安装ZeroTier客户端
下面在你的ZeroTier客户端中找到JoinNetwork选项,我这里用Windows系统演示。
在这个框内填入你的NetWork ID,点击后就可以加入网络
之后如果你创建网络后没有额外进行设置,则可以在你的网络控制台中找到如下的客户管理界面
这个界面你会发现存在一个左边Auth?一栏没有打勾的记录,这就是你链接网络的记录,需要管理员(也就是你)给Auth一下就可以正常联网,当然每一个加入你的网络的人你都需要有这个流程,认证一次之后就不需再认证。
图中Managed IPs就是你每个主机的虚拟IP,可以通过这个IP连接到与你内网穿透成功的主机。
如果你的需求只是可以内网穿透而不在乎延迟等问题,那么到这里就可以结束了。
服务器搭建提升内网穿透成功率
如上所说,这样设置会导致延迟很高,因为ZeroTier的服务器不在国内,互相ping的话可以发现延迟在400~500ms,如果你内网穿透目的是P2P打游戏之类的,这个延迟显然是完全不能接受的。
通过一段时间的调查,组建moon节点是一个很好的解决方案。
moon节点是可以理解成是一个内网穿透服务器,让你的内网穿透请求不去国外那个节点,而是通过这个节点转发。但是并不是完全代替服务器的作用,他只是代替需要穿透的节点去请求国外的服务器,所以可以加大穿透成功率,并且根据你的服务器位置和网段,可以极大的降低延迟。
服务器租借我选择华为云双11的服务器,这次优惠力度相当的大,赞美华为云!
但是如果你对延迟的要求相当的高的话,或者你要内网穿透看视频访问NAS啥的,我还是推荐按租借至少5M带宽的服务器,这样可以大大的提升稳定性。
搭建实战
我的服务器选择ubuntu系统,个人比较熟悉
首先下载zerotier
curl -s https://install.zerotier.com | sudo bash
如果你发现下不了建议在-s之前加一个-k忽略证书
执行下面的代码启动服务并设置开机启动
sudo systemctl start zerotier-one.service
sudo systemctl enable zerotier-one.service
加入你自己的网络,记得在控制台认证一下
sudo zerotier-one cli join 你的网络ID
生成moon文件
cd /var/lib/zerotier-one
zerotier-idtool initmoon identity.public > moon.json
成功后创建一个moons.d文件夹并将刚生成的文件放进去
sudo mkdir moons.d
sudo mv 00(你的moon文件名).moon moons.d/
完事之后重启服务,你的服务器就配置成功了
sudo systemctl restart zerotier-one
然后你还需要打开防火墙的9993端口的udp访问,理论上直接在虚拟机的防火墙配置就行。如果你也用的华为云服务器,那就在控制台的防火墙管理打开9993端口的udp访问。
客户端配置
你需要将服务器上面的moon文件拉下来放在你自己的文件夹内,这个moons.d文件夹需要自己创建。
之后打开任务管理器服务界面,找到ZeroTier服务并重启就好了
可以以管理员身份执行下面代码,可以得到moon节点的列表,如果你看到输出一堆这样的东西就说明你成功了
好了,我要去愉快的P2P了~诸兄再会!
- 点赞
- 收藏
- 关注作者
评论(0)