zerotier

package module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 25, 2026 License: MIT Imports: 4 Imported by: 0

README

ZeroTier Go SDK

ZeroTier API 的 Go SDK。

安装

go get github.com/fromsko/zerotier-sdk

模块

模块 用途 地址
client 本地节点管理 localhost:9993
central 云端控制面板 api.zerotier.com

快速开始

import zerotier "github.com/fromsko/zerotier-sdk"

// 本地节点
local := zerotier.NewClient()
status, _ := local.Status()
networks, _ := local.Networks().List()

// 云端管理
cloud := zerotier.NewCentral("your_api_token")
networks, _ := cloud.Networks().List()
cloud.Networks().Members("nwid").Authorize("member_id")

Client(本地 API)

c := zerotier.NewClient()

// 节点状态
status, _ := c.Status()

// 网络
c.Networks().List()
c.Networks().Join("network_id")
c.Networks().Leave("network_id")

// Peers
c.Peers().List()

// 控制器(自托管)
c.Controller().CreateNetwork(nodeID, config)

详见 client/README.md

Central(云端 API)

c := zerotier.NewCentral("token")

// 网络
c.Networks().List()
c.Networks().Create(config)
c.Networks().Delete("network_id")

// 成员
c.Networks().Members("nwid").List()
c.Networks().Members("nwid").Authorize("member_id")

详见 central/README.md

Builder 模式

// 本地网络设置
zerotier.NewNetworkSettings().
    AllowDNS(true).
    AllowManaged(true).
    Build()

// 云端网络配置
zerotier.NewCentralNetworkConfig().
    Name("My Network").
    Private(true).
    AddRoute("10.0.0.0/24", nil).
    AddIPPool("10.0.0.1", "10.0.0.254").
    V4AssignMode(true).
    Build()

// 云端成员配置
zerotier.NewCentralMemberConfig().
    Name("my-device").
    Authorized(true).
    Build()

项目结构

zerotier-sdk/
├── zerotier.go      # 统一接口
├── client/          # 本地 Service API
├── central/         # 云端 Central API
├── mcp/             # MCP 服务集成
├── cmd/mcp/         # MCP 服务入口
└── example/         # 使用示例

MCP 集成

支持与 Claude、Cursor 等 AI 工具集成: 详见 mcp/README.md

package main

import (
	"log"
	"os"

	"github.com/fromsko/zerotier-sdk"
	ztmcp "github.com/fromsko/zerotier-sdk/mcp"
)

func main() {
	// 从环境变量获取 Central API Token
	token := os.Getenv("ZT_CENTRAL_TOKEN")
	// 云端连接
	localClientToken := os.Getenv("ZT_LOCAL_TOKEN")
	// 如果需要采用密钥形式连接
	localClient := zerotier.NewClient(
		zerotier.WithClientBaseURL("http://localhost:9993"),
		zerotier.WithClientToken(localClientToken),
	)

	var opts []ztmcp.Option
	if token != "" {
		opts = append(opts, ztmcp.WithCentralToken(token), ztmcp.WithLocalClient(localClient))
	}

	// 创建 MCP 服务
	s := ztmcp.New("zerotier", "1.0.0", opts...)

	// 启动 stdio 服务
	if err := s.ServeStdio(); err != nil {
		log.Fatalf("Server error: %v", err)
	}
}

Mcp-tool-client

License

MIT

Documentation

Overview

Package zerotier 提供 ZeroTier API 的 Go SDK

本 SDK 包含三个子模块:

  • client: 本地 Service API(localhost:9993)
  • central: 云端 Central API(api.zerotier.com / api/v1)
  • central/v2: 新版 Central API(central.zerotier.com / api/v2)
  • mcp: MCP 服务集成(stdio)

快速开始:

// 本地节点管理
local := zerotier.NewClient()
status, _ := local.Status()

// 云端管理(v1)
cloud := zerotier.NewCentral("your_api_token")
networks, _ := cloud.Networks().List()

// 云端管理(v2)
cloudV2, _ := zerotier.NewCentralV2("your_service_account_key")
resp, _ := cloudV2.ListNetworksWithResponse(context.Background(), nil)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewCentralMemberConfig

func NewCentralMemberConfig() *central.MemberConfigBuilder

