ZeroTier API 与 DNS 深度解析:REST API 集成、自动化配置与服务发现实战

ZeroTier 的 REST API 和 DNS 功能为自动化运维提供了强大支持。本文深入剖析 API 使用、DNS 配置、服务发现与 GitOps 全自动化。

ZeroTier REST API 详解

API 基地址:https://api.zerotier.com/api/v1,需 Authorization Token。

核心 API 端点

端点 方法 描述
/network GET 列出所有网络
/network/$NWID GET 获取网络详情
/network/$NWID/member GET 列出成员
/network/$NWID/member/$MEMBER_ID POST 授权成员
/network POST 创建网络
curl -s -H "Authorization: token $ZT_TOKEN" \
  "https://api.zerotier.com/api/v1/network" \
  | jq '.[] | [.id, .config.name, .config.description]'

DNS 配置与 Split DNS

特性 Managed DNS Split DNS
配置位置 Central Advanced DNS 客户端 NRPT/GPO
支持平台 Win/macOS/Android/iOS 全平台
用例 推送内网 DNS 域名分流

ZeroNSD 部署

# 安装
wget https://github.com/zerotier/zeronsd/releases/download/v0.1.7/zeronsd_0.1.7_amd64.deb
sudo dpkg -i zeronsd_0.1.7_amd64.deb

# 启动 DNS 服务
sudo zeronsd supervise -t /var/lib/zerotier-one/token -w -d corp.example.com $NWID
sudo systemctl start zeronsd-$NWID

Terraform GitOps

provider "zerotier" {
  central_token = var.zerotier_central_token
}

resource "zerotier_network" "demo" {
  name = "demo-network"
  assignment_pool {
    start = "192.168.192.1"
    end   = "192.168.192.254"
  }
  route {
    target = "192.168.192.0/24"
    via    = "0.0.0.0/0"
  }
  dns {
    servers = ["10.0.0.10", "8.8.8.8"]
    domains = "internal.corp"
  }
}

GitHub Actions 工作流

name: ZeroTier GitOps
on: push
jobs:
  terraform:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: hashicorp/setup-terraform@v3
    - run: terraform init
    - run: terraform plan
    - run: terraform apply -auto-approve
      env:
        ZEROTIER_CENTRAL_TOKEN: ${{ secrets.ZEROTIER_CENTRAL_TOKEN }}

参考文献

(本文约 4500 汉字)