Documentation
¶
Index ¶
- Constants
- Variables
- func NewConn(c net.Conn, a C.ProxyAdapter) C.Conn
- func NewPacketConn(pc net.PacketConn, a ProxyAdapter) C.PacketConn
- type AddRef
- type AmneziaWGOption
- type AnyTLS
- func (t *AnyTLS) Close() error
- func (t *AnyTLS) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (t *AnyTLS) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (t *AnyTLS) ProxyInfo() C.ProxyInfo
- func (t *AnyTLS) SupportUOT() bool
- type AnyTLSOption
- type Base
- func (b *Base) Addr() string
- func (b *Base) Close() error
- func (b *Base) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)
- func (b *Base) DialOptions() (opts []dialer.Option)
- func (b *Base) Id() string
- func (b *Base) IsL3Protocol(metadata *C.Metadata) bool
- func (b *Base) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (C.PacketConn, error)
- func (b *Base) MarshalJSON() ([]byte, error)
- func (b *Base) Name() string
- func (b *Base) ProxyInfo() (info C.ProxyInfo)
- func (b *Base) ResolveUDP(ctx context.Context, metadata *C.Metadata) error
- func (b *Base) SupportUDP() bool
- func (b *Base) SupportUOT() bool
- func (b *Base) Type() C.AdapterType
- func (b *Base) Unwrap(metadata *C.Metadata, touch bool) C.Proxy
- type BaseOption
- type BasicOption
- type BrutalOption
- type Direct
- func (d *Direct) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)
- func (d *Direct) IsL3Protocol(metadata *C.Metadata) bool
- func (d *Direct) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (C.PacketConn, error)
- func (d *Direct) ResolveUDP(ctx context.Context, metadata *C.Metadata) error
- type DirectOption
- type Dns
- type DnsOption
- type ECHOptions
- type EasyTier
- func (e *EasyTier) Close() error
- func (e *EasyTier) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (e *EasyTier) IsL3Protocol(*C.Metadata) bool
- func (e *EasyTier) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (e *EasyTier) ProxyInfo() C.ProxyInfo
- func (e *EasyTier) ResolveUDP(ctx context.Context, metadata *C.Metadata) error
- type EasyTierOption
- type GostRelay
- type GostRelayOption
- type GrpcOptions
- type HTTP2Options
- type HTTPOptions
- type Http
- type HttpOption
- type Hysteria
- type Hysteria2
- func (h *Hysteria2) Close() error
- func (h *Hysteria2) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (h *Hysteria2) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (h *Hysteria2) ProxyInfo() C.ProxyInfo
- func (h *Hysteria2) ResetNetwork()
- type Hysteria2Option
- type Hysteria2RealmOption
- type HysteriaOption
- type IPStackOption
- type JLSOptions
- type MKCPOptions
- type Masque
- func (w *Masque) Close() error
- func (w *Masque) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (w *Masque) IsL3Protocol(metadata *C.Metadata) bool
- func (w *Masque) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (w *Masque) ProxyInfo() C.ProxyInfo
- func (w *Masque) ResolveUDP(ctx context.Context, metadata *C.Metadata) error
- type MasqueOption
- type MekyaOptions
- type Mieru
- type MieruOption
- type NetworkResetter
- type OpenVPN
- func (o *OpenVPN) Close() error
- func (o *OpenVPN) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (o *OpenVPN) IsL3Protocol(metadata *C.Metadata) bool
- func (o *OpenVPN) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (o *OpenVPN) ProxyInfo() C.ProxyInfo
- func (o *OpenVPN) ResolveUDP(ctx context.Context, metadata *C.Metadata) error
- type OpenVPNOption
- type ProxyAdapter
- type RealityOptions
- type Reject
- type RejectOption
- type Rematch
- type RematchOption
- type RestlsOptions
- type ShadowQuic
- type ShadowQuicOption
- type ShadowSocks
- func (ss *ShadowSocks) Close() error
- func (ss *ShadowSocks) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (ss *ShadowSocks) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (ss *ShadowSocks) ProxyInfo() C.ProxyInfo
- func (ss *ShadowSocks) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.Metadata) (_ net.Conn, err error)
- func (ss *ShadowSocks) SupportUOT() bool
- type ShadowSocksOption
- type ShadowSocksR
- func (ssr *ShadowSocksR) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (ssr *ShadowSocksR) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (C.PacketConn, error)
- func (ssr *ShadowSocksR) ProxyInfo() C.ProxyInfo
- func (ssr *ShadowSocksR) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.Metadata) (_ net.Conn, err error)
- type ShadowSocksROption
- type ShadowTLSOptions
- type SingMux
- func (s *SingMux) Close() error
- func (s *SingMux) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (s *SingMux) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (s *SingMux) ProxyInfo() C.ProxyInfo
- func (s *SingMux) ResetNetwork()
- func (s *SingMux) SupportUDP() bool
- func (s *SingMux) SupportUOT() bool
- type SingMuxOption
- type Snell
- func (s *Snell) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (s *Snell) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (s *Snell) ProxyInfo() C.ProxyInfo
- func (s *Snell) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.Metadata) (net.Conn, error)
- func (s *Snell) SupportUOT() bool
- type SnellOption
- type Socks5
- func (ss *Socks5) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (ss *Socks5) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (ss *Socks5) ProxyInfo() C.ProxyInfo
- func (ss *Socks5) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.Metadata) (net.Conn, error)
- type Socks5Option
- type Ssh
- type SshOption
- type Sudoku
- func (s *Sudoku) Close() error
- func (s *Sudoku) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (s *Sudoku) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (C.PacketConn, error)
- func (s *Sudoku) ProxyInfo() C.ProxyInfo
- func (s *Sudoku) SupportUOT() bool
- type SudokuHTTPMaskOptions
- type SudokuOption
- type TLSMirrorConnectionEnrolment
- type TLSMirrorOptions
- type TLSMirrorTimeSpec
- type TLSMirrorTrafficGenerator
- type TLSMirrorTrafficHeader
- type TLSMirrorTrafficStep
- type TLSMirrorTrafficTransferCandidate
- type TLSMirrorTransportLayerPadding
- type Tailscale
- type TailscaleOption
- type Trojan
- func (t *Trojan) Close() error
- func (t *Trojan) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (t *Trojan) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (t *Trojan) ProxyInfo() C.ProxyInfo
- func (t *Trojan) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.Metadata) (_ net.Conn, err error)
- func (t *Trojan) SupportUOT() bool
- type TrojanOption
- type TrojanSSOption
- type TrustTunnel
- func (t *TrustTunnel) Close() error
- func (t *TrustTunnel) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (t *TrustTunnel) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (t *TrustTunnel) ProxyInfo() C.ProxyInfo
- func (t *TrustTunnel) SupportUOT() bool
- type TrustTunnelOption
- type Tuic
- type TuicOption
- type Vless
- func (v *Vless) Close() error
- func (v *Vless) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (v *Vless) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (v *Vless) ProxyInfo() C.ProxyInfo
- func (v *Vless) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.Metadata) (_ net.Conn, err error)
- func (v *Vless) SupportUOT() bool
- type VlessOption
- type Vmess
- func (v *Vmess) Close() error
- func (v *Vmess) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (v *Vmess) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (v *Vmess) ProxyInfo() C.ProxyInfo
- func (v *Vmess) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.Metadata) (_ net.Conn, err error)
- func (v *Vmess) SupportUOT() bool
- type VmessOption
- type WSOptions
- type WireGuard
- func (w *WireGuard) Close() error
- func (w *WireGuard) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (w *WireGuard) IsL3Protocol(metadata *C.Metadata) bool
- func (w *WireGuard) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (w *WireGuard) ProxyInfo() C.ProxyInfo
- func (w *WireGuard) ResolveUDP(ctx context.Context, metadata *C.Metadata) error
- type WireGuardOption
- type WireGuardPeerOption
- type XHTTPDownloadSettings
- type XHTTPOptions
- type XHTTPReuseSettings
- type ZeroTier
- func (z *ZeroTier) Close() error
- func (z *ZeroTier) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
- func (z *ZeroTier) IsL3Protocol(*C.Metadata) bool
- func (z *ZeroTier) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
- func (z *ZeroTier) ProxyInfo() C.ProxyInfo
- func (z *ZeroTier) ResolveUDP(ctx context.Context, metadata *C.Metadata) error
- type ZeroTierOption
- type ZeroTierOrbitOption
Constants ¶
const ( DefaultStreamReceiveWindow = 15728640 // 15 MB/s DefaultConnectionReceiveWindow = 67108864 // 64 MB/s DefaultALPN = "hysteria" DefaultProtocol = "udp" DefaultHopInterval = 10 )
Variables ¶
var ErrUDPRemoteAddrMismatch = errors.New("udp packet dropped due to mismatched remote address")
Functions ¶
func NewPacketConn ¶
func NewPacketConn(pc net.PacketConn, a ProxyAdapter) C.PacketConn
Types ¶
type AmneziaWGOption ¶
type AmneziaWGOption struct {
Version int `proxy:"version,omitempty"` // Only version 3 uses the v3 implementation; all other values use the legacy implementation.
JC int `proxy:"jc,omitempty"`
JMin int `proxy:"jmin,omitempty"`
JMax int `proxy:"jmax,omitempty"`
S1 int `proxy:"s1,omitempty"`
S2 int `proxy:"s2,omitempty"`
S3 int `proxy:"s3,omitempty"` // AmneziaWG v1.5+
S4 int `proxy:"s4,omitempty"` // AmneziaWG v1.5+
// H1-H4 accept uint32 values in v1.x and uint32 values or ranges in v2+.
// WeaklyTypedInput accepts both numeric and string representations.
H1 string `proxy:"h1,omitempty"`
H2 string `proxy:"h2,omitempty"`
H3 string `proxy:"h3,omitempty"`
H4 string `proxy:"h4,omitempty"`
I1 string `proxy:"i1,omitempty"` // AmneziaWG v1.5+
I2 string `proxy:"i2,omitempty"` // AmneziaWG v1.5+
I3 string `proxy:"i3,omitempty"` // AmneziaWG v1.5+
I4 string `proxy:"i4,omitempty"` // AmneziaWG v1.5+
I5 string `proxy:"i5,omitempty"` // AmneziaWG v1.5+
J1 string `proxy:"j1,omitempty"` // AmneziaWG v1.5 only (removed in v2+)
J2 string `proxy:"j2,omitempty"` // AmneziaWG v1.5 only (removed in v2+)
J3 string `proxy:"j3,omitempty"` // AmneziaWG v1.5 only (removed in v2+)
Itime int64 `proxy:"itime,omitempty"` // AmneziaWG v1.5 only (removed in v2+)
// AmneziaWG v3+ only. Version must be 3, and these options cannot be combined with the v1.5-only options above.
HeaderProtectionKey string `proxy:"header-protection-key,omitempty"`
ContentPaddingAddition string `proxy:"content-padding-addition,omitempty"`
RekeyAfterTime string `proxy:"rekey-after-time,omitempty"`
RekeyTimeout string `proxy:"rekey-timeout,omitempty"`
RejectAfterTime string `proxy:"reject-after-time,omitempty"`
KeepaliveTimeout string `proxy:"keepalive-timeout,omitempty"`
MaxHandshakeAttempts string `proxy:"max-handshake-attempts,omitempty"`
RandomTrailers bool `proxy:"random-trailers,omitempty"` // AmneziaWG v3.1+
DisableCookies bool `proxy:"disable-cookies,omitempty"` // AmneziaWG v3.1+
}
type AnyTLS ¶
type AnyTLS struct {
*Base
// contains filtered or unexported fields
}
func NewAnyTLS ¶
func NewAnyTLS(option AnyTLSOption) (*AnyTLS, error)
func (*AnyTLS) DialContext ¶
func (*AnyTLS) ListenPacketContext ¶
type AnyTLSOption ¶
type AnyTLSOption struct {
BasicOption
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"`
ECHOpts ECHOptions `proxy:"ech-opts,omitempty"`
ShadowTLSOpts ShadowTLSOptions `proxy:"shadow-tls-opts,omitempty"`
RestlsOpts RestlsOptions `proxy:"restls-opts,omitempty"`
JLSOpts JLSOptions `proxy:"jls-opts,omitempty"`
ClientFingerprint string `proxy:"client-fingerprint,omitempty"`
SkipCertVerify bool `proxy:"skip-cert-verify,omitempty"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
UDP bool `proxy:"udp,omitempty"`
ClientMetadata string `proxy:"client-metadata,omitempty"`
IdleSessionCheckInterval int `proxy:"idle-session-check-interval,omitempty"`
IdleSessionTimeout int `proxy:"idle-session-timeout,omitempty"`
MinIdleSession int `proxy:"min-idle-session,omitempty"`
DisableReuse bool `proxy:"disable-reuse,omitempty"`
}
type Base ¶
type Base struct {
// contains filtered or unexported fields
}
func NewBase ¶
func NewBase(opt BaseOption) *Base
func (*Base) DialContext ¶
func (*Base) DialOptions ¶
DialOptions return []dialer.Option from struct
func (*Base) IsL3Protocol ¶
IsL3Protocol implements C.ProxyAdapter
func (*Base) ListenPacketContext ¶
ListenPacketContext implements C.ProxyAdapter
func (*Base) MarshalJSON ¶
MarshalJSON implements C.ProxyAdapter
func (*Base) ResolveUDP ¶
type BaseOption ¶
type BasicOption ¶
type BasicOption struct {
TFO bool `proxy:"tfo,omitempty"`
MPTCP bool `proxy:"mptcp,omitempty"`
Interface string `proxy:"interface-name,omitempty"`
RoutingMark int `proxy:"routing-mark,omitempty"`
IPVersion C.DNSPrefer `proxy:"ip-version,omitempty"`
DialerProxy string `proxy:"dialer-proxy,omitempty"` // don't apply this option into groups, but can set a group name in a proxy
//
// The following parameters are used internally, assign value by the structure decoder are disallowed
//
DialerForAPI C.Dialer `proxy:"-"` // the dialer used for API usage has higher priority than all the above configurations.
TunnelForAPI C.Tunnel `proxy:"-"`
ProviderName string `proxy:"-"`
}
func (*BasicOption) NewTunnel ¶
func (b *BasicOption) NewTunnel() C.Tunnel
type BrutalOption ¶
type Direct ¶
type Direct struct {
*Base
// contains filtered or unexported fields
}
func NewCompatible ¶
func NewCompatible() *Direct
func NewDirectWithOption ¶
func NewDirectWithOption(option DirectOption) *Direct
func (*Direct) DialContext ¶
DialContext implements C.ProxyAdapter
func (*Direct) ListenPacketContext ¶
func (d *Direct) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (C.PacketConn, error)
ListenPacketContext implements C.ProxyAdapter
type DirectOption ¶
type DirectOption struct {
BasicOption
Name string `proxy:"name"`
}
type Dns ¶
type Dns struct {
*Base
}
func NewDnsWithOption ¶
func (*Dns) DialContext ¶
DialContext implements C.ProxyAdapter
func (*Dns) ListenPacketContext ¶
ListenPacketContext implements C.ProxyAdapter
type DnsOption ¶
type DnsOption struct {
BasicOption
Name string `proxy:"name"`
}
type ECHOptions ¶
type EasyTier ¶
type EasyTier struct {
*Base
// contains filtered or unexported fields
}
func NewEasyTier ¶
func NewEasyTier(option EasyTierOption) (*EasyTier, error)
func (*EasyTier) DialContext ¶
func (*EasyTier) ListenPacketContext ¶
type EasyTierOption ¶
type EasyTierOption struct {
BasicOption
Name string `proxy:"name"`
NetworkName string `proxy:"network-name,omitempty"`
NetworkSecret string `proxy:"network-secret,omitempty"`
Hostname string `proxy:"hostname,omitempty"`
IPv4 string `proxy:"ipv4,omitempty"`
DHCP bool `proxy:"dhcp,omitempty"`
Peers []string `proxy:"peers,omitempty"`
Listeners []string `proxy:"listeners,omitempty"`
NoListener *bool `proxy:"no-listener,omitempty"`
MappedListeners []string `proxy:"mapped-listeners,omitempty"`
ExitNodes []string `proxy:"exit-nodes,omitempty"`
ProxyNetworks []string `proxy:"proxy-networks,omitempty"`
InstanceName string `proxy:"instance-name,omitempty"`
StateDir string `proxy:"state-dir,omitempty"`
UDP bool `proxy:"udp,omitempty"`
AcceptDNS *bool `proxy:"accept-dns,omitempty"`
EnableExitNode *bool `proxy:"enable-exit-node,omitempty"`
EnableEncryption *bool `proxy:"enable-encryption,omitempty"`
EncryptionAlgorithm string `proxy:"encryption-algorithm,omitempty"`
PrivateMode *bool `proxy:"private-mode,omitempty"`
LatencyFirst *bool `proxy:"latency-first,omitempty"`
DisableP2P *bool `proxy:"disable-p2p,omitempty"`
EnableKCPProxy *bool `proxy:"enable-kcp-proxy,omitempty"`
DisableKCPInput *bool `proxy:"disable-kcp-input,omitempty"`
EnableQUICProxy *bool `proxy:"enable-quic-proxy,omitempty"`
DisableQUICInput *bool `proxy:"disable-quic-input,omitempty"`
MTU int `proxy:"mtu,omitempty"`
TLDDNSZone string `proxy:"tld-dns-zone,omitempty"`
SecureMode *bool `proxy:"secure-mode,omitempty"`
LocalPrivateKey string `proxy:"local-private-key,omitempty"`
LocalPublicKey string `proxy:"local-public-key,omitempty"`
}
type GostRelay ¶
type GostRelay struct {
*Base
// contains filtered or unexported fields
}
func NewGostRelay ¶
func NewGostRelay(option GostRelayOption) (*GostRelay, error)
func (*GostRelay) DialContext ¶
func (*GostRelay) ListenPacketContext ¶
type GostRelayOption ¶
type GostRelayOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port"`
Forward bool `proxy:"forward,omitempty"`
UDP bool `proxy:"udp,omitempty"`
TLS bool `proxy:"tls,omitempty"`
Mux bool `proxy:"mux,omitempty"`
SNI string `proxy:"sni,omitempty"`
Username string `proxy:"username,omitempty"`
Password string `proxy:"password,omitempty"`
SkipCertVerify bool `proxy:"skip-cert-verify,omitempty"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
ClientFingerprint string `proxy:"client-fingerprint,omitempty"`
}
type GrpcOptions ¶
type GrpcOptions struct {
GrpcServiceName string `proxy:"grpc-service-name,omitempty"`
GrpcUserAgent string `proxy:"grpc-user-agent,omitempty"`
PingInterval int `proxy:"ping-interval,omitempty"`
MaxConnections int `proxy:"max-connections,omitempty"`
MinStreams int `proxy:"min-streams,omitempty"`
MaxStreams int `proxy:"max-streams,omitempty"`
}
type HTTP2Options ¶
type HTTPOptions ¶
type Http ¶
type Http struct {
*Base
// contains filtered or unexported fields
}
func NewHttp ¶
func NewHttp(option HttpOption) (*Http, error)
func (*Http) DialContext ¶
DialContext implements C.ProxyAdapter
type HttpOption ¶
type HttpOption struct {
BasicOption
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"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
Headers map[string]string `proxy:"headers,omitempty"`
}
type Hysteria ¶
type Hysteria struct {
*Base
// contains filtered or unexported fields
}
func NewHysteria ¶
func NewHysteria(option HysteriaOption) (*Hysteria, error)
func (*Hysteria) DialContext ¶
func (*Hysteria) ListenPacketContext ¶
type Hysteria2 ¶
type Hysteria2 struct {
*Base
// contains filtered or unexported fields
}
func NewHysteria2 ¶
func NewHysteria2(option Hysteria2Option) (*Hysteria2, error)
func (*Hysteria2) DialContext ¶
func (*Hysteria2) ListenPacketContext ¶
func (*Hysteria2) ResetNetwork ¶
func (h *Hysteria2) ResetNetwork()
type Hysteria2Option ¶
type Hysteria2Option struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port,omitempty"`
Ports string `proxy:"ports,omitempty"`
HopInterval string `proxy:"hop-interval,omitempty"`
Up string `proxy:"up,omitempty"`
Down string `proxy:"down,omitempty"`
Password string `proxy:"password,omitempty"`
Obfs string `proxy:"obfs,omitempty"`
ObfsPassword string `proxy:"obfs-password,omitempty"`
ObfsMinPacketSize int `proxy:"obfs-min-packet-size,omitempty"`
ObfsMaxPacketSize int `proxy:"obfs-max-packet-size,omitempty"`
SNI string `proxy:"sni,omitempty"`
ECHOpts ECHOptions `proxy:"ech-opts,omitempty"`
SkipCertVerify bool `proxy:"skip-cert-verify,omitempty"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
ALPN []string `proxy:"alpn,omitempty"`
CWND int `proxy:"cwnd,omitempty"`
BBRProfile string `proxy:"bbr-profile,omitempty"`
UdpMTU int `proxy:"udp-mtu,omitempty"`
HandshakeTimeout int `proxy:"handshake-timeout,omitempty"`
RealmOpts Hysteria2RealmOption `proxy:"realm-opts,omitempty"`
// quic-go special config
InitialStreamReceiveWindow uint64 `proxy:"initial-stream-receive-window,omitempty"`
MaxStreamReceiveWindow uint64 `proxy:"max-stream-receive-window,omitempty"`
InitialConnectionReceiveWindow uint64 `proxy:"initial-connection-receive-window,omitempty"`
MaxConnectionReceiveWindow uint64 `proxy:"max-connection-receive-window,omitempty"`
}
type Hysteria2RealmOption ¶
type Hysteria2RealmOption struct {
Enable bool `proxy:"enable,omitempty"`
ServerURL string `proxy:"server-url,omitempty"`
Token string `proxy:"token,omitempty"`
RealmID string `proxy:"realm-id,omitempty"`
STUNServers []string `proxy:"stun-servers,omitempty"`
// for ServerURL
SNI string `proxy:"sni,omitempty"`
SkipCertVerify bool `proxy:"skip-cert-verify,omitempty"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
ALPN []string `proxy:"alpn,omitempty"`
}
type HysteriaOption ¶
type HysteriaOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port,omitempty"`
Ports string `proxy:"ports,omitempty"`
Protocol string `proxy:"protocol,omitempty"`
ObfsProtocol string `proxy:"obfs-protocol,omitempty"` // compatible with Stash
Up string `proxy:"up"`
UpSpeed int `proxy:"up-speed,omitempty"` // compatible with Stash
Down string `proxy:"down"`
DownSpeed int `proxy:"down-speed,omitempty"` // compatible with Stash
Auth string `proxy:"auth,omitempty"`
AuthString string `proxy:"auth-str,omitempty"`
Obfs string `proxy:"obfs,omitempty"`
SNI string `proxy:"sni,omitempty"`
ECHOpts ECHOptions `proxy:"ech-opts,omitempty"`
SkipCertVerify bool `proxy:"skip-cert-verify,omitempty"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
ALPN []string `proxy:"alpn,omitempty"`
ReceiveWindowConn int `proxy:"recv-window-conn,omitempty"`
ReceiveWindow int `proxy:"recv-window,omitempty"`
DisableMTUDiscovery bool `proxy:"disable-mtu-discovery,omitempty"`
FastOpen bool `proxy:"fast-open,omitempty"`
HopInterval int `proxy:"hop-interval,omitempty"`
}
type IPStackOption ¶
type JLSOptions ¶
type MKCPOptions ¶
type MKCPOptions struct {
MTU uint32 `proxy:"mtu,omitempty"`
TTI uint32 `proxy:"tti,omitempty"`
UplinkCapacity uint32 `proxy:"uplink-capacity,omitempty"`
DownlinkCapacity uint32 `proxy:"downlink-capacity,omitempty"`
Congestion bool `proxy:"congestion,omitempty"`
WriteBuffer uint32 `proxy:"write-buffer,omitempty"`
ReadBuffer uint32 `proxy:"read-buffer,omitempty"`
Seed string `proxy:"seed,omitempty"`
Header string `proxy:"header,omitempty"`
}
func (MKCPOptions) Build ¶
func (o MKCPOptions) Build() mkcp.Config
type Masque ¶
type Masque struct {
*Base
// contains filtered or unexported fields
}
func NewMasque ¶
func NewMasque(option MasqueOption) (*Masque, error)
func (*Masque) DialContext ¶
func (*Masque) IsL3Protocol ¶
IsL3Protocol implements C.ProxyAdapter
func (*Masque) ListenPacketContext ¶
type MasqueOption ¶
type MasqueOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port"`
PrivateKey string `proxy:"private-key"`
PublicKey string `proxy:"public-key"`
Ip string `proxy:"ip,omitempty"`
Ipv6 string `proxy:"ipv6,omitempty"`
URI string `proxy:"uri,omitempty"`
SNI string `proxy:"sni,omitempty"`
MTU int `proxy:"mtu,omitempty"`
UDP bool `proxy:"udp,omitempty"`
HandshakeTimeout int `proxy:"handshake-timeout,omitempty"`
SkipCertVerify bool `proxy:"skip-cert-verify,omitempty"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"` // placeholder; MASQUE does not verify certificate names
Network string `proxy:"network,omitempty"`
CongestionController string `proxy:"congestion-controller,omitempty"`
CWND int `proxy:"cwnd,omitempty"`
BBRProfile string `proxy:"bbr-profile,omitempty"`
IPStack IPStackOption `proxy:"ip-stack,omitempty"`
RemoteDnsResolve bool `proxy:"remote-dns-resolve,omitempty"`
Dns []string `proxy:"dns,omitempty"`
}
type MekyaOptions ¶
type MekyaOptions struct {
URL string `proxy:"url,omitempty"`
H2PoolSize int `proxy:"h2-pool-size,omitempty"`
MaxWriteDelay int `proxy:"max-write-delay,omitempty"`
MaxRequestSize int `proxy:"max-request-size,omitempty"`
PollingIntervalInitial int `proxy:"polling-interval-initial,omitempty"`
MaxWriteSize int `proxy:"max-write-size,omitempty"`
MaxWriteDurationMs int `proxy:"max-write-duration-ms,omitempty"`
MaxSimultaneousWriteConnection int `proxy:"max-simultaneous-write-connection,omitempty"`
PacketWritingBuffer int `proxy:"packet-writing-buffer,omitempty"`
KCP MKCPOptions `proxy:"kcp,omitempty"`
}
func (MekyaOptions) Build ¶
func (o MekyaOptions) Build() mekya.Config
type Mieru ¶
type Mieru struct {
*Base
// contains filtered or unexported fields
}
func NewMieru ¶
func NewMieru(option MieruOption) (*Mieru, error)
func (*Mieru) DialContext ¶
DialContext implements C.ProxyAdapter
func (*Mieru) ListenPacketContext ¶
func (m *Mieru) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
ListenPacketContext implements C.ProxyAdapter
type MieruOption ¶
type MieruOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port,omitempty"`
PortRange string `proxy:"port-range,omitempty"`
Transport string `proxy:"transport"`
UDP bool `proxy:"udp,omitempty"`
UserName string `proxy:"username"`
Password string `proxy:"password"`
Multiplexing string `proxy:"multiplexing,omitempty"`
HandshakeMode string `proxy:"handshake-mode,omitempty"`
TrafficPattern string `proxy:"traffic-pattern,omitempty"`
}
type NetworkResetter ¶
type NetworkResetter interface {
ResetNetwork()
}
type OpenVPN ¶
type OpenVPN struct {
*Base
// contains filtered or unexported fields
}
func NewOpenVPN ¶
func NewOpenVPN(option OpenVPNOption) (*OpenVPN, error)
func (*OpenVPN) DialContext ¶
func (*OpenVPN) ListenPacketContext ¶
type OpenVPNOption ¶
type OpenVPNOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port"`
Proto string `proxy:"proto,omitempty"`
Dev string `proxy:"dev,omitempty"`
Cipher string `proxy:"cipher,omitempty"`
DataCiphers []string `proxy:"data-ciphers,omitempty"`
DataCipherFallback string `proxy:"data-ciphers-fallback,omitempty"`
Auth string `proxy:"auth,omitempty"`
CompLZO string `proxy:"comp-lzo,omitempty"`
CA string `proxy:"ca"`
Cert string `proxy:"cert,omitempty"`
Key string `proxy:"key,omitempty"`
TLSAuth string `proxy:"tls-auth,omitempty"`
KeyDirection string `proxy:"key-direction,omitempty"`
TLSCrypt string `proxy:"tls-crypt,omitempty"`
TLSCryptV2 string `proxy:"tls-crypt-v2,omitempty"`
Username string `proxy:"username,omitempty"`
Password string `proxy:"password,omitempty"`
PeerInfo map[string]string `proxy:"peer-info,omitempty"`
Ping int `proxy:"ping,omitempty"`
PingRestart int `proxy:"ping-restart,omitempty"`
TranWindow *int `proxy:"tran-window,omitempty"`
HandshakeTimeout int `proxy:"handshake-timeout,omitempty"`
MTU int `proxy:"mtu,omitempty"`
UDP bool `proxy:"udp,omitempty"`
IPStack IPStackOption `proxy:"ip-stack,omitempty"`
RemoteDnsResolve bool `proxy:"remote-dns-resolve,omitempty"`
Dns []string `proxy:"dns,omitempty"`
}
type ProxyAdapter ¶
type ProxyAdapter interface {
C.ProxyAdapter
DialOptions() []dialer.Option
ResolveUDP(ctx context.Context, metadata *C.Metadata) error
}
func NewAutoCloseProxyAdapter ¶
func NewAutoCloseProxyAdapter(adapter ProxyAdapter) ProxyAdapter
func NewSingMux ¶
func NewSingMux(option SingMuxOption, proxy ProxyAdapter) (ProxyAdapter, error)
type RealityOptions ¶
type RealityOptions struct {
PublicKey string `proxy:"public-key"`
ShortID string `proxy:"short-id,omitempty"`
SupportX25519MLKEM768 bool `proxy:"support-x25519mlkem768,omitempty"`
}
func (RealityOptions) Parse ¶
func (o RealityOptions) Parse() (*tlsC.RealityConfig, error)
type Reject ¶
type Reject struct {
*Base
// contains filtered or unexported fields
}
func NewPassRule ¶
func NewPassRule() *Reject
func NewRejectDrop ¶
func NewRejectDrop() *Reject
func NewRejectWithOption ¶
func NewRejectWithOption(option RejectOption) *Reject
func (*Reject) DialContext ¶
DialContext implements C.ProxyAdapter
func (*Reject) ListenPacketContext ¶
func (r *Reject) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (C.PacketConn, error)
ListenPacketContext implements C.ProxyAdapter
type RejectOption ¶
type RejectOption struct {
BasicOption
Name string `proxy:"name"`
}
type Rematch ¶
type Rematch struct {
*Base
// contains filtered or unexported fields
}
func NewRematch ¶
func NewRematch(option RematchOption) (*Rematch, error)
func (*Rematch) DialContext ¶
func (*Rematch) ListenPacketContext ¶
type RematchOption ¶
type RematchOption struct {
BasicOption
Name string `proxy:"name"`
TargetRematchName *string `proxy:"target-rematch-name,omitempty"`
TargetSubRule *string `proxy:"target-sub-rule,omitempty"`
}
type RestlsOptions ¶
type ShadowQuic ¶
type ShadowQuic struct {
*Base
// contains filtered or unexported fields
}
func NewShadowQuic ¶
func NewShadowQuic(option ShadowQuicOption) (*ShadowQuic, error)
func (*ShadowQuic) Close ¶
func (s *ShadowQuic) Close() error
func (*ShadowQuic) DialContext ¶
func (*ShadowQuic) ListenPacketContext ¶
func (s *ShadowQuic) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (C.PacketConn, error)
func (*ShadowQuic) ProxyInfo ¶
func (s *ShadowQuic) ProxyInfo() C.ProxyInfo
type ShadowQuicOption ¶
type ShadowQuicOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port"`
Username string `proxy:"username,omitempty"`
Password string `proxy:"password,omitempty"`
SNI string `proxy:"sni,omitempty"`
ALPN []string `proxy:"alpn,omitempty"`
QUICVersions []string `proxy:"quic-versions,omitempty"`
UDPOverStream bool `proxy:"udp-over-stream,omitempty"`
ZeroRTT bool `proxy:"zero-rtt,omitempty"`
KeepAliveInterval int `proxy:"keep-alive-interval,omitempty"`
CongestionController string `proxy:"congestion-controller,omitempty"`
Up string `proxy:"up,omitempty"`
Down string `proxy:"down,omitempty"`
CWND int `proxy:"cwnd,omitempty"`
BBRProfile string `proxy:"bbr-profile,omitempty"`
ReceiveWindowConn int `proxy:"recv-window-conn,omitempty"`
ReceiveWindow int `proxy:"recv-window,omitempty"`
DisableMTUDiscovery bool `proxy:"disable-mtu-discovery,omitempty"`
MaxDatagramFrameSize int `proxy:"max-datagram-frame-size,omitempty"`
MaxOpenStreams int `proxy:"max-open-streams,omitempty"`
}
type ShadowSocks ¶
type ShadowSocks struct {
*Base
// contains filtered or unexported fields
}
func NewShadowSocks ¶
func NewShadowSocks(option ShadowSocksOption) (*ShadowSocks, error)
func (*ShadowSocks) Close ¶
func (ss *ShadowSocks) Close() error
func (*ShadowSocks) DialContext ¶
DialContext implements C.ProxyAdapter
func (*ShadowSocks) ListenPacketContext ¶
func (ss *ShadowSocks) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
ListenPacketContext implements C.ProxyAdapter
func (*ShadowSocks) ProxyInfo ¶
func (ss *ShadowSocks) ProxyInfo() C.ProxyInfo
ProxyInfo implements C.ProxyAdapter
func (*ShadowSocks) StreamConnContext ¶
func (ss *ShadowSocks) StreamConnContext(ctx context.Context, c net.Conn, metadata *C.Metadata) (_ net.Conn, err error)
StreamConnContext implements C.ProxyAdapter
func (*ShadowSocks) SupportUOT ¶
func (ss *ShadowSocks) SupportUOT() bool
SupportUOT implements C.ProxyAdapter
type ShadowSocksOption ¶
type ShadowSocksOption struct {
BasicOption
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]any `proxy:"plugin-opts,omitempty"`
UDPOverTCP bool `proxy:"udp-over-tcp,omitempty"`
UDPOverTCPVersion int `proxy:"udp-over-tcp-version,omitempty"`
ClientFingerprint string `proxy:"client-fingerprint,omitempty"`
}
type ShadowSocksR ¶
type ShadowSocksR struct {
*Base
// contains filtered or unexported fields
}
func NewShadowSocksR ¶
func NewShadowSocksR(option ShadowSocksROption) (*ShadowSocksR, error)
func (*ShadowSocksR) DialContext ¶
func (ssr *ShadowSocksR) DialContext(ctx context.Context, metadata *C.Metadata) (_ C.Conn, err error)
DialContext implements C.ProxyAdapter
func (*ShadowSocksR) ListenPacketContext ¶
func (ssr *ShadowSocksR) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (C.PacketConn, error)
ListenPacketContext implements C.ProxyAdapter
func (*ShadowSocksR) ProxyInfo ¶
func (ssr *ShadowSocksR) ProxyInfo() C.ProxyInfo
ProxyInfo implements C.ProxyAdapter
type ShadowSocksROption ¶
type ShadowSocksROption struct {
BasicOption
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 ShadowTLSOptions ¶
type SingMux ¶
type SingMux struct {
ProxyAdapter
// contains filtered or unexported fields
}
func (*SingMux) DialContext ¶
func (*SingMux) ListenPacketContext ¶
func (*SingMux) ResetNetwork ¶
func (s *SingMux) ResetNetwork()
func (*SingMux) SupportUDP ¶
func (*SingMux) SupportUOT ¶
type SingMuxOption ¶
type SingMuxOption struct {
Enabled bool `proxy:"enabled,omitempty"`
Protocol string `proxy:"protocol,omitempty"`
MaxConnections int `proxy:"max-connections,omitempty"`
MinStreams int `proxy:"min-streams,omitempty"`
MaxStreams int `proxy:"max-streams,omitempty"`
Padding bool `proxy:"padding,omitempty"`
Statistic bool `proxy:"statistic,omitempty"`
OnlyTcp bool `proxy:"only-tcp,omitempty"`
BrutalOpts BrutalOption `proxy:"brutal-opts,omitempty"`
}
type Snell ¶
type Snell struct {
*Base
// contains filtered or unexported fields
}
func NewSnell ¶
func NewSnell(option SnellOption) (*Snell, error)
func (*Snell) DialContext ¶
DialContext implements C.ProxyAdapter
func (*Snell) ListenPacketContext ¶
func (s *Snell) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
ListenPacketContext implements C.ProxyAdapter
type SnellOption ¶
type SnellOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port"`
Psk string `proxy:"psk"`
UDP bool `proxy:"udp,omitempty"`
Version int `proxy:"version,omitempty"`
Reuse bool `proxy:"reuse,omitempty"`
ObfsOpts map[string]any `proxy:"obfs-opts,omitempty"`
ClientFingerprint string `proxy:"client-fingerprint,omitempty"`
}
type Socks5 ¶
type Socks5 struct {
*Base
// contains filtered or unexported fields
}
func NewSocks5 ¶
func NewSocks5(option Socks5Option) (*Socks5, error)
func (*Socks5) DialContext ¶
DialContext implements C.ProxyAdapter
func (*Socks5) ListenPacketContext ¶
func (ss *Socks5) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
ListenPacketContext implements C.ProxyAdapter
type Socks5Option ¶
type Socks5Option struct {
BasicOption
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"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
}
type Ssh ¶
type Ssh struct {
*Base
// contains filtered or unexported fields
}
func (*Ssh) DialContext ¶
type SshOption ¶
type SshOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port"`
UserName string `proxy:"username"`
Password string `proxy:"password,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
PrivateKeyPassphrase string `proxy:"private-key-passphrase,omitempty"`
HostKey []string `proxy:"host-key,omitempty"`
HostKeyAlgorithms []string `proxy:"host-key-algorithms,omitempty"`
}
type Sudoku ¶
type Sudoku struct {
*Base
// contains filtered or unexported fields
}
func NewSudoku ¶
func NewSudoku(option SudokuOption) (*Sudoku, error)
func (*Sudoku) DialContext ¶
DialContext implements C.ProxyAdapter
func (*Sudoku) ListenPacketContext ¶
func (s *Sudoku) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (C.PacketConn, error)
ListenPacketContext implements C.ProxyAdapter
type SudokuHTTPMaskOptions ¶
type SudokuOption ¶
type SudokuOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port"`
Key string `proxy:"key"`
AEADMethod string `proxy:"aead-method,omitempty"`
PaddingMin *int `proxy:"padding-min,omitempty"`
PaddingMax *int `proxy:"padding-max,omitempty"`
TableType string `proxy:"table-type,omitempty"` // "prefer_ascii", "prefer_entropy", or directional "up_ascii_down_entropy"/"up_entropy_down_ascii"
EnablePureDownlink *bool `proxy:"enable-pure-downlink,omitempty"`
HTTPMask *bool `proxy:"http-mask,omitempty"`
HTTPMaskMode string `proxy:"http-mask-mode,omitempty"` // "legacy" (default), "stream", "poll", "auto", "ws"
HTTPMaskTLS bool `proxy:"http-mask-tls,omitempty"` // only for http-mask-mode stream/poll/auto
HTTPMaskHost string `proxy:"http-mask-host,omitempty"` // optional Host/SNI override (domain or domain:port)
PathRoot string `proxy:"path-root,omitempty"` // optional first-level path prefix for HTTP tunnel endpoints
Multiplex string `proxy:"multiplex,omitempty"` // "off" (default), "auto" (HTTP reuse), "on" (session mux over raw TCP or HTTPMask)
HTTPMaskMultiplex string `proxy:"http-mask-multiplex,omitempty"` // legacy flat alias for multiplex
HTTPMaskOptions *SudokuHTTPMaskOptions `proxy:"httpmask,omitempty"`
CustomTable string `proxy:"custom-table,omitempty"` // optional custom byte layout, e.g. xpxvvpvv
CustomTables []string `proxy:"custom-tables,omitempty"` // optional table rotation patterns, overrides custom-table when non-empty
}
type TLSMirrorConnectionEnrolment ¶
type TLSMirrorConnectionEnrolment struct {
PrimaryIngressOutbound string `proxy:"primary-ingress-outbound,omitempty"`
PrimaryEgressOutbound string `proxy:"primary-egress-outbound,omitempty"`
}
func (*TLSMirrorConnectionEnrolment) Build ¶
func (e *TLSMirrorConnectionEnrolment) Build() *tlsmirror.ConnectionEnrolment
type TLSMirrorOptions ¶
type TLSMirrorOptions struct {
PrimaryKey string `proxy:"primary-key,omitempty"`
ExplicitNonceCipherSuites []uint16 `proxy:"explicit-nonce-ciphersuites,omitempty"`
DeferInstanceDerivedWriteTime TLSMirrorTimeSpec `proxy:"defer-instance-derived-write-time,omitempty"`
TransportLayerPadding TLSMirrorTransportLayerPadding `proxy:"transport-layer-padding,omitempty"`
ConnectionEnrolment *TLSMirrorConnectionEnrolment `proxy:"connection-enrolment,omitempty"`
EmbeddedTrafficGenerator TLSMirrorTrafficGenerator `proxy:"embedded-traffic-generator,omitempty"`
SequenceWatermarkingEnabled bool `proxy:"sequence-watermarking-enabled,omitempty"`
}
func (TLSMirrorOptions) Build ¶
func (o TLSMirrorOptions) Build() *tlsmirror.Config
type TLSMirrorTimeSpec ¶
type TLSMirrorTimeSpec struct {
BaseNanoseconds uint64 `proxy:"base-nanoseconds,omitempty"`
UniformRandomMultiplierNanoseconds uint64 `proxy:"uniform-random-multiplier-nanoseconds,omitempty"`
}
func (TLSMirrorTimeSpec) Build ¶
func (s TLSMirrorTimeSpec) Build() tlsmirror.TimeSpec
type TLSMirrorTrafficGenerator ¶
type TLSMirrorTrafficGenerator struct {
Steps []TLSMirrorTrafficStep `proxy:"steps,omitempty"`
}
func (TLSMirrorTrafficGenerator) Build ¶
func (g TLSMirrorTrafficGenerator) Build() *tlsmirror.TrafficGenerator
type TLSMirrorTrafficHeader ¶
type TLSMirrorTrafficHeader struct {
Name string `proxy:"name,omitempty"`
Value string `proxy:"value,omitempty"`
Values []string `proxy:"values,omitempty"`
}
func (TLSMirrorTrafficHeader) Build ¶
func (h TLSMirrorTrafficHeader) Build() tlsmirror.TrafficHeader
type TLSMirrorTrafficStep ¶
type TLSMirrorTrafficStep struct {
Name string `proxy:"name,omitempty"`
Host string `proxy:"host,omitempty"`
Path string `proxy:"path,omitempty"`
Method string `proxy:"method,omitempty"`
Headers []TLSMirrorTrafficHeader `proxy:"headers,omitempty"`
NextStep []TLSMirrorTrafficTransferCandidate `proxy:"next-step,omitempty"`
ConnectionReady bool `proxy:"connection-ready,omitempty"`
ConnectionRecallExit bool `proxy:"connection-recall-exit,omitempty"`
WaitTime TLSMirrorTimeSpec `proxy:"wait-time,omitempty"`
H2DoNotWaitForDownloadFinish bool `proxy:"h2-do-not-wait-for-download-finish,omitempty"`
}
func (TLSMirrorTrafficStep) Build ¶
func (s TLSMirrorTrafficStep) Build() tlsmirror.TrafficStep
type TLSMirrorTrafficTransferCandidate ¶
type TLSMirrorTrafficTransferCandidate struct {
Weight int32 `proxy:"weight,omitempty"`
GotoLocation int `proxy:"goto-location,omitempty"`
}
func (TLSMirrorTrafficTransferCandidate) Build ¶
func (c TLSMirrorTrafficTransferCandidate) Build() tlsmirror.TrafficTransferCandidate
type TLSMirrorTransportLayerPadding ¶
type TLSMirrorTransportLayerPadding struct {
Enabled bool `proxy:"enabled,omitempty"`
}
func (TLSMirrorTransportLayerPadding) Build ¶
func (p TLSMirrorTransportLayerPadding) Build() tlsmirror.TransportLayerPadding
type Tailscale ¶
type Tailscale struct {
*Base
}
func NewTailscale ¶
func NewTailscale(option TailscaleOption) (*Tailscale, error)
type TailscaleOption ¶
type TailscaleOption struct {
BasicOption
Name string `proxy:"name"`
Hostname string `proxy:"hostname,omitempty"`
AuthKey string `proxy:"auth-key,omitempty"`
ControlURL string `proxy:"control-url,omitempty"`
StateDir string `proxy:"state-dir,omitempty"`
Ephemeral bool `proxy:"ephemeral,omitempty"`
UDP bool `proxy:"udp,omitempty"`
AcceptRoutes *bool `proxy:"accept-routes,omitempty"`
ExitNode string `proxy:"exit-node,omitempty"`
ExitNodeAllowLANAccess *bool `proxy:"exit-node-allow-lan-access,omitempty"`
}
type Trojan ¶
type Trojan struct {
*Base
// contains filtered or unexported fields
}
func NewTrojan ¶
func NewTrojan(option TrojanOption) (*Trojan, error)
func (*Trojan) DialContext ¶
DialContext implements C.ProxyAdapter
func (*Trojan) ListenPacketContext ¶
func (t *Trojan) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
ListenPacketContext implements C.ProxyAdapter
func (*Trojan) StreamConnContext ¶
type TrojanOption ¶
type TrojanOption struct {
BasicOption
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"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
UDP bool `proxy:"udp,omitempty"`
Network string `proxy:"network,omitempty"`
ECHOpts ECHOptions `proxy:"ech-opts,omitempty"`
ShadowTLSOpts ShadowTLSOptions `proxy:"shadow-tls-opts,omitempty"`
RestlsOpts RestlsOptions `proxy:"restls-opts,omitempty"`
JLSOpts JLSOptions `proxy:"jls-opts,omitempty"`
RealityOpts RealityOptions `proxy:"reality-opts,omitempty"`
GrpcOpts GrpcOptions `proxy:"grpc-opts,omitempty"`
WSOpts WSOptions `proxy:"ws-opts,omitempty"`
SSOpts TrojanSSOption `proxy:"ss-opts,omitempty"`
ClientFingerprint string `proxy:"client-fingerprint,omitempty"`
}
type TrojanSSOption ¶
type TrojanSSOption struct {
Enabled bool `proxy:"enabled,omitempty"`
Method string `proxy:"method,omitempty"`
Password string `proxy:"password,omitempty"`
}
TrojanSSOption from https://github.com/p4gefau1t/trojan-go/blob/v0.10.6/tunnel/shadowsocks/config.go#L5
type TrustTunnel ¶
type TrustTunnel struct {
*Base
// contains filtered or unexported fields
}
func NewTrustTunnel ¶
func NewTrustTunnel(option TrustTunnelOption) (*TrustTunnel, error)
func (*TrustTunnel) DialContext ¶
func (*TrustTunnel) ListenPacketContext ¶
func (t *TrustTunnel) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
func (*TrustTunnel) ProxyInfo ¶
func (t *TrustTunnel) ProxyInfo() C.ProxyInfo
ProxyInfo implements C.ProxyAdapter
func (*TrustTunnel) SupportUOT ¶
func (t *TrustTunnel) SupportUOT() bool
SupportUOT implements C.ProxyAdapter
type TrustTunnelOption ¶
type TrustTunnelOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port"`
UserName string `proxy:"username,omitempty"`
Password string `proxy:"password,omitempty"`
ALPN []string `proxy:"alpn,omitempty"`
SNI string `proxy:"sni,omitempty"`
ECHOpts ECHOptions `proxy:"ech-opts,omitempty"`
ClientFingerprint string `proxy:"client-fingerprint,omitempty"`
SkipCertVerify bool `proxy:"skip-cert-verify,omitempty"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
UDP bool `proxy:"udp,omitempty"`
HealthCheck bool `proxy:"health-check,omitempty"`
// quic options
Quic bool `proxy:"quic,omitempty"`
CongestionController string `proxy:"congestion-controller,omitempty"`
CWND int `proxy:"cwnd,omitempty"`
BBRProfile string `proxy:"bbr-profile,omitempty"`
// reuse options
MaxConnections int `proxy:"max-connections,omitempty"`
MinStreams int `proxy:"min-streams,omitempty"`
MaxStreams int `proxy:"max-streams,omitempty"`
}
type Tuic ¶
type Tuic struct {
*Base
// contains filtered or unexported fields
}
func NewTuic ¶
func NewTuic(option TuicOption) (*Tuic, error)
func (*Tuic) DialContext ¶
DialContext implements C.ProxyAdapter
func (*Tuic) ListenPacketContext ¶
func (t *Tuic) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
ListenPacketContext implements C.ProxyAdapter
func (*Tuic) ResetNetwork ¶
func (t *Tuic) ResetNetwork()
type TuicOption ¶
type TuicOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port"`
Token string `proxy:"token,omitempty"`
UUID string `proxy:"uuid,omitempty"`
Password string `proxy:"password,omitempty"`
Ip string `proxy:"ip,omitempty"`
HeartbeatInterval int `proxy:"heartbeat-interval,omitempty"`
ALPN []string `proxy:"alpn,omitempty"`
ReduceRtt bool `proxy:"reduce-rtt,omitempty"`
RequestTimeout int `proxy:"request-timeout,omitempty"`
UdpRelayMode string `proxy:"udp-relay-mode,omitempty"`
CongestionController string `proxy:"congestion-controller,omitempty"`
DisableSni bool `proxy:"disable-sni,omitempty"`
MaxUdpRelayPacketSize int `proxy:"max-udp-relay-packet-size,omitempty"`
FastOpen bool `proxy:"fast-open,omitempty"`
MaxOpenStreams int `proxy:"max-open-streams,omitempty"`
CWND int `proxy:"cwnd,omitempty"`
BBRProfile string `proxy:"bbr-profile,omitempty"`
SkipCertVerify bool `proxy:"skip-cert-verify,omitempty"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
ReceiveWindowConn int `proxy:"recv-window-conn,omitempty"`
ReceiveWindow int `proxy:"recv-window,omitempty"`
DisableMTUDiscovery bool `proxy:"disable-mtu-discovery,omitempty"`
MaxDatagramFrameSize int `proxy:"max-datagram-frame-size,omitempty"`
SNI string `proxy:"sni,omitempty"`
ECHOpts ECHOptions `proxy:"ech-opts,omitempty"`
UDPOverStream bool `proxy:"udp-over-stream,omitempty"`
UDPOverStreamVersion int `proxy:"udp-over-stream-version,omitempty"`
}
type Vless ¶
type Vless struct {
*Base
// contains filtered or unexported fields
}
func NewVless ¶
func NewVless(option VlessOption) (*Vless, error)
func (*Vless) DialContext ¶
DialContext implements C.ProxyAdapter
func (*Vless) ListenPacketContext ¶
func (v *Vless) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
ListenPacketContext implements C.ProxyAdapter
func (*Vless) StreamConnContext ¶
type VlessOption ¶
type VlessOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port"`
UUID string `proxy:"uuid"`
Flow string `proxy:"flow,omitempty"`
TLS bool `proxy:"tls,omitempty"`
ALPN []string `proxy:"alpn,omitempty"`
UDP bool `proxy:"udp,omitempty"`
PacketAddr bool `proxy:"packet-addr,omitempty"`
XUDP bool `proxy:"xudp,omitempty"`
PacketEncoding string `proxy:"packet-encoding,omitempty"`
Encryption string `proxy:"encryption,omitempty"`
Network string `proxy:"network,omitempty"`
ECHOpts ECHOptions `proxy:"ech-opts,omitempty"`
ShadowTLSOpts ShadowTLSOptions `proxy:"shadow-tls-opts,omitempty"`
RestlsOpts RestlsOptions `proxy:"restls-opts,omitempty"`
JLSOpts JLSOptions `proxy:"jls-opts,omitempty"`
RealityOpts RealityOptions `proxy:"reality-opts,omitempty"`
HTTPOpts HTTPOptions `proxy:"http-opts,omitempty"`
HTTP2Opts HTTP2Options `proxy:"h2-opts,omitempty"`
GrpcOpts GrpcOptions `proxy:"grpc-opts,omitempty"`
WSOpts WSOptions `proxy:"ws-opts,omitempty"`
XHTTPOpts XHTTPOptions `proxy:"xhttp-opts,omitempty"`
WSHeaders map[string]string `proxy:"ws-headers,omitempty"`
SkipCertVerify bool `proxy:"skip-cert-verify,omitempty"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
ServerName string `proxy:"servername,omitempty"`
ClientFingerprint string `proxy:"client-fingerprint,omitempty"`
}
type Vmess ¶
type Vmess struct {
*Base
// contains filtered or unexported fields
}
func NewVmess ¶
func NewVmess(option VmessOption) (*Vmess, error)
func (*Vmess) DialContext ¶
DialContext implements C.ProxyAdapter
func (*Vmess) ListenPacketContext ¶
func (v *Vmess) ListenPacketContext(ctx context.Context, metadata *C.Metadata) (_ C.PacketConn, err error)
ListenPacketContext implements C.ProxyAdapter
func (*Vmess) StreamConnContext ¶
type VmessOption ¶
type VmessOption struct {
BasicOption
Name string `proxy:"name"`
Server string `proxy:"server"`
Port int `proxy:"port"`
UUID string `proxy:"uuid"`
AlterID int `proxy:"alterId"`
Cipher string `proxy:"cipher"`
UDP bool `proxy:"udp,omitempty"`
Network string `proxy:"network,omitempty"`
TLS bool `proxy:"tls,omitempty"`
ALPN []string `proxy:"alpn,omitempty"`
SkipCertVerify bool `proxy:"skip-cert-verify,omitempty"`
NameCertVerify string `proxy:"name-cert-verify,omitempty"`
Fingerprint string `proxy:"fingerprint,omitempty"`
Certificate string `proxy:"certificate,omitempty"`
PrivateKey string `proxy:"private-key,omitempty"`
ServerName string `proxy:"servername,omitempty"`
ECHOpts ECHOptions `proxy:"ech-opts,omitempty"`
ShadowTLSOpts ShadowTLSOptions `proxy:"shadow-tls-opts,omitempty"`
RestlsOpts RestlsOptions `proxy:"restls-opts,omitempty"`
JLSOpts JLSOptions `proxy:"jls-opts,omitempty"`
RealityOpts RealityOptions `proxy:"reality-opts,omitempty"`
TLSMirrorOpts TLSMirrorOptions `proxy:"tlsmirror-opts,omitempty"`
MekyaOpts MekyaOptions `proxy:"mekya-opts,omitempty"`
MKCPOpts MKCPOptions `proxy:"mkcp-opts,omitempty"`
HTTPOpts HTTPOptions `proxy:"http-opts,omitempty"`
HTTP2Opts HTTP2Options `proxy:"h2-opts,omitempty"`
GrpcOpts GrpcOptions `proxy:"grpc-opts,omitempty"`
WSOpts WSOptions `proxy:"ws-opts,omitempty"`
PacketAddr bool `proxy:"packet-addr,omitempty"`
XUDP bool `proxy:"xudp,omitempty"`
PacketEncoding string `proxy:"packet-encoding,omitempty"`
GlobalPadding bool `proxy:"global-padding,omitempty"`
AuthenticatedLength bool `proxy:"authenticated-length,omitempty"`
ClientFingerprint string `proxy:"client-fingerprint,omitempty"`
}
type WSOptions ¶
type WSOptions struct {
Path string `proxy:"path,omitempty"`
Headers map[string]string `proxy:"headers,omitempty"`
MaxEarlyData int `proxy:"max-early-data,omitempty"`
EarlyDataHeaderName string `proxy:"early-data-header-name,omitempty"`
V2rayHttpUpgrade bool `proxy:"v2ray-http-upgrade,omitempty"`
V2rayHttpUpgradeFastOpen bool `proxy:"v2ray-http-upgrade-fast-open,omitempty"`
}
type WireGuard ¶
type WireGuard struct {
*Base
// contains filtered or unexported fields
}
func NewWireGuard ¶
func NewWireGuard(option WireGuardOption) (*WireGuard, error)
func (*WireGuard) DialContext ¶
func (*WireGuard) IsL3Protocol ¶
IsL3Protocol implements C.ProxyAdapter
func (*WireGuard) ListenPacketContext ¶
type WireGuardOption ¶
type WireGuardOption struct {
BasicOption
WireGuardPeerOption
Name string `proxy:"name"`
Ip string `proxy:"ip,omitempty"`
Ipv6 string `proxy:"ipv6,omitempty"`
PrivateKey string `proxy:"private-key"`
Workers int `proxy:"workers,omitempty"`
MTU int `proxy:"mtu,omitempty"`
UDP bool `proxy:"udp,omitempty"`
PersistentKeepalive int `proxy:"persistent-keepalive,omitempty"`
IPStack IPStackOption `proxy:"ip-stack,omitempty"`
AmneziaWGOption *AmneziaWGOption `proxy:"amnezia-wg-option,omitempty"`
Peers []WireGuardPeerOption `proxy:"peers,omitempty"`
RemoteDnsResolve bool `proxy:"remote-dns-resolve,omitempty"`
Dns []string `proxy:"dns,omitempty"`
RefreshServerIPInterval int `proxy:"refresh-server-ip-interval,omitempty"`
}
type WireGuardPeerOption ¶
type WireGuardPeerOption struct {
Server string `proxy:"server,omitempty"`
Port int `proxy:"port,omitempty"`
PublicKey string `proxy:"public-key,omitempty"`
Reserved []uint8 `proxy:"reserved,omitempty"`
AllowedIPs []string `proxy:"allowed-ips,omitempty"`
}
func (WireGuardPeerOption) Addr ¶
func (option WireGuardPeerOption) Addr() M.Socksaddr
type XHTTPDownloadSettings ¶
type XHTTPDownloadSettings struct {
// xhttp part
Path *string `proxy:"path,omitempty"`
Host *string `proxy:"host,omitempty"`
Headers *map[string]string `proxy:"headers,omitempty"`
ReuseSettings *XHTTPReuseSettings `proxy:"reuse-settings,omitempty"` // aka XMUX
// proxy part
Server *string `proxy:"server,omitempty"`
Port *int `proxy:"port,omitempty"`
TLS *bool `proxy:"tls,omitempty"`
ALPN *[]string `proxy:"alpn,omitempty"`
ECHOpts *ECHOptions `proxy:"ech-opts,omitempty"`
ShadowTLSOpts *ShadowTLSOptions `proxy:"shadow-tls-opts,omitempty"`
RestlsOpts *RestlsOptions `proxy:"restls-opts,omitempty"`
JLSOpts *JLSOptions `proxy:"jls-opts,omitempty"`
RealityOpts *RealityOptions `proxy:"reality-opts,omitempty"`
SkipCertVerify *bool `proxy:"skip-cert-verify,omitempty"`
NameCertVerify *string `proxy:"name-cert-verify,omitempty"`
Fingerprint *string `proxy:"fingerprint,omitempty"`
Certificate *string `proxy:"certificate,omitempty"`
PrivateKey *string `proxy:"private-key,omitempty"`
ServerName *string `proxy:"servername,omitempty"`
ClientFingerprint *string `proxy:"client-fingerprint,omitempty"`
}
type XHTTPOptions ¶
type XHTTPOptions struct {
Path string `proxy:"path,omitempty"`
Host string `proxy:"host,omitempty"`
Mode string `proxy:"mode,omitempty"`
Headers map[string]string `proxy:"headers,omitempty"`
NoGRPCHeader bool `proxy:"no-grpc-header,omitempty"`
XPaddingBytes string `proxy:"x-padding-bytes,omitempty"`
XPaddingObfsMode bool `proxy:"x-padding-obfs-mode,omitempty"`
XPaddingKey string `proxy:"x-padding-key,omitempty"`
XPaddingHeader string `proxy:"x-padding-header,omitempty"`
XPaddingPlacement string `proxy:"x-padding-placement,omitempty"`
XPaddingMethod string `proxy:"x-padding-method,omitempty"`
UplinkHTTPMethod string `proxy:"uplink-http-method,omitempty"`
SessionPlacement string `proxy:"session-placement,omitempty"`
SessionKey string `proxy:"session-key,omitempty"`
SessionTable string `proxy:"session-table,omitempty"`
SessionLength string `proxy:"session-length,omitempty"`
SeqPlacement string `proxy:"seq-placement,omitempty"`
SeqKey string `proxy:"seq-key,omitempty"`
UplinkDataPlacement string `proxy:"uplink-data-placement,omitempty"`
UplinkDataKey string `proxy:"uplink-data-key,omitempty"`
UplinkChunkSize string `proxy:"uplink-chunk-size,omitempty"`
ScMaxEachPostBytes string `proxy:"sc-max-each-post-bytes,omitempty"`
ScMinPostsIntervalMs string `proxy:"sc-min-posts-interval-ms,omitempty"`
ReuseSettings *XHTTPReuseSettings `proxy:"reuse-settings,omitempty"` // aka XMUX
DownloadSettings *XHTTPDownloadSettings `proxy:"download-settings,omitempty"`
}
type XHTTPReuseSettings ¶
type XHTTPReuseSettings struct {
MaxConcurrency string `proxy:"max-concurrency,omitempty"`
MaxConnections string `proxy:"max-connections,omitempty"`
CMaxReuseTimes string `proxy:"c-max-reuse-times,omitempty"`
HMaxRequestTimes string `proxy:"h-max-request-times,omitempty"`
HMaxReusableSecs string `proxy:"h-max-reusable-secs,omitempty"`
HKeepAlivePeriod int `proxy:"h-keep-alive-period,omitempty"`
}
type ZeroTier ¶
type ZeroTier struct {
*Base
// contains filtered or unexported fields
}
func NewZeroTier ¶
func NewZeroTier(option ZeroTierOption) (*ZeroTier, error)
func (*ZeroTier) DialContext ¶
func (*ZeroTier) ListenPacketContext ¶
type ZeroTierOption ¶
type ZeroTierOption struct {
BasicOption
Name string `proxy:"name"`
Network string `proxy:"network"`
StateDir string `proxy:"state-dir,omitempty"`
IdentitySecret string `proxy:"identity-secret,omitempty"`
Planet string `proxy:"planet,omitempty"`
MTU int `proxy:"mtu,omitempty"`
IPStack IPStackOption `proxy:"ip-stack,omitempty"`
PhysicalMTU int `proxy:"physical-mtu,omitempty"`
UDP bool `proxy:"udp,omitempty"`
RemoteDnsResolve bool `proxy:"remote-dns-resolve,omitempty"`
Dns []string `proxy:"dns,omitempty"`
LowBandwidth bool `proxy:"low-bandwidth,omitempty"`
EncryptedHello bool `proxy:"encrypted-hello,omitempty"`
PrimaryPort int `proxy:"primary-port,omitempty"`
SecondaryPort int `proxy:"secondary-port,omitempty"`
TCPFallbackMode string `proxy:"tcp-fallback-mode,omitempty"`
TCPFallbackRelay string `proxy:"tcp-fallback-relay,omitempty"`
Orbit []ZeroTierOrbitOption `proxy:"orbit,omitempty"`
RemoteTraceTarget string `proxy:"remote-trace-target,omitempty"`
RemoteTraceLevel uint64 `proxy:"remote-trace-level,omitempty"`
}
type ZeroTierOrbitOption ¶
Source Files
¶
- anytls.go
- base.go
- direct.go
- dns.go
- easytier.go
- ech.go
- gost_relay.go
- hako_network_reset.go
- http.go
- hysteria.go
- hysteria2.go
- jls.go
- masque.go
- mieru.go
- openvpn.go
- physical_packet.go
- reality.go
- reject.go
- rematch.go
- restls.go
- shadowquic.go
- shadowsocks.go
- shadowsocksr.go
- shadowtls.go
- singmux.go
- snell.go
- socks5.go
- ssh.go
- sudoku.go
- tailscale_stub.go
- tlsmirror.go
- trojan.go
- trusttunnel.go
- tuic.go
- util.go
- vless.go
- vmess.go
- wireguard.go
- zerotier.go