前言

为什么要使用zerotier? 不是有很多内网穿透方案吗? 例如 FRP
使用 FRP 确实可以做到一样的效果 但如果我们的服务 需要使用CDN 此时被穿透的服务就无法获取访客的ip

本次使用上一篇文章购买的云驰2-2-50M活动机

教程

首先 我们需要最少两台设备(废话) 其中一台需要有公网ip 用于反向代理内网服务

在浏览器打开 www.zerotier.com 点击右上角的 Start For Free 创建账号

Zerotier免费版提供3个网络 10台设备的免费额度 对于我们的需求 足够使用

  1. 点击 Create A Network 创建一个新网络

  1. 点击创建后 下方会出现一个网络 我们点击进入

温馨提示: 不要泄露你的Network ID

  1. 复制你的Network ID 在拥有公网ip的服务器中输入

curl -s https://install.zerotier.com | sudo bash  #安装Zerotier 其他系统见https://www.zerotier.com/download/
zerotier-cli join 你的Network ID  #加入刚刚创建的网络

完成后 会提示200 join OK

  1. Zerotier会默认给我们分配一个ip 但为了后续服务的稳定性 建议手动设置一个方便使用的ip

刷新网页 此时会看到网页中多出一台设备 我们点击左Auth 下的方框 进行授权

然后刷新网页 在右侧的Managed IPs下 设备会多出IP地址 这便是Zerotier为设备分配的ip 我们在下方添加一个新的ip地址 然后点击左侧的加号 再刷新网页 删掉默认分配给我们的ip地址

如果你不想使用默认172.24.0 ip段 可以下滑找Advanced 部分 进行选择或自定义

  1. 保存后 我们添加第二个设备 也就是我们的内网设备

同样的操作 安装Zerotier 并将设备加入网络中

curl -s https://install.zerotier.com | sudo bash  #安装Zerotier 其他系统见https://www.zerotier.com/download/
zerotier-cli join 你的Network ID  #加入刚刚创建的网络

完成后 会提示200 join OK

进行同样的操作 设置一个ip

我这里分别设置 192.168.195.10 192.168.195.20 对应拥有公网ip的服务器和内网设备

分别在两台设备上 使ip a 查看网卡信息 如果均有对应的网卡 那么就代表我们成功了大半

在一台设备上 使用ping命令 测试另一个设备的连通性 比如 ping 192.168.195.20

此时 我们就可以把两台设备当做一个局域网的机器 在没有公网ip的设备上 部署服务 再通过有公网ip的服务器 使用nginx等工具 反向代理内网的服务器

比如我在内网的801端口上部署了一个web服务 就可以在公网设备上 反向代理192.168.195.20:801

卸载

查看所有的网络

zerotier-cli listnetworks

离开网络

zerotier-cli leave Network ID