背景应该基本都了解了 后面公网v4会越来越紧张 而家宽基本都支持了ipv6 可是 上班摸鱼有几家支持v6了啊
网上有不少内网穿透的方法 也研究了阵子zerotier 以前网上基本都是用官方控制器然后自建moon mjj为啥不釜底抽薪直接自建全套啊
自建moon的时候有遇到过连不上的情况 自建全套后就没发现了
此方法不需要注册zerotier账号 也没有官方免费50个限制
这里以docker套娃debian里运行为例 手工安装 mjj觉得不好用 直接删就是了
apt install docker.io
yum install docker
docker run -d –name=systemd-debian –privileged –network=host –hostname=debian10 -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-debian:10
docker exec -it systemd-debian sh
apt install nano wget net-tools -y
zerotier国内源有win和linux等等http://mirrors.sustech.edu.cn/zerotier/RELEASES/
wget http://mirrors.sustech.edu.cn/zerotier/RELEASES/1.6.6/dist/debian/buster/zerotier-one_1.6.6_amd64.deb
apt install ./zerotier-one_1.6.6_amd64.deb
cd /var/lib/zerotier-one
修改默认9993端口 不改可以跳过
nano local.conf
{
“settings”: { “primaryPort”: 9994 }
}
systemctl restart zerotier-one
主机需放行9994(默认9993)的tcp和udp 而不是网上说的udp
生成moon文件
zerotier-idtool initmoon identity.public >> moon1.json
nano moon1.json
修改 “stableEndpoints”: []括号里为”公网ipv4/9994″ 双栈就”公网ipv4/9994″,”ipv6/9994″,如果前面没改就是9993
如出口ipv4:1.2.3.4就是stableEndpoints”: [“1.2.3.4/9994″]
如出口ipv4:1.2.3.4 ipv6:1:2:3:4:5::8就是stableEndpoints”: [“1.2.3.4/9994″,”1:2:3:4:5::8/9994”]
自建planet
用小工具把moon文件转换成world.bin 再改成planet即可
wget https://github.com/kaaass/ZeroTierOne/releases/download/mkmoonworld-1.0/mkmoonworld-x86
chmod 777 mkmoonworld-x86
./mkmoonworld-x86 ./moon1.json
想多几个节点就用其他小鸡生成moon2.json moon3.json据说最多4个
./mkmoonworld-x86 ./moon1.json ./moon2.json ./moon3.json
会生成world.bin再给改名
mv world.bin planet
systemctl restart zerotier-one
网上还有说自建planet后还自建moon的 个人觉得没必要 找个延迟最低的自建 不需要多节点吧
下载ztncui控制器
wget https://s3-us-west-1.amazonaws.com/key-networks/deb/ztncui/1/x86_64/ztncui_0.7.1_amd64.deb
apt install ./ztncui_0.7.1_amd64.deb
centos可以到ztncui那里去看 有对应的rpm包和说明(https://key-networks.com/ztncui,https://github.com/key-networks/ztncui)
nano /opt/key-networks/ztncui/.env
ZT_ADDR=127.0.0.1:9994(不改默认就是9993端口)
主机xshell里再开一个页面 把planet拷出来
df -Th看下面很长的那个
/var/lib/docker/overlay2/xxx很长的那个目录/merged/var/lib/zerotier-one目录里planet拷到本地备用 后面要替换
主机安装socat端口转发web
apt install socat
yum install socat
socat tcp-listen:3001,reuseaddr,fork tcp:127.0.0.1:3000
(嫌麻烦也可以直接修改前面/opt/key-networks/ztncui/.env配置文件 官网和github有说明 个人觉得没啥必要 按需用就是了)
http://公网ip:3001
admin password
首次登陆要让改密码
点Add network 会出现一个很长的网络id
创建虚拟局域网
图省事就easy setup 比葫芦画瓢 如10.1.1.0/24 10.1.1.1-10.1.1.254
个人不喜欢dhcp就直接手工分配ip了
routers里add 10.1.1.0/24 网关留空
本地安装zerotier
替换planet
win:C:\ProgramData\ZeroTier\One
linux:/var/lib/zerotier-one
重启服务
win:services.msc里最下面那个zerotier的服务 重启
linux:systemctl restart zerotier-one
检查planet是否生效(可选,planet后面有你的ip/9994)
linux:zerotier-cli peers
win:zerotier-cli peers(需管理员运行powershell)
加入虚拟网络
linux:zerotier-cli join xxx(前面创建网络时的那个很长的id)
win:右下角zerotier图标加入或者直接管理员powershell输入zerotier-cli join xxx
ztncui网页控制器刷新下应该就出现了你的设备
member id可以本地zerotier-cli info查看
勾选authorized并分配ip 前面member name可以自己备注
删掉成员的时候好像要重启ztncui才行 软件问题
互ping一下 个人觉得还是挺满意的 然后就是大局域网玩了
哦 对了
安卓可以用zerotierfix
ios据说无解
op没太研究过 应该也可以直接穿透路由下的设备 油管搜zerotir openwrt 韩风有视频教程 多个替换planet就是了(/etc/config/zero/planet)