article/zeroTier/zerotier异地组网.md

3.6 KiB
Raw Blame History

ZeroTier 异地组网

异地组网 路由器类型 不同的类型组网方式不一样 这里介绍硬路由组网方式

  • 路由器是硬路由 不能装插件

  • 路由器是软路由

前置准备工作

  • 需要一台在局域网里正常运行的linux主机
  • 一个能 添加静态路由的 硬路由
  • 一个 zeroTier账号

硬路由准备

设置linux 主机mac地址绑定

防止断电重启后linux 主机地址发生变化 我这里绑定的 192.168.123.119

添加静态路由

如图所示,路由地址 为 zerotier的网段 这里我们设置为 192.168.191.0/24 网关为 linux 主机地址

image-20230604184212724

ZeroTier

准备工作
  • 登录 ZeroTier 控制台创建一个网络 网络类型私有 得到网络id

  • 设置 zerotier的网段为 上述静态路由的地址 192.168.191.0/24

  • 添加路由

安装 zerotier

在之前准备的内网linux上 安装 zerotier脚本适用于 centos ,debian

curl -s https://install.zerotier.com/ | sudo bash
加入网络
zerotier-cli join  id
授权节点、固定Ip

在zerotier控制台找到 Members 节点 找到加入网络的linux 主机

在AUTH 选项下打勾禁止自动分配IP 将节点IP 设置一个固定的值。

image-20230604183335193

添加路由跳转

在高级选项中添加路由

第一个框是 你硬路由的局域网,我这里是 192.168.123.0/24

第二个框是 网关 填写上一步设置的ip ,我这里是 192.168.191.2

image-20230604183612373

完成这两步后

zerotier 基本命令
Usage: zerotier-cli [-switches] <command/path> [<args>]


switches:
-h - 显示此帮助
-v - 显示版本
-j - 显示完整原始 JSON 输出
-D<path> - ZeroTier 主目录路径,用于参数自动检测
-p<port> - HTTP 端口 (默认: 自动)
-T<token> - 认证令牌 (默认: 自动)

可用的命令:
info - 显示状态信息
listpeers - 列出所有对等节点
peers - 列出所有对等节点(更美观)
listnetworks - 列出所有网络
join <network ID> - 加入网络
leave <network ID> - 离开网络
set <network ID> <setting> - 设置网络配置
get <network ID> <setting> - 获取网络配置
listmoons - 列出 moons (联邦根集)
orbit <world ID> <seed> - 通过任何成员根加入 moon
deorbit <world ID> - 离开 moon
dump - 调试设置转储以供支持

LINUX 设置

这里使用的debian 系统 Debian系统使用的 ufw 防火墙

获取 网卡名字

记录 zerotier 网卡名字 ztyqbub6jp

ip addre  
开启nat 转发
echo "net/ipv4/ip_forward=1" >> /etc/ufw/sysctl.conf
接收转发数据

打开UFW配置文件/etc/default/ufw。找到DEFAULT_FORWARD_POLICY键,然后将值从DROP更改为ACCEPT

sudo vim /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
设置ip伪装

nat表中设置POSTROUTING链的默认策略和伪装规则。

打开/etc/ufw/before.rules文件。追加以下几行到文件.

sudo vim /etc/ufw/before.rules
#NAT table rules 启用nat 表
*nat
# 允许POSTROUTING 链
:POSTROUTING ACCEPT [0:0]

# 转发eth0接口的数据包请将eth0更改为
-A POSTROUTING -o ztyqbub6jp -j MASQUERADE

# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

最后,通过命令sudo ufw reload加载规则。