outbound

package
v1.1.2 Latest Latest
Warning

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

Go to latest
Published: Jan 3, 2023 License: GPL-2.0 Imports: 56 Imported by: 12

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CopyEarlyConn

func CopyEarlyConn(ctx context.Context, conn net.Conn, serverConn net.Conn) error

func New

func New(ctx context.Context, router adapter.Router, logger log.ContextLogger, options option.Outbound) (adapter.Outbound, error)

func NewConnection

func NewConnection(ctx context.Context, this N.Dialer, conn net.Conn, metadata adapter.InboundContext) error

func NewEarlyConnection

func NewEarlyConnection(ctx context.Context, this N.Dialer, conn net.Conn, metadata adapter.InboundContext) error

func NewHysteria added in v1.0.1

func NewHysteria(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.HysteriaOutboundOptions) (adapter.Outbound, error)

func NewPacketConnection

func NewPacketConnection(ctx context.Context, this N.Dialer, conn N.PacketConn, metadata adapter.InboundContext) error

func NewShadowsocksR added in v1.1.0

func NewShadowsocksR(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.ShadowsocksROutboundOptions) (adapter.Outbound, error)

func NewWireGuard added in v1.0.1

func NewWireGuard(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.WireGuardOutboundOptions) (adapter.Outbound, error)

func RealTag

func RealTag(detour adapter.Outbound) string

Types

type Block

type Block struct {
	// contains filtered or unexported fields
}

func NewBlock

func NewBlock(logger log.ContextLogger, tag string) *Block

func (*Block) DialContext

func (h *Block) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*Block) ListenPacket

func (h *Block) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*Block) Network

func (a *Block) Network() []string

func (*Block) NewConnection

func (h *Block) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*Block) NewPacketConnection

func (h *Block) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*Block) Tag

func (a *Block) Tag() string

func (*Block) Type

func (a *Block) Type() string

type DNS

type DNS struct {
	// contains filtered or unexported fields
}

func NewDNS

func NewDNS(router adapter.Router, tag string) *DNS

func (*DNS) DialContext

func (d *DNS) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*DNS) ListenPacket

func (d *DNS) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*DNS) Network

func (a *DNS) Network() []string

func (*DNS) NewConnection

func (d *DNS) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*DNS) NewPacketConnection

func (d *DNS) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*DNS) Tag

func (a *DNS) Tag() string

func (*DNS) Type

func (a *DNS) Type() string

type Direct

type Direct struct {
	// contains filtered or unexported fields
}

func NewDirect

func NewDirect(router adapter.Router, logger log.ContextLogger, tag string, options option.DirectOutboundOptions) (*Direct, error)

func (*Direct) DialContext

func (h *Direct) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*Direct) DialParallel added in v1.0.1

func (h *Direct) DialParallel(ctx context.Context, network string, destination M.Socksaddr, destinationAddresses []netip.Addr) (net.Conn, error)

func (*Direct) ListenPacket

func (h *Direct) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*Direct) Network

func (a *Direct) Network() []string

func (*Direct) NewConnection

func (h *Direct) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*Direct) NewPacketConnection

func (h *Direct) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*Direct) Tag

func (a *Direct) Tag() string

func (*Direct) Type

func (a *Direct) Type() string

type HTTP

type HTTP struct {
	// contains filtered or unexported fields
}

func NewHTTP

func NewHTTP(router adapter.Router, logger log.ContextLogger, tag string, options option.HTTPOutboundOptions) (*HTTP, error)

func (*HTTP) DialContext

func (h *HTTP) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*HTTP) ListenPacket

func (h *HTTP) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*HTTP) Network

func (a *HTTP) Network() []string

func (*HTTP) NewConnection

func (h *HTTP) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*HTTP) NewPacketConnection

func (h *HTTP) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*HTTP) Tag

func (a *HTTP) Tag() string

func (*HTTP) Type

func (a *HTTP) Type() string

type ProxyListener added in v1.0.1

type ProxyListener struct {
	// contains filtered or unexported fields
}

func NewProxyListener added in v1.0.1

func NewProxyListener(ctx context.Context, logger log.ContextLogger, dialer N.Dialer) *ProxyListener

func (*ProxyListener) Close added in v1.0.1

func (l *ProxyListener) Close() error

func (*ProxyListener) NewConnection added in v1.0.1

func (l *ProxyListener) NewConnection(ctx context.Context, conn net.Conn, upstreamMetadata M.Metadata) error

func (*ProxyListener) NewPacketConnection added in v1.0.1

func (l *ProxyListener) NewPacketConnection(ctx context.Context, conn N.PacketConn, upstreamMetadata M.Metadata) error

func (*ProxyListener) Password added in v1.0.1

func (l *ProxyListener) Password() string

func (*ProxyListener) Port added in v1.0.1

func (l *ProxyListener) Port() uint16

