无公网ip使用zerotier搭建内网穿透
一、前因
在没有申请到公网IP之前,我去了解了内网穿透,对比了很多款吧,现在忘了,有印象的就zerotier与frp(当然,不喜折腾的买类似花生壳那种设备即可),最后我用的是zerotier,具体原因好像是zerotier跑的是端点的带宽,而frp依赖搭建的服务器带宽。
没有树莓派前,我玩的是我家云,用zerotier组建了笔记本——我家云——公司三个端,玩的不亦乐乎。
后来入手了树莓派,知识面大了,知道了公网IP,我家云如今吃灰中,zerotier就只有笔记本与公司两个端了,我也没去卸载,因为公司电脑配置太低了。
借由zerotier,我在公司基本是win+r,mstsc,输入ip+密码,然后摸鱼玩自己电脑,顺带局域网中玩树莓派,美哉。
有这篇文章完全是我的笔记本被借走了,朋友回家打加强版疫苗,把我笔记本顺走了!!!
没办法,只能往树莓派也安装一个zerotier了。
简单解释下zerotier原理,纯属个人理解。
zerotier原理类似局域网,建一个网络点,然后每个机器通过ID加入到这个网络点,这样互相就可以访问了。ok,解释完毕,简简单单。
二、新建网络
建一个网络点,这个其实就是一个账号。官网:https://www.zerotier.com 用google账号登录,新建个网络,复制下network id,稍后待用。
进去改下信息,其他的不用管,不改也行,直接下一步。
三、window端操作
网络点有了,现在可以给它加入机器了,先来加个烂大街的window吧,zerotier下载地址:https://www.zerotier.com/download/,别告诉我不知道这么下载!
安装之后,点击图标选择加入网络。
粘贴复制好的网络id
回到网页,详情页往下翻到 Members条目,给他授权。
行了,window搞定了。
四、linux端操作
ssh进入树莓派,输入下面命令安装。
curl -s https://install.zerotier.com/ | sudo bash
查看是否安装成功,我这里显示1.8.4
zerotier-cli -v
加入网络点,显示 200 join OK
。别抄上头,记得改成你的network id。
zerotier-cli join a84ac5c10a50c38d
继续去网页授权,ok,现在这两个端可以互相访问了,你可以在公司使用IP访问树莓派的应用端口,IP为下图中的Managed IPs与Physical IP
zerotier手机端也有,方法差不多,加入到这个网络点,就可以使用ip互相访问,我这里有公网IP,就不去弄了。
五、优化
zerotier默认使用全球的服务节点,高峰时刻不稳定,官方也有说明,可以搭建自己的moon服务器作为跳板,加速网络。
没有太大需求不需要优化,毕竟还得要服务器,所以小白到上一步就可以了,优化只是针对有自己服务器的。
moon 服务器搭建很简单,先把服务器加入网络点,重复上一步即可。
进入 zerotier 配置目录。
cd /var/lib/zerotier-one
生成 moon.json 签名文件,并编辑
zerotier-idtool initmoon identity.public >>moon.json
vi moon.json
将你的服务器IP添加到"stableEndpoints": [] 中,类似 "stableEndpoints": [ "10.0.0.2/9993","2001🔡abcd::1/9993"]
这种。
生成 .moon 签名文件
zerotier-idtool genmoon moon.json
目录下会有一个.moon后缀文件生成,把它复制到moon.d文件夹下
mkdir moods.d
cp 000000XXXXXX.moon moods.d/
# 重启一下
systemctl restart zerotier-one.service
ok,现在你的moon服务器搭建成功了,该给其他端接入这个moon了,先复制服务器的id,通过 zerotier-cli info
查看。
windows通过管理员运行cmd,输入 zerotier-cli.bat orbit abcdefgaca01 abcdefgaca01
linux直接输入 zerotier-cli orbit abcdefgaca01 abcdefgaca01
都记得改成自己的,别瞎抄。
最后通过 zerotier-cli listpeers
有出现你的服务器ip就成功了。
六、总结
互相ping一下吧,1ms的延迟不要太爽。
睡觉。