更新 zerotier 异地组网
This commit is contained in:
		
							
								
								
									
										184
									
								
								zeroTier/zerotier异地组网.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										184
									
								
								zeroTier/zerotier异地组网.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,184 @@
 | 
			
		||||
## ZeroTier 异地组网
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
异地组网 路由器类型 不同的类型组网方式不一样 这里介绍硬路由组网方式
 | 
			
		||||
 | 
			
		||||
- 路由器是硬路由 不能装插件
 | 
			
		||||
 | 
			
		||||
- 路由器是软路由
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### 前置准备工作
 | 
			
		||||
 | 
			
		||||
- 需要一台在局域网里正常运行的linux主机 
 | 
			
		||||
- 一个能 添加静态路由的 硬路由
 | 
			
		||||
- 一个 zeroTier账号
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### 硬路由准备
 | 
			
		||||
 | 
			
		||||
##### 设置linux 主机mac地址绑定
 | 
			
		||||
 | 
			
		||||
防止断电重启后linux 主机地址发生变化 我这里绑定的 `192.168.123.119`
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### 添加静态路由
 | 
			
		||||
 | 
			
		||||
如图所示,路由地址 为 zerotier的网段 这里我们设置为 `192.168.191.0/24`  网关为 linux 主机地址
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### 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 设置一个固定的值。
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### 添加路由跳转
 | 
			
		||||
 | 
			
		||||
在高级选项中添加路由 
 | 
			
		||||
 | 
			
		||||
第一个框是 你硬路由的局域网,我这里是  `192.168.123.0/24` 
 | 
			
		||||
 | 
			
		||||
第二个框是 网关  填写上一步设置的ip ,我这里是 `192.168.191.2`
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
完成这两步后
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### 附: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`加载规则。
 | 
			
		||||
		Reference in New Issue
	
	Block a user