使用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-one和zerotier-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类似,直接命令行操作就好了,不过开机自启会在系统右下方的托盘中(如图)
然后启动一个以管理员身份运行 的命令行窗口加入网络即可
手机安装
手机上安装找到ZeroTile的应用程序,下载安装即可(我手机自带的应用商店还找不到ZeroTile,是使用Google Play找到下载的)然后点击添加网络,输入网络ID即可。不过这时在官网上你可能还看不到手机,我是稍微等了一会官网上才跳出来的,然后去给手机授权即可。