func (*ProxyListener) Start added in v1.0.1

func (l *ProxyListener) Start() error

func (*ProxyListener) Username added in v1.0.1

func (l *ProxyListener) Username() string

type SSH added in v1.0.1

type SSH struct {
	// contains filtered or unexported fields
}

func NewSSH added in v1.0.1

func NewSSH(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.SSHOutboundOptions) (*SSH, error)

func (*SSH) Close added in v1.0.1

func (s *SSH) Close() error

func (*SSH) DialContext added in v1.0.1

func (s *SSH) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*SSH) InterfaceUpdated added in v1.1.0

func (s *SSH) InterfaceUpdated() error

func (*SSH) ListenPacket added in v1.0.1

func (s *SSH) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*SSH) Network added in v1.0.1

func (a *SSH) Network() []string

func (*SSH) NewConnection added in v1.0.1

func (s *SSH) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*SSH) NewPacketConnection added in v1.0.1

func (s *SSH) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*SSH) Tag added in v1.0.1

func (a *SSH) Tag() string

func (*SSH) Type added in v1.0.1

func (a *SSH) Type() string

type Selector

type Selector struct {
	// contains filtered or unexported fields
}

func NewSelector

func NewSelector(router adapter.Router, logger log.ContextLogger, tag string, options option.SelectorOutboundOptions) (*Selector, error)

func (*Selector) All

func (s *Selector) All() []string

func (*Selector) DialContext

func (s *Selector) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*Selector) ListenPacket

func (s *Selector) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*Selector) Network

func (s *Selector) Network() []string

func (*Selector) NewConnection

func (s *Selector) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*Selector) NewPacketConnection

func (s *Selector) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*Selector) Now

func (s *Selector) Now() string

func (*Selector) SelectOutbound

func (s *Selector) SelectOutbound(tag string) bool

func (*Selector) Start

func (s *Selector) Start() error

func (*Selector) Tag

func (a *Selector) Tag() string

func (*Selector) Type

func (a *Selector) Type() string

type ShadowTLS added in v1.0.1

type ShadowTLS struct {
	// contains filtered or unexported fields
}

func NewShadowTLS added in v1.0.1

func NewShadowTLS(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.ShadowTLSOutboundOptions) (*ShadowTLS, error)

func (*ShadowTLS) DialContext added in v1.0.1

func (s *ShadowTLS) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*ShadowTLS) ListenPacket added in v1.0.1

func (s *ShadowTLS) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*ShadowTLS) Network added in v1.0.1

func (a *ShadowTLS) Network() []string

func (*ShadowTLS) NewConnection added in v1.0.1

func (s *ShadowTLS) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*ShadowTLS) NewPacketConnection added in v1.0.1

func (s *ShadowTLS) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*ShadowTLS) Tag added in v1.0.1

func (a *ShadowTLS) Tag() string

func (*ShadowTLS) Type added in v1.0.1

func (a *ShadowTLS) Type() string

type Shadowsocks

type Shadowsocks struct {
	// contains filtered or unexported fields
}

func NewShadowsocks

func NewShadowsocks(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.ShadowsocksOutboundOptions) (*Shadowsocks, error)

func (*Shadowsocks) Close

func (h *Shadowsocks) Close() error

func (*Shadowsocks) DialContext

func (h *Shadowsocks) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*Shadowsocks) ListenPacket

func (h *Shadowsocks) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*Shadowsocks) Network

func (a *Shadowsocks) Network() []string

func (*Shadowsocks) NewConnection

func (h *Shadowsocks) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*Shadowsocks) NewPacketConnection

func (h *Shadowsocks) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*Shadowsocks) Tag

func (a *Shadowsocks) Tag() string

func (*Shadowsocks) Type

func (a *Shadowsocks) Type() string

type Socks

type Socks struct {
	// contains filtered or unexported fields
}

func NewSocks

func NewSocks(router adapter.Router, logger log.ContextLogger, tag string, options option.SocksOutboundOptions) (*Socks, error)

func (*Socks) DialContext

func (h *Socks) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*Socks) ListenPacket

func (h *Socks) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*Socks) Network

func (a *Socks) Network() []string

func (*Socks) NewConnection

func (h *Socks) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*Socks) NewPacketConnection

func (h *Socks) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*Socks) Tag

func (a *Socks) Tag() string

func (*Socks) Type

func (a *Socks) Type() string

type Tor added in v1.0.1

type Tor struct {
	// contains filtered or unexported fields
}

func NewTor added in v1.0.1

func NewTor(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.TorOutboundOptions) (*Tor, error)

func (*Tor) Close added in v1.0.1

func (t *Tor) Close() error

func (*Tor) DialContext added in v1.0.1

func (t *Tor) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*Tor) ListenPacket added in v1.0.1

func (t *Tor) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*Tor) Network added in v1.0.1

