更好的内网穿透选择zeroTier
现在我们家用的很多服务也需要用到公网IP,但是因为IPv4资源的耗尽,我们普通用户基本上不可能拥有公网IP,所以各种内网穿透服务就产生了。但是比较广为人知的内网穿透方式都是使用服务器进行数据的转发,这种方式耗费资源,而且速度受限于服务器的带宽,远远没有两台设备之间直连来得方便。
最近发现了另一种方式的内网穿透zeroTier,可以将我们的设备整到一个虚拟的局域网内,实现设备之间的直连,这样传输的速度就不会受限于服务器的带宽了。我研究了一下,记录下使用方法。
安装
官网有详细的安装方式,支持Windows,Linux,mac,Android,ios(中国区不支持),还有群晖系统。
windows下直接下载安装包安装就好了。Ubuntu使用以下命令安装
curl -s https://install.zerotier.com | sudo bash
在你的nas上和电脑上都需要安装好客户端,然后在官网上设置之后就可以将这些设备整到一个虚拟局域网里了,可以互相访问了。
使用
官网注册账号并登录登录后点击networks

然后创建一个network,会出现一个network id,复制

到客户端加入网络,Windows下右击右下角的图标,选择jion network,粘贴刚刚复制的id,Ubuntu下使用以下命令加入网络
sudo zerotier-cli join <your id>
然后在刚刚创建的network右边就会看到有数字变化了,点击进入创建的network,在members标签下找到刚刚加入的两个设备,勾选进行启用,过一会儿就会看到分配的虚拟局域网IP了,我们可以使用这个IP在各个客户端之间通信。

我们还可以在settings标签下设置我们希望分配的局域网IP地址的网段

到此为止,就全部设置完成了,现在就可以在外网访问家中的nas了。
添加moon服务器加速
因为主服务器是公用的,而且在国外,所以在使用高峰期可能连接不上,但是如果我们在国内有一台拥有公网IP的服务器的话,那么就可以使用它进行加速了。
首先我们要根据以上的步骤使我们的终端都连接起来,我们还是要借助主服务器,并不能彻底摆脱它。然后就可以开始设置moon服务器了。
首先在moon服务器上安装zeroTier客户端,安装方法和上面的安装方法一样接下来生成moon.json文件
cd /var/lib/zerotier-onesudo zerotier-idtool initmoon identity.public > moon.json
更改moon.json的配置,主要更改以下一行
“stableEndpoints”: [“1.1.1.1/9993”] # 1.1.1.1是你的服务器公网IP,9993是默认端口
生成moon配置文件
sudozerotier-idtoolgenmoonmoon.json
手动新建一个moons.d文件夹,将生成的.moon文件移动进去
sudomkdirmoons.dsudomv 0000*****.moonmoons.d
重启moon服务器
sudo service zerotier-one restart
然后就可以开始配置客户端了,linux客户端直接将服务器端生成的0000××××.moon文件复制到/var/lib/zerotier-one/moons.d文件夹里,然后重启服务。Windows客户端将服务器端生成的moon文件复制到c:\ProgramData\ZeroTier\One\moons.d,并且在服务中找到zerotier one重启服务。测试是否成功,终端执行以下命令
sudo zerotier-cli listpeers
输出中有moon服务器就成功了。
