Documentation ¶
Index ¶
- func NewConn(c net.Conn, a C.ProxyAdapter) C.Conn
- func ParseProxy(mapping map[string]interface{}) (C.Proxy, error)
- type Base
- func (b *Base) Addr() string
- func (b *Base) DialUDP(metadata *C.Metadata) (C.PacketConn, error)
- func (b *Base) MarshalJSON() ([]byte, error)
- func (b *Base) Name() string
- func (b *Base) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error)
- func (b *Base) SupportUDP() bool
- func (b *Base) Type() C.AdapterType
- func (b *Base) Unwrap(metadata *C.Metadata) C.Proxy
- type Direct
- type GrpcOptions
- type HTTP2Options
- type HTTPOptions
- type Http
- type HttpOption
- type NopConn
- func (rw *NopConn) Close() error
- func (rw *NopConn) LocalAddr() net.Addr
- func (rw *NopConn) Read(b []byte) (int, error)
- func (rw *NopConn) RemoteAddr() net.Addr
- func (rw *NopConn) SetDeadline(time.Time) error
- func (rw *NopConn) SetReadDeadline(time.Time) error
- func (rw *NopConn) SetWriteDeadline(time.Time) error
- func (rw *NopConn) Write(b []byte) (int, error)
- type Proxy
- func (p *Proxy) Alive() bool
- func (p *Proxy) DelayHistory() []C.DelayHistory
- func (p *Proxy) Dial(metadata *C.Metadata) (C.Conn, error)
- func (p *Proxy) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)
- func (p *Proxy) LastDelay() (delay uint16)
- func (p *Proxy) MarshalJSON() ([]byte, error)
- func (p *Proxy) URLTest(ctx context.Context, url string) (t uint16, err error)
- type Reject
- type ShadowSocks
- func (ss *ShadowSocks) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (ss *ShadowSocks) DialUDP(metadata *C.Metadata) (C.PacketConn, error)
- func (ss *ShadowSocks) MarshalJSON() ([]byte, error)
- func (ss *ShadowSocks) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error)
- type ShadowSocksOption
- type ShadowSocksR
- func (ssr *ShadowSocksR) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (ssr *ShadowSocksR) DialUDP(metadata *C.Metadata) (C.PacketConn, error)
- func (ssr *ShadowSocksR) MarshalJSON() ([]byte, error)
- func (ssr *ShadowSocksR) StreamConn(c net.Conn, metadata *C.Metadata) (net.Conn, error)
- type ShadowSocksROption
- type Snell
- type SnellOption
- type Socks5
- type Socks5Option
- type Trojan
- type TrojanOption
- type Vmess
- type VmessOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Base ¶ added in v0.11.0
type Base struct {
// contains filtered or unexported fields
}
func (*Base) MarshalJSON ¶ added in v0.11.0
MarshalJSON implements C.ProxyAdapter
func (*Base) StreamConn ¶ added in v0.19.0
StreamConn implements C.ProxyAdapter
func (*Base) SupportUDP ¶ added in v0.14.0
SupportUDP implements C.ProxyAdapter
func (*Base) Type ¶ added in v0.11.0
func (b *Base) Type() C.AdapterType
Type implements C.ProxyAdapter
type Direct ¶
type Direct struct {
*Base
}
func (*Direct) DialContext ¶ added in v0.16.0
DialContext 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 HTTPOptions ¶ added in v0.20.0
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
DialContext 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) RemoteAddr ¶
RemoteAddr is fake function for net.Conn
func (*NopConn) SetDeadline ¶
SetDeadline is fake function for net.Conn
func (*NopConn) SetReadDeadline ¶
SetReadDeadline is fake function for net.Conn
func (*NopConn) SetWriteDeadline ¶
SetWriteDeadline is fake function for net.Conn
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) DelayHistory ¶ added in v0.13.0
func (p *Proxy) DelayHistory() []C.DelayHistory
DelayHistory implements C.Proxy
func (*Proxy) DialContext ¶ added in v0.16.0
DialContext implements C.ProxyAdapter
func (*Proxy) LastDelay ¶ added in v0.13.0
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
MarshalJSON implements C.ProxyAdapter
type Reject ¶
type Reject struct {
*Base
}
func (*Reject) DialContext ¶ added in v0.16.0
DialContext 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
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
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
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
DialContext implements C.ProxyAdapter
type SnellOption ¶ added in v0.16.0
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
DialContext 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
DialContext implements C.ProxyAdapter
func (*Trojan) MarshalJSON ¶ added in v0.19.0
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
DialContext 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"` }