前言

在有了树莓派之后想要使用树莓派提供一个文件同步服务,但是没有公网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:

1
sudo nginx -s reload

certbot生成ssl证书:

1
/usr/bin/certbot -d net.yafa.moe

生成证书之后将/etc/nginx/conf.d/net.yafa.moe.conf文件中证书ssl_certificate的部分取消注释。

验证配置文件

1
sudo nginx -t

验证无误后重载nginx:

1
sudo nginx -s reload

验证

使用浏览器打开 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