outbound

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: May 8, 2021 License: GPL-3.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewConn added in v0.19.0

func NewConn(c net.Conn, a C.ProxyAdapter) C.Conn

func ParseProxy added in v0.17.0

func ParseProxy(mapping map[string]interface{}) (C.Proxy, error)

Types

type Base added in v0.11.0

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

func NewBase added in v0.17.0

func NewBase(name string, addr string, tp C.AdapterType, udp bool) *Base

func (*Base) Addr added in v0.19.0

func (b *Base) Addr() string

Addr implements C.ProxyAdapter

func (*Base) DialUDP added in v0.14.0

func (b *Base) DialUDP(metadata *C.Metadata) (C.PacketConn, error)

DialUDP implements C.ProxyAdapter

func (*Base) MarshalJSON added in v0.11.0

func (b *Base) MarshalJSON() ([]byte, error)

MarshalJSON implements C.ProxyAdapter

func (*Base) Name added in v0.11.0

func (b *Base) Name() string

Name implements C.ProxyAdapter

func (*Base) StreamConn added in v0.19.0

func (b *Base) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error)

StreamConn implements C.ProxyAdapter

func (*Base) SupportUDP added in v0.14.0

func (b *Base) SupportUDP() bool

SupportUDP implements C.ProxyAdapter

func (*Base) Type added in v0.11.0

func (b *Base) Type() C.AdapterType

Type implements C.ProxyAdapter

func (*Base) Unwrap added in v0.20.0

func (b *Base) Unwrap(metadata *C.Metadata) C.Proxy

Unwrap implements C.ProxyAdapter

type Direct

type Direct struct {
	*Base
}

func NewDirect

func NewDirect() *Direct

func (*Direct) DialContext added in v0.16.0

func (d *Direct) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

DialContext implements C.ProxyAdapter

func (*Direct) DialUDP added in v0.14.0

func (d *Direct) DialUDP(metadata *C.Metadata) (C.PacketConn, error)

DialUDP implements C.ProxyAdapter

type GrpcOptions added in v1.5.0

type GrpcOptions struct {
	GrpcServiceName string `proxy:"grpc-service-name,omitempty"`
}

type HTTP2Options added in v1.2.0

type HTTP2Options struct {
	Host []string `proxy:"host,omitempty"`
	Path string   `proxy:"path,omitempty"`
}

type HTTPOptions added in v0.20.0

type HTTPOptions struct {
	Method  string              `proxy:"method,omitempty"`
	Path    []string            `proxy:"path,omitempty"`
	Headers map[string][]string `proxy:"headers,omitempty"`
}

type Http added in v0.10.0

type Http struct {
	*Base
	// contains filtered or unexported fields
}

func NewHttp added in v0.10.0

func NewHttp(option HttpOption) *Http

func (*Http) DialContext added in v0.16.0

func (h *Http) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)

DialContext implements C.ProxyAdapter

func (*Http) StreamConn added in v0.19.0

func (h *Http) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error)

StreamConn implements C.ProxyAdapter

type HttpOption added in v0.10.0

type HttpOption struct {
	Name           string `proxy:"name"`
	Server         string `proxy:"server"`
	Port           int    `proxy:"port"`
	UserName       string `proxy:"username,omitempty"`
	Password       string `proxy:"password,omitempty"`
	TLS            bool   `proxy:"tls,omitempty"`
	SNI            string `proxy:"sni,omitempty"`
	SkipCertVerify bool   `proxy:"skip-cert-verify,omitempty"`
}

type NopConn

type NopConn struct{}

func (*NopConn) Close

func (rw *NopConn) Close() error

Close is fake function for net.Conn

func (*NopConn) LocalAddr

func (rw *NopConn) LocalAddr() net.Addr

LocalAddr is fake function for net.Conn

func (*NopConn) Read

func (rw *NopConn) Read(b []byte) (int, error)

func (*NopConn) RemoteAddr

func (rw *NopConn) RemoteAddr() net.Addr

RemoteAddr is fake function for net.Conn

func (*NopConn) SetDeadline

func (rw *NopConn) SetDeadline(time.Time) error

SetDeadline is fake function for net.Conn

func (*NopConn) SetReadDeadline

func (rw *NopConn) SetReadDeadline(time.Time) error

SetReadDeadline is fake function for net.Conn

func (*NopConn) SetWriteDeadline

func (rw *NopConn) SetWriteDeadline(time.Time) error

SetWriteDeadline is fake function for net.Conn

func (*NopConn) Write

func (rw *NopConn) Write(b []byte) (int, error)

type Proxy added in v0.13.0

type Proxy struct {
	C.ProxyAdapter
	// contains filtered or unexported fields
}

func NewProxy added in v0.13.0

func NewProxy(adapter C.ProxyAdapter) *Proxy

