比frp更好用的内网穿透工具-ZeroTie One
曾经我觉得, 最好用的内网穿透工具是frp, 并且写了一篇文章来赞美免费提供8M带宽提供内网穿透的Sakura Frp, 但后来我发现, 哪怕是Sakura Frp免费提供了公网服务器, 使用起来还是有点繁琐了, 并且速度只有8M, 所以最终我找到了能够代替frp的内网穿透工具 : ZeroTier One.
ZeroTier One是什么?
ZeroTier One是一款内网穿透软件, 但是和frp的"内网客户端-远程公网服务器-内网客户端"模式不同的是, ZeroTier One是通过p2p方式在不同的设备之间进行连接的, 只要所有的设备都加入了同一个ZeroTier Network, 互相之间就可以像在局域网中那样访问对方, 并且是直接连接而不是走公网服务器, 速度上限基本取决与设备之间的网速而不是ZeroTier服务器.免费版的ZeroTier能够连接多达100各设备, 足够个人使用了.
ZeroTier One使用步骤
下载并且安装ZeroTier One客户端
进入ZeroTier的下载页面点击对应系统的下载链接, 即可下载并且安装ZeroTier One客户端.
注册并且登陆ZeroTier
点击链接进入注册页面, 进行注册.
创建一个Network
点击Networks标签, 再点击Create a Network按钮创建一个网络.
配置Network基本信息
点击刚刚创建的网络, 可以进入到network配置页面, 配置的作用如下图.
右键电脑上运行的ZeroTier One, 点击Join Network, 粘贴上面的Network ID.
当两台设备都安装ZeroTier One并且加入了同一个网络, 即可互相通信.
此时, 已经可以直接使用远程桌面功能, 对局域网机器进行访问.
加速ZeroTier One之间的连接(可选)
虽然两个ZeroTier One客户端之间是通过p2p连接的, 但是设备A要首先连接到ZeroTier的行星根服务器(地球 Earth), 去获取到设备B的信息, 才能在两者之间进行通信, 而ZeroTier的全球唯一行星根服务器有可能离我们很遥远, 导致在某些时候"A-根服务器-B"这一过程速度会很慢, 这个时候可以通过在自己的公网服务器中架设根服务器(月球 Moons), 来加快"A-根服务器-B"这一过程.
执行下面的命令, 在公网服务器中安装ZeroTier
1
curl -s https://install.zerotier.com/ | sudo bash
进入ZeroTier安装目录, 生成配置文件
1
2cd /var/lib/zerotier-one
sudo zerotier-idtool initmoon identity.public > moon.json修改moon.json配置文件, 找到对应的那一行, 添加你的公网服务器的ip
1
"stableEndpoints": [ "123.123.123.123/9993" ]
生成文件
1
sudo zerotier-idtool genmoon moon.json
这个时候会在当前目录生成一个名字类似0000009b30156f58.moon的文件.
创建名为moons.d的文件夹, 并且将上面的moon文件移动进去
1
mv 0000009b30156f58.moon moons.d
重启服务
1
service zerotier-one restart
这个时候, 你的公网服务器就已经成为moon服务器了, 客户端想要加入moon, 只需要用管理员powershell执行下面命令, 即可看到设备已经添加了moon节点. 后面那段字符是moon文件生成的文件名去掉开头的6个0.
1 | zerotier-cli orbit 9b30156f58 9b30156f58 |