tunnel

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: 21 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 {
	*cio.Logger
	// 流入,入站
	Inbound bool
	// 流出,出站
	Outbound  bool
	Socks     bool
	KeepAlive time.Duration
	Remotes   []*settings.Remote
	// 使用隧道转发请求时创建连接的回调
	OnConnect func(localPort string, logger *cio.Logger)
	// 使用隧道转发请求时结束连接的回调
	OnClose func(localPort string, logger *cio.Logger)
}

Config 隧道配置

type Proxy

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

func NewProxy

func NewProxy(logger *cio.Logger, sshTun sshTunnel, index int, remote *settings.Remote) (*Proxy, error)

NewProxy 创建代理并开始监听

func (*Proxy) Run

func (p *Proxy) Run(ctx context.Context) error

Run 启用代理并阻止其活动,通过取消上下文来关闭代理

type Tunnel

type Tunnel struct {
	Config
	// contains filtered or unexported fields
}

Tunnel 表示具有代理能力的SSH隧道, chisel的客户端和服务端都是隧道。 客户端有一组远程映射,而凿子服务器有多组远程映射(每个客户端有一组)。 每个remote都有一个1:1代理映射 代理通过ssh监听、发送数据,ssh连接的另一端与端点通信并返回响应。

func New

func New(c Config) *Tunnel

func (*Tunnel) BindRemotes

func (t *Tunnel) BindRemotes(ctx context.Context, remotes []*settings.Remote) error

BindRemotes 将给定的远程服务转换为代理并阻塞,直到调用者通过取消上下文来关闭代理或出现代理错误后关闭

func (*Tunnel) BindSSH

func (t *Tunnel) BindSSH(ctx context.Context, c ssh.Conn, reqs <-chan *ssh.Request, chans <-chan ssh.NewChannel) error

BindSSH 提供一个活动的SSH用于隧道使用

func (*Tunnel) Close

func (t *Tunnel) Close(ctx context.Context) error

func (*Tunnel) KeepAliveChan

func (t *Tunnel) KeepAliveChan(sshConn ssh.Conn) <-chan error

Jump to

Keyboard shortcuts

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