func (*Proxy) Alive added in v0.13.0

func (p *Proxy) Alive() bool

Alive implements C.Proxy

func (*Proxy) DelayHistory added in v0.13.0

func (p *Proxy) DelayHistory() []C.DelayHistory

DelayHistory implements C.Proxy

func (*Proxy) Dial added in v0.13.0

func (p *Proxy) Dial(metadata *C.Metadata) (C.Conn, error)

Dial implements C.Proxy

func (*Proxy) DialContext added in v0.16.0

func (p *Proxy) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

DialContext implements C.ProxyAdapter

func (*Proxy) LastDelay added in v0.13.0

func (p *Proxy) LastDelay() (delay uint16)

LastDelay return last history record. if proxy is not alive, return the max value of uint16. implements C.Proxy

func (*Proxy) MarshalJSON added in v0.13.0

func (p *Proxy) MarshalJSON() ([]byte, error)

MarshalJSON implements C.ProxyAdapter

func (*Proxy) URLTest added in v0.13.0

func (p *Proxy) URLTest(ctx context.Context, url string) (t uint16, err error)

URLTest get the delay for the specified URL implements C.Proxy

type Reject

type Reject struct {
	*Base
}

func NewReject

func NewReject() *Reject

func (*Reject) DialContext added in v0.16.0

func (r *Reject) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

DialContext implements C.ProxyAdapter

func (*Reject) DialUDP added in v0.17.1

func (r *Reject) DialUDP(metadata *C.Metadata) (C.PacketConn, error)

DialUDP implements C.ProxyAdapter

type ShadowSocks

type ShadowSocks struct {
	*Base
	// contains filtered or unexported fields
}

func NewShadowSocks

func NewShadowSocks(option ShadowSocksOption) (*ShadowSocks, error)

func (*ShadowSocks) DialContext added in v0.16.0

func (ss *ShadowSocks) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)

DialContext implements C.ProxyAdapter

func (*ShadowSocks) DialUDP added in v0.14.0

func (ss *ShadowSocks) DialUDP(metadata *C.Metadata) (C.PacketConn, error)

DialUDP implements C.ProxyAdapter

func (*ShadowSocks) MarshalJSON added in v0.10.0

func (ss *ShadowSocks) MarshalJSON() ([]byte, error)

MarshalJSON implements C.ProxyAdapter

func (*ShadowSocks) StreamConn added in v0.19.0

func (ss *ShadowSocks) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error)

StreamConn implements C.ProxyAdapter

type ShadowSocksOption

type ShadowSocksOption struct {
	Name       string                 `proxy:"name"`
	Server     string                 `proxy:"server"`
	Port       int                    `proxy:"port"`
	Password   string                 `proxy:"password"`
	Cipher     string                 `proxy:"cipher"`
	UDP        bool                   `proxy:"udp,omitempty"`
	Plugin     string                 `proxy:"plugin,omitempty"`
	PluginOpts map[string]interface{} `proxy:"plugin-opts,omitempty"`
}

type ShadowSocksR added in v1.1.0

type ShadowSocksR struct {
	*Base
	// contains filtered or unexported fields
}

func NewShadowSocksR added in v1.1.0

func NewShadowSocksR(option ShadowSocksROption) (*ShadowSocksR, error)

func (*ShadowSocksR) DialContext added in v1.1.0

func (ssr *ShadowSocksR) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)

DialContext implements C.ProxyAdapter

func (*ShadowSocksR) DialUDP added in v1.1.0

func (ssr *ShadowSocksR) DialUDP(metadata *C.Metadata) (C.PacketConn, error)

DialUDP implements C.ProxyAdapter

func (*ShadowSocksR) MarshalJSON added in v1.1.0

func (ssr *ShadowSocksR) MarshalJSON() ([]byte, error)

MarshalJSON implements C.ProxyAdapter

func (*ShadowSocksR) StreamConn added in v1.1.0

func (ssr *ShadowSocksR) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error)

StreamConn implements C.ProxyAdapter

type ShadowSocksROption added in v1.1.0

type ShadowSocksROption struct {
	Name          string `proxy:"name"`
	Server        string `proxy:"server"`
	Port          int    `proxy:"port"`
	Password      string `proxy:"password"`
	Cipher        string `proxy:"cipher"`
	Obfs          string `proxy:"obfs"`
	ObfsParam     string `proxy:"obfs-param,omitempty"`
	Protocol      string `proxy:"protocol"`
	ProtocolParam string `proxy:"protocol-param,omitempty"`
	UDP           bool   `proxy:"udp,omitempty"`
}

type Snell added in v0.16.0

type Snell struct {
	*Base
	// contains filtered or unexported fields
}

func NewSnell added in v0.16.0

func NewSnell(option SnellOption) (*Snell, error)

func (*Snell) DialContext added in v0.16.0

