ZeroTier 内网穿透
前言
内网穿透研究。
一、资源准备
1.1 简介
ZeroTier
是全球的智能可编程以太网交换机。它允许所有联网设备、虚拟机、容器和应用程序进行通信,就好像它们都位于同一物理数据中心或云区域一样。
1.2 构建网络
- 注册:在 官网 进行注册,本文直接通过
Google 账户
进行登录。 - 创建网络:登陆后点击网页中央的
Create A Network
按钮构建网络,默认为私有网络,需要手动确定成员。 - 设置网络:在下方的虚拟局域网列表中找到刚创建的网络,修改名称,在
IPv4 Auto-Assign
中修改局域网网段,防止和真实地址冲突。 - 记录
Network ID
,以供后续部署使用。
二、部署
2.1 服务器端部署
- 在服务器中安装并配置网络。
bash123456789# install curl -s https://install.zerotier.com/ | sudo bash # config auto start sudo systemctl start zerotier-one.service sudo systemctl enable zerotier-one.service # join Zerotier Network sudo zerotier-cli join abfd31bd47a5b0bd Your-Network-ID
- 在 官网个人页面 中允许添加并给定 IP 地址。
2.2 用户端部署
- 下载并安装
Zerotier windows
客户端。 - 在托盘中右键
Zerotier
图标,join network
,输入Network ID
。 - 在 官网个人页面 中允许添加并给定
IP 地址
。
2.3 moon 节点添加
-
与服务器配置相同,首先将中转节点作为局域网成员添加。
-
配置
端口
和moon
信息。
bash1234567891011121314151617# config moon.json cd /var/lib/zerotier-one/ touch moon.json sudo chmod 777 moon.json sudo zerotier-idtool initmoon identity.public > moon.json vi moon.json # 添加服务器公网IP "stableEndpoints": [ "xxx.xxx.xxx.xxx/9993" ] sudo zerotier-idtool genmoon moon.json # 生成xxxxxxxx.moon文件 sudo chmod 644 moon.json # enable firewall sudo ufw allow 9993/udp # enable moon sudo mkdir moons.d sudo mv xxxxxxxx.moon moons.d/ sudo service zerotier-one restart scp -r moons.d username@serverZerotierIP:/home/username
- 在服务器中激活
moon
节点。
bash123456# 激活 sudo mv moons.d /var/lib/zerotier-one/ sudo service zerotier-one restart # 验证 sudo zerotier-cli listpeers # 看到role 为 moon 的节点即可
2.4 (参考) 内网单机代理
- 通过
ip addr
获取联网的物理网卡地址PHY_IFACE
和zerotier
的虚拟网卡地址ZT_IFACE
。
bash12345678PHY_IFACE=; ZT_IFACE= 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 sudo apt install iptables-persistent sudo bash -c iptables-save > /etc/iptables/rules.v4
参考
本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 我的个人天地!