tunnel

package
v0.0.0-...-0668709 Latest Latest
Warning

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

Go to latest
Published: May 23, 2023 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
}

Config a Tunnel

type Proxy

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

Proxy is the inbound portion of a Tunnel

func NewProxy

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

NewProxy creates a Proxy

func (*Proxy) Run

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

Run enables the proxy and blocks while its active, close the proxy by cancelling the context.

type Tunnel

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

Tunnel represents an SSH tunnel with proxy capabilities. Both groselha client and server are Tunnels. groselha client has a single set of remotes, whereas groselha server has multiple sets of remotes (one set per client). Each remote has a 1:1 mapping to a proxy. Proxies listen, send data over ssh, and the other end of the ssh connection communicates with the endpoint and returns the response.

func New

func New(c Config) *Tunnel

New Tunnel from the given Config

func (*Tunnel) BindRemotes

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

BindRemotes converts the given remotes into proxies, and blocks until the caller cancels the context or there is a proxy error.

func (*Tunnel) BindSSH

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

BindSSH provides an active SSH for use for tunnelling

Jump to

Keyboard shortcuts

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