zerotier 作为planet和moon
时间: 2025-01-24 13:47:25 浏览: 84
### Zerotier中Planet和Moon角色介绍
在ZeroTier网络架构里,Planet代表中心化的管理节点,负责处理加入请求、身份验证以及成员状态更新等操作[^1]。而Moon则是指由用户自行设立的去中心化网关设备,在某些情况下可以替代默认Planet提供服务,尤其适用于希望减少对外部依赖或提升本地控制权的企业环境之中[^2]。
#### 配置指南
对于想要设置自定义Moon服务器的情况:
- 安装并启动ZeroTier One软件包之后,需通过命令行工具`zerotier-cli`来创建新的世界(World),这一步骤会生成唯一的十六进制ID用于识别特定的世界实例。
```bash
sudo zerotier-cli orbit <WORLD_ID> <MOON_ADDRESS>
```
- 接着要编辑位于`/var/lib/zerotier-one/moons.d/`目录下的相应文件以指定该月球的具体参数,比如监听端口和服务地址等信息[^3]。
当完成上述配置后,其他客户端只需连接至所设定的Moon即可实现内部通信而不必经过公共Internet上的Planet节点。
相关问题
zerotier planet
在 ZeroTier 中,“planet”是指一个自定义的网络拓扑结构,通常用于私有部署或构建受控的虚拟网络环境。通过创建自己的 planet,用户可以完全掌控网络中的成员、路由策略以及通信规则。这对于需要高度定制化网络架构的企业、数据中心或多云互联场景非常有用。
### 自定义 Planet 的基本步骤
1. **生成 Identity**
每个节点(包括中心节点和客户端)都需要一个唯一的身份标识(identity)。可以通过以下命令生成:
```bash
zerotier-idtool generate
```
这将输出 `public` 和 `secret` 密钥对,其中 `public` 用于在网络中识别该节点[^1]。
2. **构建 Planet 文件**
Planet 是由一组节点组成的逻辑中心节点(类似于根服务器),其配置文件通常包含这些节点的公钥及其坐标(coordinates)。一个简单的 planet 文件结构如下:
```json
{
"name": "MyCustomPlanet",
"planets": [
{
"id": "8056c2eXXXXX1f3f95fd1XXXXXea7cff7",
"coordinates": {
"x": 0,
"y": 0,
"z": 0
}
}
]
}
```
其中 `id` 是中心节点的 public identity,`coordinates` 用于决定数据传输路径的优先级[^1]。
3. **编译并部署 Planet 文件**
使用 `zerotier-planettree` 工具将 JSON 文件编译为二进制格式,并将其部署到各个节点上:
```bash
zerotier-planettree -o planet.bin planet.json
```
然后将 `planet.bin` 放置在每个节点的 `/var/lib/zerotier-one/planet.d/` 目录下,并重启服务:
```bash
systemctl restart zerotier-one
```
4. **配置网络与访问控制**
在中心节点上,可以通过 ZeroTier 的管理接口(如 `zerotier-cli`)创建自定义网络并设置访问控制策略:
```bash
zerotier-cli create network <network_id>
zerotier-cli set network <network_id> name=MyPrivateNetwork
zerotier-cli set network <network_id> private=true
```
可以进一步限制成员加入权限、分配 IP 地址范围等[^1]。
5. **节点加入自定义 Planet**
客户端节点只需信任该 planet 并指定其地址即可加入:
```bash
zerotier-cli set planet <planet_id>
```
### 高级功能与注意事项
- **多 Planet 架构**:可以构建多个 planet 节点形成分布式拓扑,提升网络的冗余性和扩展性。
- **安全性**:确保所有节点使用 HTTPS 或加密通道进行通信,防止中间人攻击。
- **网络隔离**:通过 VLAN 或子网划分实现不同组之间的网络隔离。
- **自动化部署**:可结合 Ansible、Terraform 等工具实现大规模自动部署与维护。
---
docker-zerotier-moon
### 如何在 Docker 中设置和使用 ZeroTier Moon 网络
#### 创建并启动 ZeroTier Moon 容器
为了快速创建一个 ZeroTier Moon 节点,在 Docker 中可以执行如下命令,其中 `1.2.3.4` 需要被替换成实际的 IP 地址[^1]:
```bash
docker run --name zerotier-moon -d --restart always -p 9993:9993/udp -v /home/zerotier-moon:/var/lib/zerotier-one seedgou/zerotier-moon -4 1.2.3.4
```
此命令会拉取指定镜像并以后台模式运行容器,同时映射必要的 UDP 端口以及挂载数据卷用于保存配置文件。
#### 获取 Moon ID
一旦容器成功启动之后,可以通过下面这条指令来获取当前 Moon 实例的身份标识符:
```bash
$ docker logs zerotier-moon
```
上述命令将会显示日志信息,其中包括了 Moon 的唯一识别码。
#### 关于端口说明
对于构建私有的 ZeroTier Moon 来说,有几个重要的端口号需要注意:
- **9993**: 这个端口既支持 TCP 又支持 UDP 协议,主要用于 Zerotier One 和其他节点之间的通信。
- **3000 (HTTP)** 和 **3443 (HTTPS)** : 提供给 ztncui Web 控制面板使用的 HTTP(S) 访问接口。
- **3180** :提供给 Planet 下载服务,默认情况下如果不需要的话可以选择关闭该端口[^4]。
通过以上步骤就可以完成基本的 Docker + ZeroTier Moon 设置流程。如果有更复杂的需求,则可能还需要进一步调整参数或者增加额外的安全措施。
阅读全文
相关推荐















