ZeroTier的私有DNS服务器ZeroNSD搭建引导
翻译来源
翻译的时间为2021-9-9,其中部分内容有删改,只提取了主观认为有用的信息,仅供参考
安装步骤
注意事项
- 这个功能目前还在Beta测试当中
- 这个功能将会内嵌在未来将出现的
ZeroTier 2.0
当中,不过目前它是一个独立的软件 - 接下来的步骤将会有一定困难
概念须知
- 当
ZeroTier
加入了一个网络后,它将会创建一个虚拟网口 - 当
ZeroTier
加入了多个网络后,也会有多个虚拟网口 - 当
ZeroNSD
启动了之后,它将绑定在某一个特定的网口上 - 如果你需要对多个网络都使用
ZeroNSD
,那你也需要创建多个ZeroNSD
服务绑定在它对应的网口上
安装环境
该教程使用了两台不同的机器,一台是在云上的Ubuntu虚拟机,另外一台为Windows笔记本,如果要跟着来完成这个快速上手,最好使用相同的平台,如果使用了不同的平台,你最好要有能力弄清楚自己要做什么。
搭建教程
ZeroTier 网络创建
按正常流程创建、链接并授权一个以在ZeroTier官网创建的
network
在自己的帐号的
Account
页面下创见一个新的API Token
,ZeroNSD
将会利用这个token
来获取对应网络下设备的不同名字,来达到自动分配dns的效果。创建一个文件来让
ZeroNSD
能够以文件的方式读取token
,参考指令如下 需要修改token为自己的token:1
2
3sudo bash -c "echo ZEROTIER_CENTRAL_TOKEN > /var/lib/zerotier-one/token"
sudo chown zerotier-one:zerotier-one /var/lib/zerotier-one/token
sudo chmod 600 /var/lib/zerotier-one/token安装
ZeroTier
的进程管理应用zerotier-systemd-manager
的rpm
和deb
安装包发布在这个网站:https://github.com/zerotier/zerotier-systemd-manager/releases,请自行替换下面指令为最新的安装包。1
2wget https://github.com/zerotier/zerotier-systemd-manager/releases/download/v0.2.1/zerotier-systemd-manager_0.2.1_linux_amd64.deb
sudo dpkg -i zerotier-systemd-manager_0.2.1_linux_amd64.deb重启所有的ZeroTier服务
1
2
3
4sudo systemctl daemon-reload
sudo systemctl restart zerotier-one
sudo systemctl enable zerotier-systemd-manager.timer
sudo systemctl start zerotier-systemd-manager.timer
安装ZeroNSD
ZeroNSD针对每一个网络需要都创建一个独立的服务,对DNS来说延迟是很敏感的,所以最好让客户端和服务端尽可能接近
安装
ZeroNSD
,它的安装包发布在这里,请自行替换下面指令为最新的安装包。1
2wget https://github.com/zerotier/zeronsd/releases/download/v0.1.7/zeronsd_0.1.7_amd64.deb
sudo dpkg -i zeronsd_0.1.7_amd64.deb如果默认发布的地方没有对应平台的安装包,可以通过Cargo自行编译安装
1
2>sudo /usr/bin/apt-get -y install net-tools librust-openssl-dev pkg-config cargo
>sudo /usr/bin/cargo install zeronsd --root /usr/local对于你希望启用DNS服务的网络,执行类似以下的命令:
/var/lib/zerotier-one/token
为token文件所在路径 (在上文设置token中有提及)beyond.corp
为你希望的域名后缀af78bf94364e2035
为你自己的网络ID1
2
3sudo zeronsd supervise -t /var/lib/zerotier-one/token -w -d beyond.corp af78bf94364e2035
sudo systemctl start zeronsd-af78bf94364e2035
sudo systemctl enable zeronsd-af78bf94364e2035
检查可用性
网络需求
- 服务器需要开放53端口,让客户端可以请求到DNS
- 客户端需要启用
Allow DNS
的选项(安卓等平台默认启用,可以无视)
连通性检查
假设笔记本的设备名为laptop
,那么此时就可以通过设备名和dns后缀ping
通设备了(不考虑防火墙)
1 |
|
指令更新
如果后续需要更新配置(比如TLD),使用类似如下指令即可。(记得修改为自己设置的ID等参数):
1 |
|
额外说明
ZeroNSD
还可以添加本地的hosts
作为私有的DNS服务,不过由于该部分内容并不复杂,且属于进阶内容,故不做教程,此贴仅作入门参考使用的快速手册。