article/zeroTier/zerotier异地组网.md

184 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## ZeroTier 异地组网
异地组网 路由器类型 不同的类型组网方式不一样 这里介绍硬路由组网方式
- 路由器是硬路由 不能装插件
- 路由器是软路由
### 前置准备工作
- 需要一台在局域网里正常运行的linux主机
- 一个能 添加静态路由的 硬路由
- 一个 zeroTier账号
### 硬路由准备
##### 设置linux 主机mac地址绑定
防止断电重启后linux 主机地址发生变化 我这里绑定的 `192.168.123.119`
##### 添加静态路由
如图所示,路由地址 为 zerotier的网段 这里我们设置为 `192.168.191.0/24` 网关为 linux 主机地址
![image-20230604184212724](http://pic.61dz.com/pic/image-20230604184212724.png)
### ZeroTier
##### 准备工作
- 登录 ZeroTier 控制台创建一个网络 网络类型私有 得到网络id
- 设置 zerotier的网段为 上述静态路由的地址 `192.168.191.0/24`
- [添加路由](#添加路由跳转)
##### 安装 zerotier
在之前准备的内网linux上 安装 zerotier脚本适用于 centos ,debian
```bash
curl -s https://install.zerotier.com/ | sudo bash
```
##### 加入网络
```bash
zerotier-cli join id
```
##### 授权节点、固定Ip
在zerotier控制台找到 Members 节点 找到加入网络的linux 主机
在AUTH 选项下打勾禁止自动分配IP 将节点IP 设置一个固定的值。
![image-20230604183335193](http://pic.61dz.com/pic/image-20230604183335193.png)
##### 添加路由跳转
在高级选项中添加路由
第一个框是 你硬路由的局域网,我这里是 `192.168.123.0/24`
第二个框是 网关 填写上一步设置的ip ,我这里是 `192.168.191.2`
![image-20230604183612373](http://pic.61dz.com/pic/image-20230604183612373.png)
完成这两步后
##### 附zerotier 基本命令
```bash
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 转发
```bash
echo "net/ipv4/ip_forward=1" >> /etc/ufw/sysctl.conf
```
##### 接收转发数据
打开UFW配置文件`/etc/default/ufw`。找到`DEFAULT_FORWARD_POLICY`键,然后将值从`DROP`更改为`ACCEPT`
```bash
sudo vim /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
```
##### 设置ip伪装
`nat`表中设置`POSTROUTING`链的默认策略和伪装规则。
打开`/etc/ufw/before.rules`文件。追加以下几行到文件.
```bash
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`加载规则。