前言
在有了树莓派之后想要使用树莓派提供一个文件同步服务,但是没有公网ip,无法发布出去。
后面了解到有一个ztncui,这个就是zerotier的替代版本(只是有一个可以管理用户的界面,和zerotier的api差很多),这篇就记录一下如何安装和配置
网络架构
设计的网络架构如下图所示:

想要实现的就是从外网dns解析进来到vps的nginx,nginx vhost的upstream指向后端服务zerotier的服务地址提供服务。
安装
这里以CentOS7操作系统为例子进行安装部署
Server
服务端安装zerotier-one和ztncui:
1
2
3
| curl -s https://install.zerotier.com/ | sudo bash
sudo yum install https://download.key-networks.com/el7/ztncui/1/ztncui-release-1-1.noarch.rpm -y
sudo yum install ztncui -y
|
ztncui默认端口为:3000
默认帐号密码为:admin/admin
配置对外访问
首先在DNS上添加一条A记录:

安装nginx:
1
2
| yum install epel-release -y
yum install nginx -y
|
开机启动nginx并启动:
1
2
| systemctl enable nginx
systemctl start nginx
|
nginx 配置
创建并编辑/etc/nginx/conf.d/net.yafa.moe.conf
文件,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| server {
listen 80;
listen [::]:80;
server_name net.yafa.moe;
# enforce https
return 301 https://$server_name:443$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name net.yafa.moe;
#ssl_certificate /etc/letsencrypt/live/net.yafa.moe/fullchain.pem; # managed by Certbot
#ssl_certificate_key /etc/letsencrypt/live/net.yafa.moe/privkey.pem; # managed by Certbot
access_log off;
error_log off;
location / {
proxy_redirect off;
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
}
|
重载nginx:
用certbot生成ssl证书:
1
| /usr/bin/certbot -d net.yafa.moe
|
生成证书之后将/etc/nginx/conf.d/net.yafa.moe.conf
文件中证书ssl_certificate
的部分取消注释。
验证配置文件
验证无误后重载nginx:
验证
使用浏览器打开 https://net.yafa.moe
默认用户 admin。密码 admin
创建网络
登录ztncui创建一个网络供我们使用。

这里创建一个名叫 Yafa Xena Network
:

这里的网段设置需要注意一下尽量不要和自己常用的网段一样。
最终的网络信息:

客户端使用
这里以Gentoo的客户端为例子
安装zerotier
1
| sudo emerge -av zerotier
|
启动zerotier并加入到开机启动:
1
2
| sudo /etc/init.d/zerotier start
sudo rc-update add zerotier default
|
加入zerotier网络:
1
| sudo zerotier-cli join your_zerotier_network_id
|
在ztncui的页面上可以看到新加入的客户端:

客户端离开网络
1
| zerotier-cli leave your_zerotier_network_id
|
后记
折腾好了zerotier之后发现连接的速度有点慢,有的时候会很快。
查了资料之后发现zerotier的moon大部分都是在国外,连接会比较慢,后续有国内vps后更新一下如何使用国内的vps做moon节点。
参考连接
ZeroTier 搭建 moon 服务器
ZeroTier network controller user interface