chserver

package
v0.0.0-...-3835ea7 Latest Latest
Warning

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

Go to latest
Published: Dec 4, 2022 License: MIT Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	KeySeed string
	// 一个可选的user.json路径。这个文件是一个对象,如下定义:{"<user:pass>": ["<addr-regex>","<addr-regex>"]}
	// 当使用<user>连接时,<pass>将被验证,然后每个远程地址将与列表进行正则匹配
	// 普通远程地址形式:<remote-host>:<remote-port>
	// 用于反向端口转发远程地址形式:R:<local-interface>:<local-port>
	AuthFile string
	// 形式为:<user:pass>,可选。
	// 等价于authfile {"<user:pass>": [""]},如果未设置,则将使用AUTH环境变量
	Auth string
	// 代理
	Proxy string
	// 是否允许客户端访问内部的SOCKS5代理
	Socks5 bool
	// 反向端口转发,是否允许客户端指定反向端口转发
	Reverse bool
	// 可选的保活间隔。 由于底层传输是HTTP,在许多情况下我们将遍历代理,这些代理通常会关闭空闲连接。
	// 您必须使用单位指定时间,例如“5s”或“2m”。 默认为“25s”(设置为 0s 以禁用)。
	KeepAlive time.Duration
	// 传输层安全协议的设置
	TLS       TLSConfig
	OnConnect func(localPort, remotePort string, tun *tunnel.Tunnel)
	OnClose   func(localPort string)
	// 使用隧道转发请求时创建连接的回调
	OnForwardingConnect func(localPort string, logger *cio.Logger)
	// 使用隧道转发请求时结束连接的回调
	OnForwardingClose func(localPort string, logger *cio.Logger)
}

Config server配置

type Server

type Server struct {
	*cio.Logger
	// contains filtered or unexported fields
}

func NewServer

func NewServer(c *Config) (*Server, error)

NewServer 创建 chisel server

func (*Server) Close

func (s *Server) Close() error

Close 强制关闭HTTP服务器

func (*Server) DeleteUser

func (s *Server) DeleteUser(user string)

DeleteUser removes a user from the server user index

func (*Server) GetFingerprint

func (s *Server) GetFingerprint() string

GetFingerprint 获取访问服务器的指纹

func (*Server) ResetUsers

func (s *Server) ResetUsers(users []*settings.User)

ResetUsers in the server user index. Use nil to remove all.

func (*Server) Run

func (s *Server) Run(host, port string) error

Run 运行服务,内部调用 Start 和 Wait.

func (*Server) Start

func (s *Server) Start(host, port string) error

Start 启动http服务器,不提供取消上下文

func (*Server) StartContext

func (s *Server) StartContext(ctx context.Context, host, port string) error

StartContext 启动http服务器,可以通过取消提供的上下文来关闭

func (*Server) Wait

func (s *Server) Wait() error

Wait 等待http server关闭

type TLSConfig

type TLSConfig struct {
	// 启用TLS,并提供pem编码的TLS私钥的可选路径。
	// 设置此标志时,还必须设置——tls-cert,并且不能设置tls-domain
	Key string
	// 启用TLS,并为pem编码的TLS证书提供可选路径。
	// 设置此标志时,还必须设置tls-key,并且不能设置tls-domain
	Cert string
	// 启用TLS,并使用LetsEncypt自动获取TLS密钥和证书。需要指定端口443。
	// 你可以指定多个tls-domain标志来服务多个域。
	// 生成的文件缓存在$HOME/.cache/chisel目录中。
	// 可以通过设置CHISEL_LE_CACHE环境变量来修改该路径,
	// 或者通过将这个变量设置为"-"来禁用缓存。通过设置CHISEL_LE_EMAIL,您可以选择提供证书通知电子邮件
	Domains []string
	// 一个PEM编码的CA证书包的路径,或者一个存放多个PEM编码CA证书包文件的目录,用于验证客户端连接。
	// 提供的CA证书将代替系统根证书。这通常用于实现mutual-TLS
	CA string
}

TLSConfig Transport Layer Security 传输层安全协议的设置

Jump to

Keyboard shortcuts

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