func (s *Snell) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)

DialContext implements C.ProxyAdapter

func (*Snell) StreamConn added in v0.19.0

func (s *Snell) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error)

StreamConn implements C.ProxyAdapter

type SnellOption added in v0.16.0

type SnellOption struct {
	Name     string                 `proxy:"name"`
	Server   string                 `proxy:"server"`
	Port     int                    `proxy:"port"`
	Psk      string                 `proxy:"psk"`
	Version  int                    `proxy:"version,omitempty"`
	ObfsOpts map[string]interface{} `proxy:"obfs-opts,omitempty"`
}

type Socks5

type Socks5 struct {
	*Base
	// contains filtered or unexported fields
}

func NewSocks5

func NewSocks5(option Socks5Option) *Socks5

func (*Socks5) DialContext added in v0.16.0

func (ss *Socks5) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)

DialContext implements C.ProxyAdapter

func (*Socks5) DialUDP added in v0.14.0

func (ss *Socks5) DialUDP(metadata *C.Metadata) (_ C.PacketConn, err error)

DialUDP implements C.ProxyAdapter

func (*Socks5) StreamConn added in v0.19.0

func (ss *Socks5) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error)

StreamConn implements C.ProxyAdapter

type Socks5Option

type Socks5Option struct {
	Name           string `proxy:"name"`
	Server         string `proxy:"server"`
	Port           int    `proxy:"port"`
	UserName       string `proxy:"username,omitempty"`
	Password       string `proxy:"password,omitempty"`
	TLS            bool   `proxy:"tls,omitempty"`
	UDP            bool   `proxy:"udp,omitempty"`
	SkipCertVerify bool   `proxy:"skip-cert-verify,omitempty"`
}

type Trojan added in v0.19.0

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

func NewTrojan added in v0.19.0

func NewTrojan(option TrojanOption) (*Trojan, error)

func (*Trojan) DialContext added in v0.19.0

func (t *Trojan) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)

DialContext implements C.ProxyAdapter

func (*Trojan) DialUDP added in v0.19.0

func (t *Trojan) DialUDP(metadata *C.Metadata) (_ C.PacketConn, err error)

DialUDP implements C.ProxyAdapter

func (*Trojan) MarshalJSON added in v0.19.0

func (t *Trojan) MarshalJSON() ([]byte, error)

func (*Trojan) StreamConn added in v0.19.0

func (t *Trojan) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error)

StreamConn implements C.ProxyAdapter

type TrojanOption added in v0.19.0

type TrojanOption struct {
	Name           string      `proxy:"name"`
	Server         string      `proxy:"server"`
	Port           int         `proxy:"port"`
	Password       string      `proxy:"password"`
	ALPN           []string    `proxy:"alpn,omitempty"`
	SNI            string      `proxy:"sni,omitempty"`
	SkipCertVerify bool        `proxy:"skip-cert-verify,omitempty"`
	UDP            bool        `proxy:"udp,omitempty"`
	Network        string      `proxy:"network,omitempty"`
	GrpcOpts       GrpcOptions `proxy:"grpc-opts,omitempty"`
}

type Vmess

type Vmess struct {
	*Base
	// contains filtered or unexported fields
}

func NewVmess

func NewVmess(option VmessOption) (*Vmess, error)

func (*Vmess) DialContext added in v0.16.0

func (v *Vmess) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)

DialContext implements C.ProxyAdapter

func (*Vmess) DialUDP added in v0.14.0

func (v *Vmess) DialUDP(metadata *C.Metadata) (_ C.PacketConn, err error)

DialUDP implements C.ProxyAdapter

func (*Vmess) StreamConn added in v0.19.0

func (v *Vmess) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error)

StreamConn implements C.ProxyAdapter

type VmessOption

type VmessOption struct {
	Name           string            `proxy:"name"`
	Server         string            `proxy:"server"`
	Port           int               `proxy:"port"`
	UUID           string            `proxy:"uuid"`
	AlterID        int               `proxy:"alterId"`
	Cipher         string            `proxy:"cipher"`
	TLS            bool              `proxy:"tls,omitempty"`
	UDP            bool              `proxy:"udp,omitempty"`
	Network        string            `proxy:"network,omitempty"`
	HTTPOpts       HTTPOptions       `proxy:"http-opts,omitempty"`
	HTTP2Opts      HTTP2Options      `proxy:"h2-opts,omitempty"`
	GrpcOpts       GrpcOptions       `proxy:"grpc-opts,omitempty"`
	WSPath         string            `proxy:"ws-path,omitempty"`
	WSHeaders      map[string]string `proxy:"ws-headers,omitempty"`
	SkipCertVerify bool              `proxy:"skip-cert-verify,omitempty"`
	ServerName     string            `proxy:"servername,omitempty"`
}

Jump to

Keyboard shortcuts

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