1、项目前景
(1)海外分公司和总部数据文件共享 使用 zerotier 做技术方案
(2)由于设备多,采用自建根服务器,突破官方限制的25台设备
https://github.com/Jonnyan404/zerotier-planet
(3)总部人数较多,分别在北上广分别部署 1台数据中转服务器提升数据传输,
保证海外分公司和总部的数据传输,语音 视频会议等相关需求
2、实施步骤
服务端: 下载 解压 启动容器
wget https://github.com/Jonnyan404/zerotier-planet/archive/refs/heads/main.zip
unzip zerotier-planet-main.zip
'''
#修改 配置文件
version: '2.0'
services:
ztncui:
container_name: ztncui
restart: always
environment:
- MYADDR=1.2.3.4#改成自己的服务器公网IP
- HTTP_PORT=4000
- HTTP_ALL_INTERFACES=yes
- ZTNCUI_PASSWD=admin@123
ports:
- '4000:4000' # web控制台入口
- '9993:9993'
- '9993:9993/udp'
- '3180:3180' # planet/moon文件在线下载入口,如不对外提供。可防火墙禁用此端口。
volumes:
- './zerotier-one:/var/lib/zerotier-one'
- './ztncui/etc:/opt/key-networks/ztncui/etc'
# 按实际路径挂载卷, 冒号前面是宿主机的, 支持相对路径
image: keynetworks/ztncui
'''
docker-compose up -d
数据中转服务器 moon
# 以下步骤为创建planet和moon
docker cp mkmoonworld-x86_64 ztncui:/tmp
docker cp patch.sh ztncui:/tmp
docker exec -it ztncui bash /tmp/patch.sh
docker restart ztncui
(1)创建网段 设置地址池
![image-20230703161344967]()
添加节点 激活急节点
(2) linux添加入节点
Linux 添加网络节点
curl https://install.zerotier.com/ | sed 's,download.zerotier.com/,mirrors.sustech.edu.cn/zerotier/,g' | sudo bash
curl -s https://install.zerotier.com | sudo bash
添加到 plant 节点
zerotier-cli join xxxxxxxx
添加moon 节点
zerotier-cli deorbit *** ***
(3) window添加节点
windows 下载 https://www.zerotier.com/download/
download ZeroTier 1.6.6
(4)安卓添加节点 和ios
安卓分两个版本
一个版本 自定义更改配置文件
一个是官方版
苹果手机 商店下载
(5)激活节点设备
![image-20230703161602647]()
客户端查询指令
Planet 地球 也叫做自建根服务器 或者 网络控制器
moons 月球 中继服务器
planet 文件是自定义 根服务器
moon文件是 中继服务器秘钥文件
登录 4000端口 查看 根服务器的 id
3 设置路由规则 比如我当前有个其他国的主机,那么所有的流量走这个主机的节点即可。
![image-20230703161754369]()
linux作为客户端节点,设置转发流量 从当前物理网卡 出去
官方文档 https://zerotier.atlassian.net/wiki/spaces/SD/overview
开启内核转发
sudo sysctl -w net.ipv4.ip_forward=1
=======================================
firewall 防火墙设置
firewall-cmd --add-masquerade --permanent # 开启nat 功能
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o ens33 -j MASQUERADE -s 10.33.79.0/24
# 配置 nat ,来源网段的数据,从ens33的接口转出去,同时伪装成ens33的iP地址
firewall-cmd --reload 加载配置文件
iptables 防火墙设置
'''
PHY_IFACE=eth0设置网卡的临时变量
ZT_IFACE=zta72ukxho
sudo iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE
sudo iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT
允许 VPS 的网卡 eth0 转发所有 ZeroTier 虚拟网卡 zt0 的流量
iptables-save
'''
=====
linux 客户端 老版本还需要设置客户端进行转发流量的控制 ,新版本不需要了
/etc/sysctl.conf
# Controls source route verification 控制源路由验证 放行
net.ipv4.conf.default.rp_filter = 2
sysctl -p # 生效
zerotier-cli set id allowlobal=1 # 允许转发全局的流量
zerotier-cli set id allowDefault=1 # 开启转发代理
这样 linux 客户端也走 专用线路
zerotier-cli set id allowDefault=0 # 关闭转发代理
具体设置 见博客
https://blog.csdn.net/RadiantJeral/article/details/107913539
=====
curl ifconfig.io/host
查看返回的数据是否是远端ip
````
reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /D 1 /f
sc config RemoteAccess start= auto
sc start RemoteAccess
这样主机A就开启了路由转发了,相当于一台路由器呢
主机B中
同样”以管理员身份运行CMD”
运行以下命令
route add 192.168.8.0 mask 255.255.255.0 10.1.34.192
windows 不支持当前设定
````
windows 客户端
允许托管地址 打勾
允许分配全局IP 打勾
允许默认路由器重写 打勾
允许DNS配置 打勾