zerotier Moon 搭建

原文地址

zerotier-one介绍

	这是个好东西,打洞专用,使用UDP进行打洞,致力于开源SDNSD-WAN解决方案,属于开源精品(仅仅是客户端开源,服务端不开源但是可以免费使用100个连接,所有这里用三方的开源组件搭建Moon端).跨平台多终端
	将复杂的互联网用点对点的形式进行组建,并且在上面附加一层 VXLAN-like 虚拟网络层 来提高局域网的可见性,安全性.

Zerotier 定义了几个专业名词,以及优势

#使用 zerotier-cli listpeers 命令时能看到这几个名词。充当 moon 的机子最好有公网 IP
	PLANET	:行星服务器,	Zerotier 各地的根服务器,有日本、新加坡等地
	Moon	:卫星级服务器,	用户自建的私有根服务器,起到中转加速的作用
	LEAF 	:相当于各个枝叶,	就是每台连接到该网络的机器节点

#zerotier-one优势
	1:控制端(ZeroTier 官网)功能足够强大,可以下发路由表、准入控制、IP分配、流量规则等,
	2:可以建立中转服务器(Moon 服务器),从而实现更好的链接效果
	3:接近于免费。个人用户最多可以接入 100 节点设备,
	4:客户端开源。你完全可以自己编译

搭建开源的Moon 卫星中转节点

#ztncui依赖于zerotier,所以需要先安装zerotier
	curl -s https://install.zerotier.com | sudo bash

#安装ztncui软件,并启动
	yum install https://download.key-networks.com/el7/ztncui/1/ztncui-release-1-1.noarch.rpm -y
	yum install ztncui -y
	echo "HTTPS_PORT = 3443" > /opt/key-networks/ztncui/.env

	systemctl restart ztncui

#web登录ztncui控制台
	https://ip:3443
	账户:admin
	密码:password

#将本机配置为moon节点
	#进入zerotier-one的配置文件目录
	cd /var/lib/zerotier-one
	#在/var/lib/zerotier-one 目录下生成moon.json
	zerotier-idtool initmoon identity.public >> moon.json

	vi /var/lib/zerotier-one/moon.json
	#将这行修改为
	"stableEndpoints": [ "主机ip1/9993","主机ip2/9993" ]

	#生成签名文件,此命令会生成一个签名文件在当前目录下,文件名如 000000deadbeef00.moon (机器 A 的 id 为 deadbeef00)
	zerotier-idtool genmoon moon.json

	#关闭selinux

#(备注)使用方式,及其他系统参看ztncui的社区文档
	https://key-networks.com/ztncui/

zerotier-one客户端安装

#linux安装zerotier-one
	curl -s https://install.zerotier.com | sudo bash

#linux若作为本地转发网关,需要关闭selinux

#加入网络
	zerotier-cli join xxxxxxxx

zerotier-one客户如何加入自定义的Moon节点

#方法一:
	zerotier-cli orbit deaxx22 deaxx22

#方法二:
	在客户端的zerotier-one配置目录,创建moons.d  并将Moon节点的/var/lib/zerotier-one/000000deadbeef00.moon 文件复制到刚才的moons.d目录下

	#linux目录	/var/lib/zerotier-one/
		mkdir /var/lib/zerotier-one/moons.d/
	#windows目录 C:\ProgramData\ZeroTier\One
	#FreeBSD/OpenBSD目录: /var/db/zerotier-one

	scp root@192.168.60.3:/root/000000106a05f02c.moon /var/lib/zerotier-one/moons.d/
	zerotier-cli orbit 106a05fxxc 106a05fxxc
	
	#若是客户端作为本地转发网关,需要设置SNAT以及开启,内核转发 
		#echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
		#sysctl -p
		#iptables -t nat -A POSTROUTING -s 192.168.255.29/24 -o br-lan -j SNAT --to-source 192.168.60.3

zerotier-one客户端操作帮助

#客户端目录路径
	cd /var/lib/zerotier-one

#重启客户端
	systemctl restart zerotier-one

#zerotier-cli用法指引
	zerotier-cli info			#查看当前zerotier-one的信息
	zerotier-cli listpeers			#列出所有的peers
	zerotier-cli listnetworks		#列出加入的所有的网络
	zerotier-cli join <network>		#加入某个网络
	zerotier-cli leave <network>		#离开某个网络
	zerotier-cli listmoons			#列出加入的Moon节点
	zerotier-cli orbit <world ID> <seed> 	#加入某个Moon节点
	zerotier-cli deorbit <world ID> 	#离开某个Moon节点