Documentation
¶
Overview ¶
Package client 提供 ZeroTier Service API(本地节点)的 Go 客户端
Index ¶
- type AssignMode
- type Client
- type ControllerMember
- type ControllerMemberBuilder
- func (b *ControllerMemberBuilder) ActiveBridge(v bool) *ControllerMemberBuilder
- func (b *ControllerMemberBuilder) Authorized(v bool) *ControllerMemberBuilder
- func (b *ControllerMemberBuilder) Build() *ControllerMemberConfig
- func (b *ControllerMemberBuilder) IPAssignments(ips ...string) *ControllerMemberBuilder
- func (b *ControllerMemberBuilder) NoAutoAssignIPs(v bool) *ControllerMemberBuilder
- type ControllerMemberConfig
- type ControllerNetwork
- type ControllerNetworkBuilder
- func (b *ControllerNetworkBuilder) AddIPPool(start, end string) *ControllerNetworkBuilder
- func (b *ControllerNetworkBuilder) AddRoute(target string, via *string) *ControllerNetworkBuilder
- func (b *ControllerNetworkBuilder) Build() *ControllerNetworkConfig
- func (b *ControllerNetworkBuilder) EnableBroadcast(v bool) *ControllerNetworkBuilder
- func (b *ControllerNetworkBuilder) MulticastLimit(limit int) *ControllerNetworkBuilder
- func (b *ControllerNetworkBuilder) Name(name string) *ControllerNetworkBuilder
- func (b *ControllerNetworkBuilder) Private(v bool) *ControllerNetworkBuilder
- func (b *ControllerNetworkBuilder) V4AssignMode(zt bool) *ControllerNetworkBuilder
- func (b *ControllerNetworkBuilder) V6AssignMode(zt bool) *ControllerNetworkBuilder
- type ControllerNetworkConfig
- type ControllerService
- type ControllerStatus
- type DNS
- type IPAssignmentPool
- type Network
- type NetworkService
- type NetworkSettings
- type NetworkSettingsBuilder
- func (b *NetworkSettingsBuilder) AllowDNS(v bool) *NetworkSettingsBuilder
- func (b *NetworkSettingsBuilder) AllowDefault(v bool) *NetworkSettingsBuilder
- func (b *NetworkSettingsBuilder) AllowGlobal(v bool) *NetworkSettingsBuilder
- func (b *NetworkSettingsBuilder) AllowManaged(v bool) *NetworkSettingsBuilder
- func (b *NetworkSettingsBuilder) Build() *NetworkSettings
- type NodeStatus
- type Option
- type Peer
- type PeerPath
- type PeerService
- type Route
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
// Status 获取节点状态
Status(ctx context.Context) (*NodeStatus, error)
// Networks 网络管理
Networks() NetworkService
// Peers 节点管理
Peers() PeerService
// Controller 控制器管理(自托管时可用)
Controller() ControllerService
}
Client ZeroTier Service API 客户端接口
type ControllerMember ¶
type ControllerMember struct {
ID string `json:"id"`
Address string `json:"address"`
NetworkID string `json:"networkId"`
Authorized bool `json:"authorized"`
ActiveBridge bool `json:"activeBridge"`
IPAssignments []string `json:"ipAssignments"`
NoAutoAssignIPs bool `json:"noAutoAssignIps"`
Revision int `json:"revision"`
CreationTime int64 `json:"creationTime"`
LastAuthorizedTime int64 `json:"lastAuthorizedTime"`
}
ControllerMember 控制器成员
type ControllerMemberBuilder ¶
type ControllerMemberBuilder struct {
// contains filtered or unexported fields
}
ControllerMemberBuilder 成员配置构建器
func NewControllerMemberConfig ¶
func NewControllerMemberConfig() *ControllerMemberBuilder
NewControllerMemberConfig 创建成员配置构建器
func (*ControllerMemberBuilder) ActiveBridge ¶
func (b *ControllerMemberBuilder) ActiveBridge(v bool) *ControllerMemberBuilder
ActiveBridge 设置是否为活动桥接
func (*ControllerMemberBuilder) Authorized ¶
func (b *ControllerMemberBuilder) Authorized(v bool) *ControllerMemberBuilder
Authorized 设置是否授权
func (*ControllerMemberBuilder) Build ¶
func (b *ControllerMemberBuilder) Build() *ControllerMemberConfig
Build 构建配置
func (*ControllerMemberBuilder) IPAssignments ¶
func (b *ControllerMemberBuilder) IPAssignments(ips ...string) *ControllerMemberBuilder
IPAssignments 设置 IP 分配
func (*ControllerMemberBuilder) NoAutoAssignIPs ¶
func (b *ControllerMemberBuilder) NoAutoAssignIPs(v bool) *ControllerMemberBuilder
NoAutoAssignIPs 设置是否禁用自动 IP 分配
type ControllerMemberConfig ¶
type ControllerMemberConfig struct {
Authorized *bool `json:"authorized,omitempty"`
ActiveBridge *bool `json:"activeBridge,omitempty"`
IPAssignments []string `json:"ipAssignments,omitempty"`
NoAutoAssignIPs *bool `json:"noAutoAssignIps,omitempty"`
}
ControllerMemberConfig 成员配置
type ControllerNetwork ¶
type ControllerNetwork struct {
ID string `json:"id"`
Name string `json:"name"`
Private bool `json:"private"`
CreationTime int64 `json:"creationTime"`
Revision int `json:"revision"`
MulticastLimit int `json:"multicastLimit"`
EnableBroadcast bool `json:"enableBroadcast"`
Routes []Route `json:"routes"`
IPAssignmentPools []IPAssignmentPool `json:"ipAssignmentPools"`
V4AssignMode *AssignMode `json:"v4AssignMode,omitempty"`
V6AssignMode *AssignMode `json:"v6AssignMode,omitempty"`
}
ControllerNetwork 控制器网络配置
type ControllerNetworkBuilder ¶
type ControllerNetworkBuilder struct {
// contains filtered or unexported fields
}
ControllerNetworkBuilder 控制器网络配置构建器
func NewControllerNetworkConfig ¶
func NewControllerNetworkConfig() *ControllerNetworkBuilder
NewControllerNetworkConfig 创建网络配置构建器
func (*ControllerNetworkBuilder) AddIPPool ¶
func (b *ControllerNetworkBuilder) AddIPPool(start, end string) *ControllerNetworkBuilder
AddIPPool 添加 IP 分配池
func (*ControllerNetworkBuilder) AddRoute ¶
func (b *ControllerNetworkBuilder) AddRoute(target string, via *string) *ControllerNetworkBuilder
AddRoute 添加路由
func (*ControllerNetworkBuilder) Build ¶
func (b *ControllerNetworkBuilder) Build() *ControllerNetworkConfig
Build 构建配置
func (*ControllerNetworkBuilder) EnableBroadcast ¶
func (b *ControllerNetworkBuilder) EnableBroadcast(v bool) *ControllerNetworkBuilder
EnableBroadcast 设置是否启用广播
func (*ControllerNetworkBuilder) MulticastLimit ¶
func (b *ControllerNetworkBuilder) MulticastLimit(limit int) *ControllerNetworkBuilder
MulticastLimit 设置多播限制
func (*ControllerNetworkBuilder) Name ¶
func (b *ControllerNetworkBuilder) Name(name string) *ControllerNetworkBuilder
Name 设置网络名称
func (*ControllerNetworkBuilder) Private ¶
func (b *ControllerNetworkBuilder) Private(v bool) *ControllerNetworkBuilder
Private 设置是否私有网络
func (*ControllerNetworkBuilder) V4AssignMode ¶
func (b *ControllerNetworkBuilder) V4AssignMode(zt bool) *ControllerNetworkBuilder
V4AssignMode 设置 IPv4 分配模式
func (*ControllerNetworkBuilder) V6AssignMode ¶
func (b *ControllerNetworkBuilder) V6AssignMode(zt bool) *ControllerNetworkBuilder
V6AssignMode 设置 IPv6 分配模式
type ControllerNetworkConfig ¶
type ControllerNetworkConfig struct {
Name string `json:"name,omitempty"`
Private *bool `json:"private,omitempty"`
EnableBroadcast *bool `json:"enableBroadcast,omitempty"`
MulticastLimit *int `json:"multicastLimit,omitempty"`
Routes []Route `json:"routes,omitempty"`
IPAssignmentPools []IPAssignmentPool `json:"ipAssignmentPools,omitempty"`
V4AssignMode *AssignMode `json:"v4AssignMode,omitempty"`
V6AssignMode *AssignMode `json:"v6AssignMode,omitempty"`
}
ControllerNetworkConfig 创建/更新网络的配置
type ControllerService ¶
type ControllerService interface {
// Status 获取控制器状态
Status(ctx context.Context) (*ControllerStatus, error)
// ListNetworks 列出控制器管理的所有网络
ListNetworks(ctx context.Context) ([]string, error)
// GetNetwork 获取网络配置
GetNetwork(ctx context.Context, networkID string) (*ControllerNetwork, error)
// CreateNetwork 创建新网络
CreateNetwork(ctx context.Context, nodeID string, config *ControllerNetworkConfig) (*ControllerNetwork, error)
// UpdateNetwork 更新网络配置
UpdateNetwork(ctx context.Context, networkID string, config *ControllerNetworkConfig) (*ControllerNetwork, error)
// DeleteNetwork 删除网络
DeleteNetwork(ctx context.Context, networkID string) error
// ListMembers 列出网络成员
ListMembers(ctx context.Context, networkID string) ([]string, error)
// GetMember 获取成员信息
GetMember(ctx context.Context, networkID, memberID string) (*ControllerMember, error)
// UpdateMember 更新成员配置
UpdateMember(ctx context.Context, networkID, memberID string, config *ControllerMemberConfig) (*ControllerMember, error)
// DeleteMember 删除成员
DeleteMember(ctx context.Context, networkID, memberID string) error
}
ControllerService 控制器管理服务接口(自托管时可用)
type ControllerStatus ¶
type ControllerStatus struct {
Controller bool `json:"controller"`
APIVersion int `json:"apiVersion"`
Clock int64 `json:"clock"`
}
ControllerStatus 控制器状态
type IPAssignmentPool ¶
type IPAssignmentPool struct {
IPRangeStart string `json:"ipRangeStart"`
IPRangeEnd string `json:"ipRangeEnd"`
}
IPAssignmentPool IP 分配池
type Network ¶
type Network struct {
ID string `json:"id"`
Name string `json:"name"`
Status string `json:"status"`
Type string `json:"type"`
MAC string `json:"mac"`
MTU int `json:"mtu"`
Bridge bool `json:"bridge"`
BroadcastEnabled bool `json:"broadcastEnabled"`
PortDeviceName string `json:"portDeviceName"`
NetconfRevision int `json:"netconfRevision"`
AssignedAddresses []string `json:"assignedAddresses"`
AllowDNS bool `json:"allowDNS"`
AllowDefault bool `json:"allowDefault"`
AllowGlobal bool `json:"allowGlobal"`
AllowManaged bool `json:"allowManaged"`
DNS *DNS `json:"dns,omitempty"`
}
Network 本地网络信息
type NetworkService ¶
type NetworkService interface {
// List 列出所有已加入的网络
List(ctx context.Context) ([]Network, error)
// Get 获取指定网络详情
Get(ctx context.Context, networkID string) (*Network, error)
// Join 加入网络
Join(ctx context.Context, networkID string) (*Network, error)
// Leave 离开网络
Leave(ctx context.Context, networkID string) error
// Update 更新网络设置
Update(ctx context.Context, networkID string, settings *NetworkSettings) (*Network, error)
}
NetworkService 网络管理服务接口
type NetworkSettings ¶
type NetworkSettings struct {
AllowDNS *bool `json:"allowDNS,omitempty"`
AllowDefault *bool `json:"allowDefault,omitempty"`
AllowGlobal *bool `json:"allowGlobal,omitempty"`
AllowManaged *bool `json:"allowManaged,omitempty"`
}
NetworkSettings 网络设置(用于更新)
type NetworkSettingsBuilder ¶
type NetworkSettingsBuilder struct {
// contains filtered or unexported fields
}
NetworkSettingsBuilder 网络设置构建器
func NewNetworkSettings ¶
func NewNetworkSettings() *NetworkSettingsBuilder
NewNetworkSettings 创建网络设置构建器
func (*NetworkSettingsBuilder) AllowDNS ¶
func (b *NetworkSettingsBuilder) AllowDNS(v bool) *NetworkSettingsBuilder
AllowDNS 设置是否允许 DNS
func (*NetworkSettingsBuilder) AllowDefault ¶
func (b *NetworkSettingsBuilder) AllowDefault(v bool) *NetworkSettingsBuilder
AllowDefault 设置是否允许默认路由
func (*NetworkSettingsBuilder) AllowGlobal ¶
func (b *NetworkSettingsBuilder) AllowGlobal(v bool) *NetworkSettingsBuilder
AllowGlobal 设置是否允许全局路由
func (*NetworkSettingsBuilder) AllowManaged ¶
func (b *NetworkSettingsBuilder) AllowManaged(v bool) *NetworkSettingsBuilder
AllowManaged 设置是否允许托管路由
func (*NetworkSettingsBuilder) Build ¶
func (b *NetworkSettingsBuilder) Build() *NetworkSettings
Build 构建设置
type NodeStatus ¶
type NodeStatus struct {
Address string `json:"address"`
Clock int64 `json:"clock"`
Online bool `json:"online"`
PlanetWorldID int64 `json:"planetWorldId"`
PublicIdentity string `json:"publicIdentity"`
TCPFallbackActive bool `json:"tcpFallbackActive"`
Version string `json:"version"`
}
NodeStatus 节点状态
type Peer ¶
type Peer struct {
Address string `json:"address"`
Version string `json:"version"`
Role string `json:"role"`
Latency int `json:"latency"`
Paths []PeerPath `json:"paths"`
}
Peer 节点信息
type PeerPath ¶
type PeerPath struct {
Active bool `json:"active"`
Address string `json:"address"`
Expired bool `json:"expired"`
LastReceive int64 `json:"lastReceive"`
LastSend int64 `json:"lastSend"`
Preferred bool `json:"preferred"`
TrustedPathID int64 `json:"trustedPathId"`
}
PeerPath 节点路径