云计算百科
云计算领域专业知识百科平台

【Docker+Zerotier】手把手教你搭建私有PLANET服务器,实现高效内网穿透

1. 为什么需要自建Zerotier PLANET服务器?

如果你曾经使用过Zerotier进行内网穿透,可能会遇到连接速度慢、延迟高的问题。这主要是因为Zerotier官方的PLANET服务器(根服务器)都部署在海外,国内用户连接时需要通过国际线路,导致网络质量不稳定。自建PLANET服务器可以完美解决这个问题,让你的所有设备都在国内网络环境下直连,大幅提升连接速度和稳定性。

自建PLANET服务器还有几个不可忽视的优势:

  • 完全掌控网络配置:你可以根据实际需求调整网络参数,不再受限于官方服务器的限制
  • 解除25个设备连接数的限制:官方免费版最多只能连接25个设备,自建服务器可以突破这个限制
  • 更高的安全性:所有网络流量都在你自己的服务器上中转,不会经过第三方服务器
  • 更低的延迟:国内服务器之间的连接延迟通常在50ms以内,比连接海外服务器快得多

2. 环境准备与依赖安装

2.1 服务器要求

在开始之前,你需要准备一台满足以下条件的服务器:

  • 拥有公网IP地址(国内云服务器即可)
  • 操作系统推荐使用较新的Linux发行版(如Ubuntu 20.04+、Debian 11+)
  • 最低配置要求:1核CPU、1GB内存(实测足够运行)
  • 开放以下端口:
    • TCP 3443(管理面板)
    • TCP/UDP 9993(Zerotier通信)

提示:如果你使用的是阿里云、腾讯云等云服务商,记得在安全组规则中放行上述端口。

2.2 安装必要依赖

首先更新系统并安装必要的软件包:

# 更新软件包列表
sudo apt update && sudo apt upgrade -y

# 安装Git
sudo apt install git -y

# 安装Docker
curl -fsSL https://get.docker.com | sudo bash

# 启动Docker并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

如果你的服务器在国内,建议配置Docker镜像加速:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3. 部署Zerotier PLANET服务器

3.1 获取部署脚本

我们使用社区维护的docker-zerotier-planet项目来简化部署过程:

git clone https://github.com/xubiaolin/docker-zerotier-planet.git
cd docker-zerotier-planet

如果GitHub连接不稳定,可以使用国内镜像:

git clone https://ghproxy.com/https://github.com/xubiaolin/docker-zerotier-planet.git

3.2 运行部署脚本

执行部署脚本并按照提示操作:

./deploy.sh

脚本会显示如下菜单:

欢迎使用zerotier-planet脚本,请选择需要执行的操作:
1. 安装
2. 卸载
3. 更新
4. 查看信息
5. 退出
请输入数字:

输入1选择安装,然后按照提示保持默认端口配置(直接回车)。整个安装过程大约需要3-10分钟,具体时间取决于你的网络速度和服务器性能。

3.3 持久化数据配置

默认情况下,Docker容器的数据不会持久化,重启后配置会丢失。我们需要删除自动创建的容器,改用数据卷方式重新启动:

# 停止并删除现有容器
docker rm -f -v zerotier-planet

# 创建数据卷
docker volume create zerotier-app
docker volume create zerotier-one

# 重新启动容器
docker run -d \\
-v zerotier-app:/app \\
-v zerotier-one:/var/lib/zerotier-one \\
-p 9993:9993 \\
-p 9993:9993/udp \\
-p 127.0.0.1:3443:3443 \\
–name zerotier-planet \\
–restart unless-stopped \\
zerotier-planet

4. 配置管理面板

4.1 访问管理界面

在浏览器中访问http://你的服务器IP:3443,使用默认凭据登录:

  • 用户名:admin
  • 密码:password

首次登录后会强制要求修改密码,建议设置一个强密码并妥善保存。

4.2 创建虚拟网络

  • 点击导航栏的"Networks",然后点击"Add Network"按钮
  • 输入一个易于识别的网络名称(如"MyPrivateNetwork")
  • 点击"Create Network"完成创建
  • 创建成功后,系统会生成一个16位的网络ID(如a1b2c3d4e5f6g7h8),记下这个ID,后续客户端配置会用到。

    4.3 配置IP地址池

  • 在新建的网络详情页面,点击"IPv4 Assign Mode"
  • 选择"Auto-assign from IP Assignment Pool"
  • 在"Easy Setup"区域,输入一个私有IP段(如192.168.192.0/24)
  • 点击"Submit"保存配置
  • 这样新加入的设备会自动从这个IP池中获取地址。

    5. 客户端配置

    5.1 获取planet文件

    部署完成后,planet文件会生成在/tmp/planet路径。你需要将这个文件下载到本地,用于配置各个客户端:

    # 如果找不到文件,可以运行以下命令重新生成
    ./deploy.sh
    # 选择3(复制planet文件到当前目录)

    5.2 Windows客户端配置

  • 从官网下载并安装Zerotier客户端
  • 替换planet文件:
    • 打开C:\\ProgramData\\ZeroTier\\One目录(需要显示隐藏文件)
    • 将下载的planet文件覆盖到此目录
  • 重启Zerotier服务:
    • 按Win+R,输入services.msc回车
    • 找到"ZeroTier One"服务,右键选择"重启"
  • 加入网络:
    • 以管理员身份打开PowerShell
    • 执行:zerotier-cli.bat join 你的网络ID
  • 返回管理面板,授权新设备加入
  • 5.3 Linux客户端配置

  • 安装Zerotier客户端:
  • curl -s https://install.zerotier.com | sudo bash

  • 替换planet文件:
  • sudo cp /path/to/your/planet /var/lib/zerotier-one/planet
    sudo systemctl restart zerotier-one

  • 加入网络:
  • sudo zerotier-cli join 你的网络ID

  • 在管理面板授权设备
  • 5.4 安卓客户端配置

  • 安装修改版客户端(支持自定义planet):
    • 下载地址:https://github.com/kaaass/ZerotierFix/releases
  • 将planet文件放入手机存储的/Android/data/com.zerotier.one/files目录
  • 启动应用,加入你的网络ID
  • 在管理面板授权设备
  • 6. 高级配置与优化

    6.1 配置SSL证书(可选)

    为了安全访问管理面板,建议配置HTTPS:

    # 安装Nginx
    sudo apt install nginx -y

    # 申请Let's Encrypt证书(需要域名)
    sudo apt install certbot python3-certbot-nginx -y
    sudo certbot –nginx -d yourdomain.com

    然后配置Nginx反向代理:

    server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
    }

    server {
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    location / {
    proxy_pass http://127.0.0.1:3443;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    }
    }

    6.2 网络性能优化

    在管理面板的"Network"设置中,可以调整以下参数优化性能:

    • Multicast Limit:设置为50(减少广播流量)
    • Enable Broadcast:根据需求开启/关闭
    • MTU:建议设置为1400(适应大多数网络环境)

    6.3 定期备份配置

    为了防止数据丢失,建议定期备份以下目录:

    • /var/lib/docker/volumes/zerotier-app
    • /var/lib/docker/volumes/zerotier-one

    可以使用以下命令创建备份:

    tar -czvf zerotier-backup-$(date +%Y%m%d).tar.gz \\
    /var/lib/docker/volumes/zerotier-app \\
    /var/lib/docker/volumes/zerotier-one

    7. 常见问题解决

    7.1 客户端无法连接

    • 检查防火墙:确保服务器9993端口TCP/UDP都已开放
    • 检查路由:zerotier-cli peers应该显示PLANET角色
    • 重新生成planet:有时需要重新部署容器并更新客户端planet文件

    7.2 管理面板无法访问

    • 检查容器是否运行:docker ps
    • 查看容器日志:docker logs zerotier-planet
    • 确保3443端口未被占用

    7.3 网络速度慢

    • 检查客户端到服务器的网络质量
    • 尝试更换服务器地域(选择离你最近的机房)
    • 调整MTU值(管理面板或客户端配置)

    我在实际使用中发现,自建PLANET服务器后,跨省设备间的延迟从原来的200ms+降低到了50ms以内,文件传输速度也提升了3-5倍。特别是对于需要频繁访问内网资源的用户,这种改进体验非常明显。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【Docker+Zerotier】手把手教你搭建私有PLANET服务器,实现高效内网穿透
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!