文章

使用ZeroTier进行内网穿透

使用ZeroTier搭建自己使用的网络服务

使用ZeroTier进行内网穿透

起因

前段时间购买了一个x86的工控主机,然后给它安装了Ubuntu系统,考虑到它耗电量低,计划用它部署一些自己很常用的网络服务,或者其他什么的(多使用docker),开始昨天搞的时候发现自己家没有任何公网ip,包括Ipv4和Ipv6都没有公网Ip,所以只能寄希望于内网穿透,内网穿透我还是用过不少了,不过这里我选择的是ZeroTier做内网穿透软件,因为它是使用的P2P模式,两个设备是直接相互连接的,不经过第三方服务器,所有设备也都处于同一个虚拟局域网下,和其他内网穿透软件相同。下面是AI总结的它和其他软件的区别

特性/软件ZeroTier传统VPN (OpenVPN, WireGuard Server)反向代理/隧道 (frp, ngrok)端口转发 (Port Forwarding)
网络模型虚拟局域网 (Layer 2 Mesh VPN)客户端-服务器客户端-中继服务器-公网访问者路由器-内网设备
穿透层级Layer 2 (以太网层)Layer 3 (IP层)应用层/传输层 (HTTP, TCP, UDP)传输层 (TCP, UDP)
连接方式P2P 直连为主,无法直连时中继客户端连接到服务器中转客户端连接到中继服务器,公网用户访问中继公网用户访问路由器,路由器转发到内网设备
访问范围加入网络的所有设备可相互访问访问VPN服务器所在内网暴露内网特定服务/端口到公网暴露内网特定设备特定端口到公网
公网IP需求不需要(双方都不需要公网IP,依赖NAT穿透)VPN服务器需要公网IP(或端口转发到服务器)中继服务器需要公网IP路由器需要公网IP(或配合DDNS)
易用性高,客户端安装即用,Web管理中等,服务器搭建配置相对复杂中等,需要搭建中继服务器或使用SaaS服务中等,需要登录路由器进行配置,可能涉及DDNS
安全性端到端加密,内部网络隔离端到端加密,依赖服务器配置,所有流量经服务器隧道加密,但数据流经第三方中继服务无额外加密,直接暴露服务,安全性最低
适用场景组建虚拟团队网络,远程访问多台设备,共享文件,联机游戏远程访问公司内网,科学上网,保护隐私发布内网Web服务,远程调试SSH,发布游戏服务器家庭影音服务器,远程摄像头访问,NAS访问

而且考虑到我需要在我的安卓手机、Windows电脑、Ubuntu工控机上都要安装,考虑平台兼容性和安装便捷性,我最终选择的ZeroTier。下面我们看看怎么在所有设备上安装它。

安装

在安装之前,我们首先需要去官网上注册一个账户,在注册时官网就会教你先配置两个设备在网络中,后面所有新添加的设备都需要去官网上同意加入,然后使用官网新添加的网络ID,在电脑上连接进入网络,官网确认之后就完成添加了。所有设备进入网络都需要官网确认,所以下面的教程我就不会再提及这一部分了。(这里的网络ID后面还看得到,也不是非得记住,为了演示方便,下面我假设这个ID是1234567890abcdef

Ubuntu安装

首先给我的工控机安装,安装很简单,直接apt安装就好了

1
2
sudo apt update
sudo apt install zerotier-one

这里我最开始看的教程让我先curl获取一个什么脚本,然后运行脚本,结果我安装之后安装目录就错了,zerotier-onezerotier-cli也没添加到PATH中去,zerotier-one.service也找不到,完全用不了,所以最后我还是先删除了最初下载的全部文件,然后重新下载的,所以我也建议直接使用apt安装。

安装之后,使用如下命令启动ZeroTier

1
sudo systemctl start zerotier-one

然后如下命令配置其开机自启动

1
sudo systemctl enable zerotier-one

接下来使用如下命令加入网络

1
sudo zerotier-one join 1234567890abcdef

如下命令可以确认连接状态

1
sudo zerotier-cli status

Windows安装

然后在我的电脑上安装,对于Windows安装,需要去官网下载安装包,然后双击安装就好了,操作和Ubuntu类似,直接命令行操作就好了,不过开机自启会在系统右下方的托盘中(如图) Windows开机自启.png 然后启动一个以管理员身份运行 的命令行窗口加入网络即可

手机安装

手机上安装找到ZeroTile的应用程序,下载安装即可(我手机自带的应用商店还找不到ZeroTile,是使用Google Play找到下载的)然后点击添加网络,输入网络ID即可。不过这时在官网上你可能还看不到手机,我是稍微等了一会官网上才跳出来的,然后去给手机授权即可。

本文由作者按照 CC BY 4.0 进行授权