NewCentralMemberConfig 创建云端成员配置构建器

func NewCentralNetworkConfig

func NewCentralNetworkConfig() *central.NetworkConfigBuilder

NewCentralNetworkConfig 创建云端网络配置构建器

func NewControllerMemberConfig

func NewControllerMemberConfig() *client.ControllerMemberBuilder

NewControllerMemberConfig 创建控制器成员配置构建器

func NewControllerNetworkConfig

func NewControllerNetworkConfig() *client.ControllerNetworkBuilder

NewControllerNetworkConfig 创建控制器网络配置构建器

func NewNetworkSettings

func NewNetworkSettings() *client.NetworkSettingsBuilder

NewNetworkSettings 创建本地网络设置构建器

Types

type APIToken added in v1.1.0

type APIToken = central.APIToken

APIToken API Token

type AssignMode

type AssignMode = central.AssignMode

AssignMode IP 分配模式

type AuthMethods added in v1.1.0

type AuthMethods = central.AuthMethods

AuthMethods 认证方式

type Central

type Central = central.Client

Central 云端 Central API 客户端

func NewCentral

func NewCentral(token string, opts ...CentralOption) Central

NewCentral 创建云端 Central API 客户端

需要提供 API Token(从 my.zerotier.com 获取)

central := zerotier.NewCentral("your_api_token")

type CentralOption

type CentralOption = central.Option

CentralOption 云端客户端配置选项

func WithCentralBaseURL

func WithCentralBaseURL(url string) CentralOption

WithCentralBaseURL 设置云端 API 地址

type CentralStatus

type CentralStatus = central.CentralStatus

CentralStatus 云端状态

type CentralV2 added in v1.1.0

type CentralV2 = centralv2.ClientWithResponses

CentralV2 Central API V2 客户端

func NewCentralV2 added in v1.1.0

func NewCentralV2(token string, opts ...CentralV2Option) (*CentralV2, error)

NewCentralV2 创建 Central API V2 客户端

token 为 Central Service Account API Key,使用 Bearer 方式认证

centralV2, _ := zerotier.NewCentralV2("your_service_account_key")

type CentralV2Option added in v1.1.0

type CentralV2Option = centralv2.ClientOption

CentralV2Option Central V2 客户端配置选项

func WithCentralV2BaseURL added in v1.1.0

func WithCentralV2BaseURL(url string) CentralV2Option

WithCentralV2BaseURL 设置 Central V2 API 地址

func WithCentralV2HTTPClient added in v1.1.0

func WithCentralV2HTTPClient(hc *http.Client) CentralV2Option

WithCentralV2HTTPClient 设置 Central V2 HTTP 客户端

type Client

type Client = client.Client

Client 本地 Service API 客户端

func NewClient

func NewClient(opts ...ClientOption) Client

NewClient 创建本地 Service API 客户端

默认连接 localhost:9993,自动读取系统 authtoken.secret

client := zerotier.NewClient()
client := zerotier.NewClient(zerotier.WithClientToken("token"))

type ClientOption

type ClientOption = client.Option

ClientOption 本地客户端配置选项

func WithClientBaseURL

func WithClientBaseURL(url string) ClientOption

WithClientBaseURL 设置本地 API 地址

func WithClientToken

func WithClientToken(token string) ClientOption

WithClientToken 设置本地认证 Token

func WithClientTokenFile

func WithClientTokenFile(path string) ClientOption

WithClientTokenFile 从文件读取本地 Token

type ControllerMember

type ControllerMember = client.ControllerMember

ControllerMember 控制器成员

type ControllerMemberConfig

type ControllerMemberConfig = client.ControllerMemberConfig

ControllerMemberConfig 控制器成员配置

type ControllerNetwork

type ControllerNetwork = client.ControllerNetwork

ControllerNetwork 控制器网络

type ControllerNetworkConfig

type ControllerNetworkConfig = client.ControllerNetworkConfig

ControllerNetworkConfig 控制器网络配置

type ControllerStatus

type ControllerStatus = client.ControllerStatus

ControllerStatus 控制器状态

type CreateNetworkConfig

type CreateNetworkConfig = central.CreateNetworkConfig

CreateNetworkConfig 创建网络配置

type DNS

type DNS = central.DNS

