{"id":13680918,"url":"https://github.com/xubiaolin/docker-zerotier-planet","last_synced_at":"2025-04-30T02:33:29.633Z","repository":{"id":37743671,"uuid":"426297435","full_name":"xubiaolin/docker-zerotier-planet","owner":"xubiaolin","description":"一分钟私有部署zerotier-planet服务","archived":false,"fork":false,"pushed_at":"2025-03-09T14:10:26.000Z","size":3304,"stargazers_count":2911,"open_issues_count":36,"forks_count":545,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-03-09T15:19:31.670Z","etag":null,"topics":["dockerfile","planet","self-host-zerotier","self-hosted","zerotier","zerotier-network"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xubiaolin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-09T16:10:16.000Z","updated_at":"2025-03-09T14:10:29.000Z","dependencies_parsed_at":"2022-07-14T23:46:12.396Z","dependency_job_id":"dde6e57b-07ac-442d-a85a-fca00bf6b139","html_url":"https://github.com/xubiaolin/docker-zerotier-planet","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xubiaolin%2Fdocker-zerotier-planet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xubiaolin%2Fdocker-zerotier-planet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xubiaolin%2Fdocker-zerotier-planet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xubiaolin%2Fdocker-zerotier-planet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xubiaolin","download_url":"https://codeload.github.com/xubiaolin/docker-zerotier-planet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251629496,"owners_count":21618187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dockerfile","planet","self-host-zerotier","self-hosted","zerotier","zerotier-network"],"created_at":"2024-08-02T13:01:23.832Z","updated_at":"2025-04-30T02:33:29.611Z","avatar_url":"https://github.com/xubiaolin.png","language":"Shell","funding_links":[],"categories":["Shell","DevOps"],"sub_categories":[],"readme":"# 交流群\n\n**Telegram**\n- TG交流群：https://t.me/+JduuWfhSEPdlNDk1\n\n**QQ Group**\n- 1群：692635772 \n- 2群：785620313\n- 3群：316239544\n- 4群：1027678459\n\n# 功能特性\n- ✅ 支持 Linux/AMD64、Linux/ARM64 架构\n- 🐳 Docker 容器化部署\n- 📥 支持 URL 下载 planet、moon 配置\n- 🌐 可作为 Moon 或 Planet 服务器搭建\n\n# 目录\n- [0: 广告](#0-广告)\n- [1：ZeroTier 介绍](#1zerotier-介绍)\n- [2：为什么要自建PLANET 服务器](#2为什么要自建planet-服务器)\n- [3：开始安装](#3开始安装)\n  - [3.1：准备条件](#31准备条件)\n    - [3.1.1 安装git](#311-安装git)\n    - [3.1.2 安装docker](#312-安装docker)\n    - [3.1.3 启动docker](#313-启动docker)\n    - [3.1.4 配置docker加速镜像（可选，不配也可以）](#314-配置docker加速镜像可选不配也可以)\n  - [3.2：下载项目源码](#32下载项目源码)\n  - [3.3：执行安装脚本](#33执行安装脚本)\n  - [3.4 下载 `planet` 文件](#34-下载-planet-文件)\n  - [3.5 新建网络](#35-新建网络)\n    - [3.5.1 创建网络](#351-创建网络)\n    - [3.5.2 分配网络IP:](#352-分配网络ip)\n- [4.客户端配置](#4客户端配置)\n  - [4.1 Windows 配置](#41-windows-配置)\n    - [4.2 加入网络](#42-加入网络)\n  - [4.2 Linux 客户端](#42-linux-客户端)\n  - [4.3 安卓客户端配置](#43-安卓客户端配置)\n  - [4.4 MacOS 客户端配置](#44-macos-客户端配置)\n  - [4.5 OpenWRT 客户端配置](#45-openwrt-客户端配置)\n- [参考链接](#参考链接)\n- [5. 管理面板SSL配置](#5-管理面板ssl配置)\n- [6. 卸载](#6-卸载)\n- [7: Q\\\u0026A：](#7-qa)\n  - [1. 为什么我ping不通目标机器？](#1-为什么我ping不通目标机器)\n  - [2. IOS客户端怎么用？](#2-ios客户端怎么用)\n  - [3. 为什么看不到官方的Planet](#3-为什么看不到官方的planet)\n  - [4. 我更换了IP需要怎么处理？](#4-我更换了ip需要怎么处理)\n  - [5. PVE lxc 容器没有创建网卡](#5-pve-lxc-容器没有创建网卡)\n  - [6. 管理后台忘记密码怎么办：](#6-管理后台忘记密码怎么办)\n  - [7. 为什么连不上planet](#7-为什么连不上planet)\n  - [8. 如何判断是直连还是中转](#8-如何判断是直连还是中转)\n  - [9. 为什么我的zerotier传输不稳定](#9-为什么我的zerotier传输不稳定)\n  - [10.支持域名吗？](#10支持域名吗)\n  - [11. ARM服务器可以搭建吗](#11-arm服务器可以搭建吗)\n  - [12. 支持docker-compose启动部署吗](#12-支持docker-compose启动部署吗)\n- [开发计划](#开发计划)\n- [风险声明](#风险声明)\n- [类似项目](#类似项目)\n- [捐助和支持](#捐助和支持)\n- [鸣谢](#鸣谢)\n\n# 0: 广告\n**寻找便捷的解决方案？**\n\n我们提供专业的托管服务：\n- 免费试用3天\n- 年费仅需99￥\n- 高速带宽：300Mbit\n- 流量政策：\n  - 每月100G转发流量\n  - P2P连接后不计流量\n  - 超出后每10元100G\n- 优质线路：宁波电信机房\n- 联系方式：\n  - Telegram：[https://t.me/uxkram](https://t.me/uxkram)\n  - 或加入QQ群咨询群主\n\n测速图如下：\n\n\u003cimg src=\"./assets/nb-speed-test.png\" width = \"800\" height = \"\" alt=\"图片名称\" align=center /\u003e\n\n\n微信公众号：欢迎关注公众号获取最新动态和技术分享\n\n\u003cimg src=\"./assets/wx_qrcode_pub.jpg\" width = \"300\" height = \"\" alt=\"图片名称\" align=center /\u003e\n\n# 1：ZeroTier 介绍\n\n`ZeroTier` 是一款强大的 P2P VPN 工具，它能让你在互联网上搭建属于自己的虚拟局域网。通过它，你可以轻松实现远程访问家中设备的需求 - 比如在公司用手机直接访问家里的 NAS。最重要的是，设备之间是点对点直连的，无需经过中转服务器，既保证了速度，又提升了安全性。\n\n它的工作原理是这样的：通过 `ZeroTier One` 客户端，在不同设备（如笔记本、手机、服务器等）之间建立 P2P 连接，即使这些设备都在 NAT 后面也没问题。它使用了 STUN 等技术，可以穿透大多数类型的 NAT，实现设备间的直接通信。如果实在无法直连，才会通过中转服务器进行通信。\n\n简单来说，`ZeroTier` 就像是一个跨越互联网的\"虚拟交换机\"，让分布在世界各地的设备，都能像在同一个局域网内一样方便地相互访问。\n\n![zerotier](assets/zerotier-network.png)\n\n**ZeroTier 网络中的关键概念**\n\n`PLANET`（行星服务器）：ZeroTier 网络的核心根服务器，负责网络发现和初始连接。相当于整个网络的\"中枢\"。\n\n`MOON`（卫星服务器）：用户可以自建的私有根服务器。它可以作为区域性的代理节点,帮助就近的设备更快地建立连接,提升网络性能。\n\n`LEAF`（叶子节点）：所有接入 ZeroTier 网络的终端设备,如电脑、手机、服务器等。这些设备通过 PLANET 和 MOON 的协调来相互发现和通信。\n\n本教程将指导您搭建一个私有的 PLANET 服务器,让您完全掌控自己的 ZeroTier 网络。\n\n\n# 2：为什么要自建PLANET 服务器\n自建 PLANET 服务器有以下几个重要原因：\n\n1. 提升网络稳定性：官方服务器位于海外，国内用户访问延迟高且不稳定。自建服务器可以大幅提升连接质量。\n\n2. 加快连接速度：本地化的 PLANET 服务器可以更快地帮助设备建立 P2P 连接。\n\n3. 增强网络控制：自建服务器让您完全掌控网络配置，可以根据需求进行优化调整。\n\n4. 提高安全性：私有化部署意味着网络流量不经过第三方服务器，更加安全可靠。\n\n5. 降低依赖：避免因官方服务器故障或网络波动影响您的业务正常运行。\n\n\n# 3：开始安装\n## 3.1：环境准备\n在开始安装之前，请确保您的服务器满足以下条件:\n\n- 服务器要求:\n  - 拥有公网IP地址\n  - 需开放以下端口:\n    - 3443/tcp (管理面板，根据实际情况调整)\n    - 9994/tcp (ZeroTier通信，根据实际情况调整)\n    - 9994/udp (ZeroTier通信，根据实际情况调整)\n\n- 软件依赖:\n  - Docker (容器运行环境)\n  - Git (获取项目代码)\n\n- 系统要求:\n  - 推荐使用较新的Linux发行版:\n    - Debian 12\n    - Ubuntu 20.04+\n    - Rocky Linux\n    - 其他同类系统\n\n### 3.1.1 安装git\n```bash\n#debian/ubuntu等\napt update \u0026\u0026 apt install git -y \n\n#centos等\nyum update \u0026\u0026 yum install git -y \n```\n\n### 3.1.2 安装docker\n```bash\ncurl -fsSL https://get.docker.com |bash \n```\n\n如果网络问题，导致无法安装，可以使用国内镜像安装：\n请参考：[安装Docker](https://help.aliyun.com/zh/ecs/use-cases/install-and-use-docker#33f11a5f1800n)\n\n### 3.1.3 启动docker\n```bash\nservice docker start\n```\n\n### 3.1.4 配置docker加速镜像（可选，不配也可以）\n```\nsudo tee /etc/docker/daemon.json \u003c\u003cEOF\n{\n    \"registry-mirrors\": [\n        \"https://docker.mirrors.aster.edu.pl\",\n        \"https://docker.mirrors.imoyuapp.win\"\n    ]\n}\nEOF\n\nsudo systemctl daemon-reload\nsudo systemctl restart docker\n```\n  \n## 3.2：下载项目源码\n官方地址\n```\ngit clone https://github.com/xubiaolin/docker-zerotier-planet.git\n```\n\n加速地址\n```\ngit clone https://ghproxy.imoyuapp.win/https://github.com/xubiaolin/docker-zerotier-planet.git\n```\n\n## 3.3：执行安装脚本\n进入项目目录\n```\ncd docker-zerotier-planet\n```\n\n运行 `deploy.sh` 脚本\n```\n./deploy.sh\n```\n\n根据提示来选择即可，操作完成后会自动部署\n```\n欢迎使用zerotier-planet脚本，请选择需要执行的操作：\n1. 安装\n2. 卸载\n3. 更新\n4. 查看信息\n5. 退出\n请输入数字：\n```\n\n整个脚本预计需要 1-3 分钟,具体需要看网络与机型\n\n\n当您看到类似如下字样时，表示安装成功\n\n![install-finish](./assets/install_finish.png)\n\n\n## 3.4 下载 `planet` 文件\n脚本运行完成后，会在 `./data/zerotier/dist` 目录下生成 `planet` 和 `moon` 配置文件。\n\n您可以通过以下两种方式获取这些文件:\n\n1. 通过安装完成后提供的URL直接下载\n2. 使用scp或其他文件传输工具从服务器下载\n\n请妥善保存这些文件,后续配置客户端时会用到。\n\n## 3.5 新建网络\n访问 `http://ip:3443` 进入controller页面\n\n![ui](assets/ztncui.png)\n\n使用默认账号为:`admin`\n\n默认密码为:`password`\n\n### 3.5.1 创建网络\n登录后点击\"Networks\"菜单，然后点击\"Add Network\"按钮创建新网络。\n\n在创建网络页面中，输入一个便于识别的网络名称，其他选项可保持默认。点击\"Create Network\"按钮完成创建。\n\n创建成功后系统会自动生成一个网络ID，这个ID在后续客户端配置时会用到，请记录下来。\n\n![ui](assets/ztncui_create_net.png)\n\n得到网络 `id`\n\n![ui](assets/ztncui_net_id.png)\n\n### 3.5.2 分配网络IP:\n选中easy setup\n![assign_id](./assets/easy_setup.png)\n\n生成ip范围\n![ip_addr](./assets/network_addr.png)\n\n# 4.客户端配置\nZeroTier 支持多种主流操作系统的客户端，包括:\n- Windows\n- macOS \n- Linux\n- Android\n\n## 4.1 Windows 配置\n首先去zerotier官网下载一个zerotier客户端\n\n将 `planet` 文件覆盖粘贴到`C:\\ProgramData\\ZeroTier\\One`中(这个目录是个隐藏目录，需要运允许查看隐藏目录才行)\n\nWin+S 搜索 `服务`\n\n![ui](assets/service.png)\n\n找到ZeroTier One，并且重启服务\n\n![ui](assets/restart_service.png)\n\n\n### 4.2 加入网络\n使用管理员身份打开PowerShell\n\n执行如下命令，看到join ok字样就成功了\n```\nPS C:\\Windows\\system32\u003e zerotier-cli.bat join 网络id(就是在网页里面创建的那个网络)\n200 join OK\nPS C:\\Windows\\system32\u003e\n```\n\n登录管理后台可以看到有个个新的客户端，勾选`Authorized`就行\n\n![ui](assets/join_net.png)\n\nIP assignment 里面会出现zerotier的内网ip\n\n![ip](./assets/allow_devices.png)\n\n执行如下命令：\n```\nPS C:\\Windows\\system32\u003e zerotier-cli.bat peers\n200 peers\n\u003cztaddr\u003e   \u003cver\u003e  \u003crole\u003e \u003clat\u003e \u003clink\u003e \u003clastTX\u003e \u003clastRX\u003e \u003cpath\u003e\nfcbaeb9b6c 1.8.7  PLANET    52 DIRECT 16       8994     1.1.1.1/9993\nfe92971aad 1.8.7  LEAF      14 DIRECT -1       4150     2.2.2.2/9993\nPS C:\\Windows\\system32\u003e\n```\n可以看到有一个 PLANTET 和 LEAF 角色，连接方式均为 DIRECT(直连)\n\n到这里就加入网络成功了\n\n## 4.2 Linux 客户端\n步骤如下：\n\n1. 安装linux客户端软件\n2. 进入目录 `/var/lib/zerotier-one`\n3. 替换目录下的 `planet` 文件\n4. 重启 `zerotier-one` 服务(`service zerotier-one restart`)\n5. 加入网络 `zerotier-cli join` 网络 `id`\n6. 管理后台同意加入请求\n7. `zerotier-cli peers` 可以看到` planet` 角色\n\n## 4.3 安卓客户端配置\n[Zerotier 非官方安卓客户端](https://github.com/kaaass/ZerotierFix)\n\n## 4.4 MacOS 客户端配置\n步骤如下：\n\n1. 进入 `/Library/Application\\ Support/ZeroTier/One/` 目录，并替换目录下的 `planet` 文件\n2. 重启 ZeroTier-One：`cat /Library/Application\\ Support/ZeroTier/One/zerotier-one.pid | sudo xargs kill`\n3. 加入网络 `zerotier-cli join` 网络 `id`\n4. 管理后台同意加入请求\n5. `zerotier-cli peers` 可以看到` planet` 角色\n\n## 4.5 OpenWRT 客户端配置\n步骤如下：\n\n1. 安装zerotier客户端\n2. 进入目录 `/etc/config/zero/planet`\n3. 替换目录下的 `planet` 文件\n4. 在openwrt网页后台先关闭zerotier服务，在开启zerotier服务\n5. 在openwrt网页后台加入网络\n6. 管理后台同意加入请求\n7. 执行 `ln -s /etc/config/zero /var/lib/zerotier-one `\n8. `zerotier-cli peers` 可以看到` planet` 角色\n\n## 4.6 iOS 客户端配置\n方案一：\n越狱后安装ZeroTie，然后替换`planet`文件\n\n方案二：\n使用Wireguard接入到ZeroTier网络\n\n\n# 5. 管理面板SSL配置\n管理面板的SSL支持需要自行配置，参考Nginx配置如下：\n```\nupstream zerotier {\n  server 127.0.0.1:3443;\n}\n\nserver {\n\n  listen 443 ssl;\n\n  server_name {CUSTOME_DOMAIN}; #替换自己的域名\n\n  # ssl证书地址\n  ssl_certificate    pem和或者crt文件的路径;\n  ssl_certificate_key key文件的路径;\n\n  # ssl验证相关配置\n  ssl_session_timeout  5m;    #缓存有效期\n  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    #加密算法\n  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    #安全链接可选的加密协议\n  ssl_prefer_server_ciphers on;   #使用服务器端的首选算法\n\n\n  location / {\n    proxy_pass http://zerotier;\n    proxy_set_header HOST $host;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    }\n}\n\nserver {\n    listen       80;\n    server_name  {CUSTOME_DOMAIN}; #替换自己的域名\n    return 301 https://$server_name$request_uri;\n}\n```\n\n# 6. 卸载\n```bash\ndocker rm -f zerotier-planet\n```\n\n# 7: Q\u0026A：\n## 1. 为什么我ping不通目标机器？\n请检查防火墙设置，`Windows` 系统需要允许 `ICMP` 入站，`Linux` 同理\n\n## 2. IOS客户端怎么用？\niOS 客户端插件在这里，设备需要越狱： https://github.com/lemon4ex/ZeroTieriOSFix\n\n## 3. 为什么看不到官方的Planet\n该项目剔除了官方服务器，只保留了自定义的Planet节点\n\n## 4. 我更换了IP需要怎么处理？\n如果IP更换了，则需要重新部署，相当于全新部署\n\n## 5. PVE lxc 容器没有创建网卡\n需要修改lxc容器的配置，同时lxc容器需要取消勾选`无特权`\n\n\n配置文件位置在`/etc/pve/lxc/{ID}.conf`\n\n在Proxmox7.0之前的版本添加以下内容：\n```\nlxc.cgroup.devices.allow: c 10:200 rwm\nlxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file\n```\n在Proxmox7.0之后的版本添加以下内容：\n```\nlxc.cgroup2.devices.allow: c 10:200 rwm\nlxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file\n```\n\n## 6. 管理后台忘记密码怎么办：\n执行`./deploy.sh`，选择重置密码即可\n\n## 7. 为什么连不上planet\n请检查防火墙，如果是阿里云、腾讯云用户，需要在对应平台后台防火墙放行端口。linux机器上也要放行，如果安装了ufw等防火墙工具。\n\n## 8. 如何判断是直连还是中转\n管理员权限执行终端，运行`zerotier-cli peers`\n```\n\u003cztaddr\u003e   \u003cver\u003e  \u003crole\u003e \u003clat\u003e \u003clink\u003e   \u003clastTX\u003e \u003clastRX\u003e \u003cpath\u003e\n69c0d507d0 -      LEAF      -1 RELAY\n93caa675b0 1.12.2 PLANET  -894 DIRECT   4142     4068     110.42.99.46/9994\nab403e2074 1.10.2 LEAF      -1 RELAY\n```\n如果你的ztaddr是REPLAY, 就说明是中转\n\n## 9. 为什么我的zerotier传输不稳定\n由于zerotier使用的是udp协议，部分地区可能对udp进行了qos, 可以考虑使用openvpn。\n\n## 10.支持域名吗？\n暂不支持\n\n## 11. ARM服务器可以搭建吗\n可以\n\n## 12. 支持docker-compose启动部署吗\n参考docker-compose文件如下\n\n```\nversion: '3'\n\nservices:\n  myztplanet:\n    image: xubiaolin/zerotier-planet:latest\n    container_name: ztplanet\n    ports:\n      - 9994:9994\n      - 9994:9994/udp\n      - 3443:3443\n      - 3000:3000\n    environment:\n      - IP_ADDR4=[IPV4IP ADDRESS]\n      - IP_ADDR6=\n      - ZT_PORT=9994\n      - API_PORT=3443\n      - FILE_SERVER_PORT=3000\n    volumes:\n      - ./data/zerotier/dist:/app/dist\n      - ./data/zerotier/ztncui:/app/ztncui\n      - ./data/zerotier/one:/var/lib/zerotier-one\n      - ./data/zerotier/config:/app/config\n    restart: unless-stopped\n\n```\n\n# 开发计划\n🥰您的捐助可以让开发计划的速度更快🥰\n- [ ] 多planet支持\n- [x] 3443端口自定义支持\n- [ ] planet和controller分离部署\n\n\n\n# 风险声明\n\n本项目仅供学习和研究使用，不鼓励用于商业用途。我们不对任何因使用本项目而导致的任何损失负责。\n\n\n# 类似项目\n- [wireguard一键脚本](https://github.com/xubiaolin/wireguard-onekey)\n\n\n# 捐助和支持\n\n如果觉得本项目对您有帮助，欢迎通过扫描下方赞赏码捐助项目 :)\n\n\u003cimg src=\"assets/donate.png\" alt=\"donate\" width=\"400\" height=\"400\" /\u003e\n\n# 鸣谢\n感谢以下网友投喂，你们的支持和鼓励是我不懈更新的动力\n\n按时间顺序排序：\n- 随性\n- 我\n- 你好\n- Calvin\n- 小猪猪的饲养员\n- 情若犹在\n- 天天星期天\n- 啊乐\n- 夏末秋至\n- **忠\n- 岸芷汀兰\n- Kimi Chen\n- 匿名\n- 阳光报告旷课\n- 濂溪先生\n- Water\n- 匿名\n- 匿名\n- 陆\n- 精钢葫芦娃\n- 唯\n- 王小新\n- 匿名\n- Duck不必\n\n\n# 参考链接\n[ZeroTier-虚拟局域网详解](https://www.glimmer.ltd/2021/3299983056/)\n\n[五分钟自建 ZeroTier 的 Planet/Controller](https://v2ex.com/t/799623)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxubiaolin%2Fdocker-zerotier-planet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxubiaolin%2Fdocker-zerotier-planet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxubiaolin%2Fdocker-zerotier-planet/lists"}