func (a *Tor) Network() []string

func (*Tor) NewConnection added in v1.0.1

func (t *Tor) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*Tor) NewPacketConnection added in v1.0.1

func (t *Tor) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*Tor) Start added in v1.0.1

func (t *Tor) Start() error

func (*Tor) Tag added in v1.0.1

func (a *Tor) Tag() string

func (*Tor) Type added in v1.0.1

func (a *Tor) Type() string

type Trojan

type Trojan struct {
	// contains filtered or unexported fields
}

func NewTrojan

func NewTrojan(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.TrojanOutboundOptions) (*Trojan, error)

func (*Trojan) Close added in v1.1.0

func (h *Trojan) Close() error

func (*Trojan) DialContext

func (h *Trojan) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*Trojan) ListenPacket

func (h *Trojan) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*Trojan) Network

func (a *Trojan) Network() []string

func (*Trojan) NewConnection

func (h *Trojan) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*Trojan) NewPacketConnection

func (h *Trojan) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*Trojan) Tag

func (a *Trojan) Tag() string

func (*Trojan) Type

func (a *Trojan) Type() string

type URLTest added in v1.1.0

type URLTest struct {
	// contains filtered or unexported fields
}

func NewURLTest added in v1.1.0

func NewURLTest(router adapter.Router, logger log.ContextLogger, tag string, options option.URLTestOutboundOptions) (*URLTest, error)

func (*URLTest) All added in v1.1.0

func (s *URLTest) All() []string

func (URLTest) Close added in v1.1.0

func (s URLTest) Close() error

func (*URLTest) DialContext added in v1.1.0

func (s *URLTest) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*URLTest) ListenPacket added in v1.1.0

func (s *URLTest) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*URLTest) Network added in v1.1.0

func (s *URLTest) Network() []string

func (*URLTest) NewConnection added in v1.1.0

func (s *URLTest) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*URLTest) NewPacketConnection added in v1.1.0

func (s *URLTest) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*URLTest) Now added in v1.1.0

func (s *URLTest) Now() string

func (*URLTest) Start added in v1.1.0

func (s *URLTest) Start() error

func (*URLTest) Tag added in v1.1.0

func (a *URLTest) Tag() string

func (*URLTest) Type added in v1.1.0

func (a *URLTest) Type() string

type URLTestGroup added in v1.1.0

type URLTestGroup struct {
	// contains filtered or unexported fields
}

func NewURLTestGroup added in v1.1.0

func NewURLTestGroup(router adapter.Router, logger log.Logger, outbounds []adapter.Outbound, link string, interval time.Duration, tolerance uint16) *URLTestGroup

func (*URLTestGroup) Close added in v1.1.0

func (g *URLTestGroup) Close() error

func (*URLTestGroup) Fallback added in v1.1.0

func (g *URLTestGroup) Fallback(used adapter.Outbound) []adapter.Outbound

func (*URLTestGroup) Select added in v1.1.0

func (g *URLTestGroup) Select(network string) adapter.Outbound

func (*URLTestGroup) Start added in v1.1.0

func (g *URLTestGroup) Start() error

type VLESS added in v1.1.0

type VLESS struct {
	// contains filtered or unexported fields
}

func NewVLESS added in v1.1.0

func NewVLESS(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.VLESSOutboundOptions) (*VLESS, error)

func (*VLESS) Close added in v1.1.0

func (h *VLESS) Close() error

func (*VLESS) DialContext added in v1.1.0

func (h *VLESS) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*VLESS) ListenPacket added in v1.1.0

func (h *VLESS) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*VLESS) Network added in v1.1.0

func (a *VLESS) Network() []string

func (*VLESS) NewConnection added in v1.1.0

func (h *VLESS) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*VLESS) NewPacketConnection added in v1.1.0

func (h *VLESS) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*VLESS) Tag added in v1.1.0

func (a *VLESS) Tag() string

func (*VLESS) Type added in v1.1.0

func (a *VLESS) Type() string

type VMess

type VMess struct {
	// contains filtered or unexported fields
}

func NewVMess

func NewVMess(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.VMessOutboundOptions) (*VMess, error)

func (*VMess) Close added in v1.0.1

func (h *VMess) Close() error

func (*VMess) DialContext

func (h *VMess) DialContext(ctx context.Context, network string, destination M.Socksaddr) (net.Conn, error)

func (*VMess) ListenPacket

func (h *VMess) ListenPacket(ctx context.Context, destination M.Socksaddr) (net.PacketConn, error)

func (*VMess) Network

func (a *VMess) Network() []string

func (*VMess) NewConnection

func (h *VMess) NewConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*VMess) NewPacketConnection

func (h *VMess) NewPacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*VMess) Tag

func (a *VMess) Tag() string

func (*VMess) Type

func (a *VMess) Type() string

Jump to

Keyboard shortcuts

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