DNS 配置

type IPAssignmentPool

type IPAssignmentPool = central.IPAssignmentPool

IPAssignmentPool IP 分配池

type InvitationService added in v1.1.0

type InvitationService = central.InvitationService

InvitationService 邀请服务接口

type InviteStatus added in v1.1.0

type InviteStatus = central.InviteStatus

InviteStatus 邀请状态

type LocalNetwork

type LocalNetwork = client.Network

LocalNetwork 本地网络信息

type Member

type Member = central.Member

Member 网络成员

type MemberConfig

type MemberConfig = central.MemberConfig

MemberConfig 成员配置

type Network

type Network = central.Network

Network 云端网络信息

type NetworkConfig

type NetworkConfig = central.NetworkConfig

NetworkConfig 网络配置

type NetworkPermissionService added in v1.1.0

type NetworkPermissionService = central.NetworkPermissionService

NetworkPermissionService 网络权限服务接口

type NetworkSSOConfig added in v1.1.0

type NetworkSSOConfig = central.NetworkSSOConfig

NetworkSSOConfig 网络 SSO 配置

type NetworkSettings

type NetworkSettings = client.NetworkSettings

NetworkSettings 本地网络设置

type NetworkUserPermissions added in v1.1.0

type NetworkUserPermissions = central.NetworkUserPermissions

NetworkUserPermissions 网络用户权限

type NodeStatus

type NodeStatus = client.NodeStatus

NodeStatus 本地节点状态

type OrgSSOConfig added in v1.1.0

type OrgSSOConfig = central.OrgSSOConfig

OrgSSOConfig 组织 SSO 配置

type Organization added in v1.1.0

type Organization = central.Organization

Organization 组织信息

type OrganizationInvitation added in v1.1.0

type OrganizationInvitation = central.OrganizationInvitation

OrganizationInvitation 组织邀请

type OrganizationMember added in v1.1.0

type OrganizationMember = central.OrganizationMember

OrganizationMember 组织成员

type OrganizationService added in v1.1.0

type OrganizationService = central.OrganizationService

OrganizationService 组织服务接口

type Peer

type Peer = client.Peer

Peer 节点信息

type PeerPath

type PeerPath = client.PeerPath

PeerPath 节点路径

type Permissions added in v1.1.0

type Permissions = central.Permissions

Permissions 通用权限

type PermissionsMap added in v1.1.0

type PermissionsMap = central.PermissionsMap

PermissionsMap 权限映射

type RandomToken added in v1.1.0

type RandomToken = central.RandomToken

RandomToken 随机 Token

type Route

type Route = central.Route

Route 路由配置

type SsoIssuer added in v1.1.0

type SsoIssuer = central.SsoIssuer

SsoIssuer SSO Issuer 配置

type StatusUser

type StatusUser = central.StatusUser

StatusUser 状态中的用户信息

type UpdateMemberConfig added in v1.1.0

type UpdateMemberConfig = central.UpdateMemberConfig

UpdateMemberConfig 更新成员配置

type UpdateMemberRequest

type UpdateMemberRequest = central.UpdateMemberRequest

UpdateMemberRequest 更新成员请求

type User added in v1.1.0

type User = central.User

User 云端用户信息

type UserService added in v1.1.0

type UserService = central.UserService

UserService 用户服务接口

Directories

Path Synopsis
Package central 提供 ZeroTier Central API 的 Go 客户端
Package central 提供 ZeroTier Central API 的 Go 客户端
v2
Package v2 提供 ZeroTier Central API v2 的客户端与类型
Package v2 提供 ZeroTier Central API v2 的客户端与类型
Package client 提供 ZeroTier Service API(本地节点)的 Go 客户端
Package client 提供 ZeroTier Service API(本地节点)的 Go 客户端
cmd
mcp command
ZeroTier MCP 服务入口
ZeroTier MCP 服务入口
统一接口使用示例 更多示例请查看:
统一接口使用示例 更多示例请查看:
central command
云端 Central API 使用示例
云端 Central API 使用示例
client command
本地 Service API 使用示例
本地 Service API 使用示例
Package mcp 提供 ZeroTier SDK 的 MCP 服务集成
Package mcp 提供 ZeroTier SDK 的 MCP 服务集成

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL