无公网IP通过ZeroTier方便实现内网穿透(详细)
需求:想要在公司访问家里内网NAS,或是在家里访问公司服务
有固定的公网IP或动态的公网IP:常见的方案动态域名解析做端口转发方式等
无公网IP:常见的实现方案向日葵、teamviewer、ngrok、frp等
有公网地址的情况下,我这里还是推荐端口转发方式,速度最理想!!!另外条件允许还是优先考虑frp做内网穿透,速度根据自己情况可控,最理想的方案!!!
本文主要讲解一个无公网IP的情况,通过ZeroTier实现内网穿透,而且配置起来非常容易
ZeroTier设备支持:
免费用户可以支持100个设备,支持Windows、macOS、Linux、IOS、Android、Synology、QNAP、Western Digital MyCloud NAS等等。
ZeroTier原理:
ZeroTier虚拟了一个网段,网段为192.147.17.0/24,公司和家里分别安装ZeroTier客户端,客户端会虚拟出一个网络并加入192.147.17.0/24这个网段,在家即可访问192.147.17.22地址,反之同理。
1、注册账号并创建一个网段
2、下载客户端并加入这个网段
开始部署:
1、创建账号
2、创建网络
进入https://my.zerotier.com/network点击Create创建网络
3、点击进入已创建的网络
此时可以看到Network ID,后续添加设备都会需要这个ID。
我这里说下Access Control,默认是Certificate (Private Network),选择此模式表示每次在添加新的主机时,需要手动勾选是否允许连接,如果选择None (Public Network)模式,表示加入网络后自动分配IP并允许连接,从安全性来说建议使用默认选项Certificate (Private Network),方便性来看None (Public Network)更方便,不用每次加入网络后手动勾选。
另外根据个人情况你也可以自由设置网段,此处不做过多说明
好了,一个中转的ZeroTier就配置完成了,接下来只需要在其他设备安装所对应的客户端,然后加入到这个网络中就可以了。
Windows客户端安装
下载zerotier windos客户端
https://download.zerotier.com/dist/ZeroTier%20One.msi
安装后点击Log In登陆,登陆成功后会看到当前创建的网络,点击Join加入
或者右键点击zerotier图标,点击Join Network加入
然后在https://my.zerotier.com/network页面所创建的网络中刷新即可看到,刚刚加入的主机,如果使用的是Certificate (Private Network)模式,需要在页面中手动勾选一下允许加入网络。
Centos7客户端安装
1、编辑添加yum源
1
|
vi /etc/yum.repos.d/zerotier.repo
|
1 2 3 4 5 |
[zerotier] name=ZeroTier, Inc. RPM Release Repository baseurl=http://download.zerotier.com/redhat/el/$releasever enabled=1 gpgcheck=0 |
2、安装zerotier
1 2 |
yum clean all yum install zerotier-one |
3、启动服务
1
|
zerotier-one -d
|
4、查看服务状态
1
|
zerotier-cli status
|
看到200 info 596811110b 1.2.12 ONLINE表示服务正常
可以使用netstat命令看到所启动的服务端口(这里192.168.1.162是centos本机的IP)
5、加入网络(后面是你自己的ID号)
1
|
zerotier-cli join Network ID
|
加入后会提示200 join OK
进入https://my.zerotier.com/network
刷新几次页面即可看到新加入的主机,然后在前面勾选即可,勾选后Version会变成版本号,并且会分配出一个IP地址
6、主机验证
回到centos7主机上通过ifconfig命令即可看到,此处又多了一个内网IP,此内网IP和zerotier一致,表示配置完成
附:加入、离开、列出网络状态
1 2 3 |
zerotier-cli join Network ID zerotier-cli leave Network ID zerotier-cli listnetworks |