Versions in this module Expand all Collapse all v0 v0.3.0 Aug 3, 2026 Changes in this version + const DefaultTunnelControlListenAddr + func NewControlHandler(server *Server, opts ControlHandlerOptions) http.Handler + type ControlHandlerOptions struct + Auth *controlapi.Authenticator + ConfigPath string + Logger *slog.Logger type ServerConfig + ControlListenAddr string v0.2.0-rc.6 Jul 27, 2026 v0.2.0-rc.5 Jul 23, 2026 v0.2.0-rc.4 Jul 20, 2026 v0.2.0-rc.3 Jul 16, 2026 v0.2.0-rc.2 Jul 15, 2026 v0.2.0-rc.1 Jul 14, 2026 v0.1.1 Jul 5, 2026 v0.1.0 Jul 5, 2026 Changes in this version + const DefaultDialTimeout + const DefaultOpenTimeout + const DefaultReconnectMax + const DefaultReconnectMin + const DefaultServerListenAddr + const DefaultTunnelAdminListenAddr + const MessageAccept + const MessageClose + const MessageData + const MessageError + const MessageHello + const MessageOpen + const MessagePing + const MessagePong + const MessageUDP + const ProtocolVersion + func NewAdminHandler(server *Server, opts AdminHandlerOptions) http.Handler + type AdminHandlerOptions struct + Auth *controlapi.Authenticator + ConfigPath string + Logger *slog.Logger + type AllowConfig struct + MaxTunnels int + Protocols []string + RemotePorts []int + type Client struct + func NewClient(cfg ClientConfig, logger *slog.Logger) *Client + func (client *Client) Run(ctx context.Context) error + type ClientConfig struct + Log config.LogConfig + TunnelClient TunnelClientConfig + Version int + func LoadClientConfig(path string) (ClientConfig, error) + type ClientSnapshot struct + ClientID string + ConnectedTime int64 + RemoteAddr string + SessionID string + TunnelCount int + type ConfigCheckItem struct + Field string + Level string + Message string + type ConfigCheckResult struct + ErrorCount int + Items []ConfigCheckItem + OK bool + WarningCount int + type Message struct + ClientID string + ConnID string + Error string + OK bool + SessionID string + Time int64 + Token string + TunnelID string + Tunnels []TunnelSpec + Type string + Version int + type ReloadResult struct + Check ConfigCheckResult + ClientCount int + DisconnectedClients []string + OK bool + type Server struct + func NewServer(cfg ServerConfig, logger *slog.Logger) *Server + func (server *Server) Clients() []ClientSnapshot + func (server *Server) Collector() *engine.Collector + func (server *Server) Config() ServerConfig + func (server *Server) PrecheckConfig(next ServerConfig) ConfigCheckResult + func (server *Server) ReloadConfig(next ServerConfig) (ReloadResult, error) + func (server *Server) Run(ctx context.Context) error + func (server *Server) RunningClients() int + func (server *Server) RunningTunnels() int + func (server *Server) Stats() []engine.TrafficSnapshot + func (server *Server) Tunnels() []TunnelSnapshot + type ServerClientACL struct + Allow AllowConfig + ClientID string + Token string + type ServerConfig struct + AdminListenAddr string + Auth config.AuthConfig + Log config.LogConfig + TunnelServer TunnelServerConfig + Version int + func LoadServerConfig(path string) (ServerConfig, error) + type TLSConfig struct + CertFile string + Enabled bool + InsecureSkipVerify bool + KeyFile string + ServerName string + type TunnelClientConfig struct + ClientID string + DialTimeout string + Enabled bool + ReconnectMax string + ReconnectMin string + ServerAddr string + TLS TLSConfig + Token string + Tunnels []TunnelSpec + type TunnelServerConfig struct + Clients []ServerClientACL + Enabled bool + ListenAddr string + OpenTimeout string + TLS TLSConfig + type TunnelSnapshot struct + ActiveConns int64 + ClientID string + LocalAddr string + LocalPort int + MaxConn int + Protocol string + Remark string + RemoteListenAddr string + RemoteListenPort int + TunnelID string + type TunnelSpec struct + LocalAddr string + LocalPort int + MaxConn int + Protocol string + Remark string + RemoteListenAddr string + RemoteListenPort int + SpeedLimit int64 + TunnelID string