借助第三方控制器ztncui私人化zerotier one,打造安全的内网穿透环境

2021-10-12 18:40:44 19点赞 159收藏 31评论

创作立场声明:本人不是网络相关的专业人员,不过是喜欢搞家庭服务器,所以学了一点点皮毛技术,分享给大家。可能有很多错误,也有很多不严谨的地方,欢迎大家指正。该教程是在我家网络环境下搭建的,可能不完全通用。

zerotier one是众多内网穿透工具平衡性最好的。方便速度快部署简单的比他贵的多,速度比他快比他便宜的部署麻烦,比他便宜部署容易的使用体验又不好。

但是zerotier one也有不好的地方。首先是连接速度和延迟表现不佳,主要受限于多重NAT和运营商UDP QOS的影响。当然两个通讯的节点都有ipv6的环境下,或是拥有私人MOON节点的时候变现会有所提升。另外就是zerotier one的安全性不是很好。zerotier one通过一串16字符的网络ID和管理面板授权,就可以让的节点加入虚拟局域网。一旦管理面板的的账号密码泄露,内网就有可能被入侵。另外zerotier one的免费版只能添加50个节点,而第三方控制器则不受限制。

ztncui是zerotier one众多开源第三方控制器中的一个,之所以选它是因为它是唯一一个拥有图形界面的。通过配置客户端的planet就可以跳过官方节点,使用ztncui完成各个节点之间的通讯和打洞。

准备工作

Zerotier不支持已域名方式和控制器通讯,所以你需要准备一个具有固定公网ip的云服务器,最好同时具备固定ipv6。

对于android设备,需要使用kaaass大神Zerotier FIX才可以使用自定义控制器和自定义moon服务器,IOS设备无解。

云服务器准备

我在这里使用的腾讯云服务器,首先申请ipv6的使用权。搜索引擎搜索“腾讯云IPV6”就可以申请腾讯云的ipv6使用权。然后在控制面板——私有网络——子网——“更多”选项添加ipv6支持。在租用云服务器时选择启动ipv6既可以拥有固定ipv6。我使用的系统是centos8.2 64位,并配置安全组开放需要使用的端口

借助第三方控制器ztncui私人化zerotier one,打造安全的内网穿透环境

借助第三方控制器ztncui私人化zerotier one,打造安全的内网穿透环境

借助第三方控制器ztncui私人化zerotier one,打造安全的内网穿透环境



#zerotier安全组说明

#ztncui Web控制面板使用的端口。可以自行选择端口,根据自己选择端口配置安全组

TCP:3443

# Zerotier节点与控制器通讯的端口,可自行选择端口,根据自己选择的端口配置安全组

TCP:9993

#MOON节点与控制器通讯的中继端口,可自行选择端口,根据自己选择的端口配置安全组

UDP:9993

#需要分别设置ipv4和ipv6的规则



ztncui&Zerotier安装与设置

ssh登陆到云服务器开始搭建,以下为centos安装命令。

#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

#设置ztncui配置文件

vi /opt/key-networks/ztncui/.env

#按"i"键进入编辑模式,输入下面内容,端口号可以自行更改,但必须和安全组一致。

#输入后按“Esc”键输入“:wq!”保存退出

HTTPS_PORT = 3443

#重启ztncui

systemctl restart ztncui

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

配置moon服务器

#进入zerotier one文件夹

cd /var/lib/zerotier-one

#生成moon.json文件

zerotier-idtool initmoon identity.public >> moon.json

#编辑moon.json文件,

# 修改 “stableEndpoints”: [ “你的公网IPx1/端口”,”你的公网IPxN/端口” ]

#ipv4 ipv6都可以,一般端口默认为9993,然后保存退出

vi moon.json

#拷贝到/home文件夹

cp moon.json /home && cd /home

#生成客户端用的moon配置文件

zerotier-idtool genmoon moon.json

#将生成的000000XXXXX.moon文件发给各个zerotier one客户端,建议使用winscp下载。


配置ztncui


#修改ztncui配置文件

vi /opt/key-networks/ztncui/.env

#添加一些需要的参数

#查看/var/lib/zerotier-one/authtoken.secret获取ZT_TOKEN,建议通过winscp查看

ZT_TOKEN=用authtoken.secret文件内的内容替换此处

ZT_ADDR=127.0.0.1:9993

#保存退出

#重启ztncui

systemctl restart ztncui


激活moon服务器,迁移控制器至ztncui

#进入/home文件夹

# 下载mkmoonworld主程序,并赋予执行权限,如果下载太慢,可以借助下载工具下载好后上次到/home

wget https://github.com/kaaass/ZeroTierOne/releases/download/mkmoonworld-1.0/mkmoonworld-x86

chmod 777 mkmoonworld-x86

# 生成planet文件

./mkmoonworld-x86 ./moon.json

# 若要设置多个planet节点,将其他节点的moon.json 写入到另外的文件,如 moon1.json moon2.json

# ./mkmoonworld-x86 ./moon1.json ./moon2.json

# 令planet文件生效

mv world.bin planet && systemctl restart zerotier-one


# 进入zerotier主目录

cd /var/lib/zerotier-one

# 创建moons.d文件夹并将生成的moon节点移入该文件夹内,根据moon文件的实际名字修改命令

mkdir moons.d

cd /home

cp 000000f0c4b26838.moon /var/lib/zerotier-one/moons.d

# 重启zerotier使moon节点生效

systemctl restart zerotier-one


完成上面的操作,服务端的配置已经全部完成,接下来是客户端节点的配置。

ztncui管理界面配置


登陆到ztncui,首次登陆会要求你更改密码,更改好密码以后。点击ADD-NETWORK——输入网络名提交后建立完成——点击导航栏networks——找到刚才建立的网络——点击easy setup——点击Generate network address会自动建立一个虚拟网段,然后Submit。其他的选项不要去动,否则会无法分配IPV4地址。

Routes选项卡用于配置路由转发规则,用openwet需要设置好,才能访问内网。

网络名旁边的括号里是网络ID,各个节点通过这个ID加入虚拟网络

其他的操作和官方管理差不过


借助第三方控制器ztncui私人化zerotier one,打造安全的内网穿透环境

移动设备端设置

不能使用官方编译的Zerotier,需要使用kaaass大神Zerotier FIX。Zerotier FIX才能支持自定义moon节点和planet节点。目前Zerotier FIX只支持android设备。

将服务器上的world.bin和000000XXXXX.moon文件下载到本地,将world.bin更名为plannet。然后传送到手机

安装好Zerotier FIX,打开软件——右上角——设置——启动自定义planet——选择从文件导入——选择刚才的palnet文件。提示导入成功既切换planet成功。

加入moon服务器,打开软件——右上角——入轨——右下角加号——从文件导入——选择刚才的moon文件。提示成功,会在入轨界面看到moon服务的id。

主界面添加ztncui网络管理界面上的网络ID,并在ztncui上授权加入

借助第三方控制器ztncui私人化zerotier one,打造安全的内网穿透环境

借助第三方控制器ztncui私人化zerotier one,打造安全的内网穿透环境

openwrt设置

先停止openwrt上运行的Zerotier,winscp连接到openwrt。

替换planet,打开到/var/lib/zerotier-one——用刚才的planet文件替换目录下的planet文件(自行备份原文件)。

添加moon,打开到/var/lib/zerotier-one——新建一个文件夹“moons.d”文件夹,将moon文件复制过去。

回到Zerotier,填入网络ID,管理界面授权加入。

windows设置

找到Zerotier one安装目录,将planet文件替换目录下planet文件,新建moons.d文件夹,将moon文件复制过去。在服务管理器重启Zerotier one,添加网络ID,并授权加入。

我的windows设置后,被的其他节点无法ping windows节点。windows节点可以 ping其他节点。本人能力有限,非专业人员,排查不出问题。不过我主要是用openwrt的节点并配置路由规则来穿透。

