在前面的文章中我们讲到利用 frp 进行内网穿透,但是他的局限在于你需要一台公网服务器。并且对公网服务器的带宽有一定的要求。因此这里我们推荐一款异地组网工具搭建属于自己的虚拟网络,经过授权连接成功之后彼此都在同一网段,可以像在局域网一样互相访问。
异地组网和内网穿透不同在于,内网穿透服务是第三方会分配给你一个域名或者公网 IP,任何人都可以访问
异地组网是需要再访问端和被访问端都安装可以异地组网的软件,比如 Zerotier
。来组成一个大的局域网。
注册账号#
首先我们到官网注册一个账号
也可使用 Google
或 Github
授权登录
在登陆后,会提示创建一个网络
创建一个网络#
点击创建网络后,会自动创建。我们只需记录对应的 id 即可
下载客户端#
和 frp 一样,需要我们在穿透的设备上面安装客户端。根据自己的电脑设备系统来进行下载并安装
- 在 Linux 中安装
curl -s https://install.zerotier.com | sudo bash
或者用 github 中的源码进行编译
git clone https://hub.njuu.cf/zerotier/ZeroTierOne.git
make
Linux 环境 加入 zerotier 局域网
执行下面命令,加入网络
zerotier-cli join <NETWORK ID>
<NETWORK ID>
就是我们创建网络后获得的网络 id
可能会遇到如下报错:
zerotier-cli: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
我们只需要将 source.list 添加以下内容:
deb http://download.zerotier.com/debian/bullseye bullseye main
之后更新下就好了
Linux 下的其他命令
# 加入
zerotier-cli join <NETWORK ID>
# 离开
zerotier-cli leave <NETWORK ID>
# 查看计算机连接的网络列表
zerotier-cli listnetworks
# 查看已连接的对等方(如需要连接其它局域网设备,建议先执行此命令查看IP)
zerotier-cli listpeers
#启动
sudo systemctl start zerotier-one.service
#停止
sudo systemctl stop zerotier-one.service
#打开开机自启
systemctl enable zerotier-one.service
#关闭开机自启
systemctl disable zerotier-one.service
- Windows 下安装 & 部署
首先下载 Windows 客户端并安装
点击客户端 Join New Network
填入自己的
连接成功后,我们在 Windows 下用 ipconfig 命令便可以看到用 zerotier 组网得到的 IP 地址。
测试#
网络连接成功后。设备直接就可以互相访问了
不足#
当然每款工具都有各自的优点和缺点。它的优点在于无需公网 IP 就可以实现两台异地的设备之间组网,而且很方便。不足是由于缺少公网 IP,其他用户是无法访问你的资源。除非也加入你的局域网。