linux设置

和openwrt设置一样

ping结果

借助第三方控制器ztncui私人化zerotier one,打造安全的内网穿透环境

借助第三方控制器ztncui私人化zerotier one,打造安全的内网穿透环境

借助第三方控制器ztncui私人化zerotier one,打造安全的内网穿透环境

借助第三方控制器ztncui私人化zerotier one,打造安全的内网穿透环境

下面是Debian/Ubuntu安装命令,我没有测试过,有没有用不清楚,请自行测试。

curl -O https://s3-us-west-1.amazonaws.com/key-networks/deb/ztncui/1/x86_64/ztncui_0.7.1_amd64.deb

sudo apt-get install ./ztncui_0.7.1_amd64.deb

sudo sh -c "echo 'HTTPS_PORT=3443' > /opt/key-networks/ztncui/.env"

sudo sh -c "echo 'NODE_ENV=production' >> /opt/key-networks/ztncui/.env"

sudo systemctl restart ztncui

展开 收起
31评论

  • 精彩
  • 最新
  • 弄了个月亮服务器,有没有用还没试过

    校验提示文案

    提交
    Moon只有在直连不行的时候才会用上。一般是P2P优先。

    校验提示文案

    提交
    Moon感觉不好用啊,我家里是移动,单位是电信,连接巨慢。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 只自建planet不用moon行不行?

    校验提示文案

    提交
    不激活moon即可,但是联不通的时候依然会从planet节点中继。

    校验提示文案

    提交
    收起所有回复
  • 这么快就有教程了,我国庆也看下一下zerotie私有化部署,打算有空搞起来的,你这教程就省事多了

    校验提示文案

    提交
    我现在已经不用zerotie穿透了,不过之前想着zerotie是开源的,是不是可以搭建自己的控制器。最终在上个月的时候找到了私有化控制器的消息,但是部署教程很少,且很乱。搞了一段时间才搞好。

    校验提示文案

    提交
    你现在用什么方案呢?

    校验提示文案

    提交
    还有8条回复
    收起所有回复
  • windows客户端怎么连的?我只是建立了一个moon.d文件夹,然后复制XXXXXX.moon文件进去。plannet没有替换,一替换就连接不上。不知道我的用法是不是正确的。

    校验提示文案

    提交
    需要替换planet文件,这个文件是用来指向你的私有控制器的

    校验提示文案

    提交
    莫名其妙的私有控制器访问不了了

    校验提示文案

    提交
    收起所有回复
  • 我又把vps重新安装了系统,又重新弄了一次,加入moon和安装ztncui控制器都没问题。就是windows替换planet文件不行,一替换就连接不上了。用zerotier-one_x64.exe -q listpeers查看没有ip地址。只有id。。。。

    校验提示文案

    提交
    在控制器重新创建一个新的网络试试

    校验提示文案

    提交
    我ztncui&Zerotier安装与设置之后服务器啥反应也没有目录里也没有程序,浏览器打不开,怎么解决?

    校验提示文案

    提交
    收起所有回复
  • 硬核,点赞

    校验提示文案

    提交
  • 好像moon.json里的ip地址直接填域名也可以

    校验提示文案

    提交
    并不可以。

    校验提示文案

    提交
    收起所有回复
  • 我觉得既然都已经魔改过了,直接支持ddns不更好?

    校验提示文案

    提交
  • zerotier也是udp打洞吗,那手机端屏蔽了udp数据就无法进行zerotier穿透了吧

    校验提示文案

    提交
  • 求助,ztncui&Zerotier安装与设置完成之后,服务器没啥反应。浏览器也打不开!

    校验提示文案

    提交
  • peer status 一开始绿色。后面打开都是红色

    校验提示文案

    提交
  • 请问下楼主这个测ping值的安卓软件是啥,多谢啦

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
159
扫一下,分享更方便,购买更轻松