Documentation ¶
Index ¶
- func DNSQueryTypeToString(queryType uint16) string
- type ACMEDNS01AliDNSOptions
- type ACMEDNS01ChallengeOptions
- type ACMEDNS01CloudflareOptions
- type ACMEExternalAccountOptions
- type BrutalOptions
- type CacheFileOptions
- type ClashAPIOptions
- type DNSClientOptions
- type DNSFakeIPOptions
- type DNSOptions
- type DNSQueryType
- type DNSRouteActionOptions
- type DNSRouteOptionsActionOptions
- type DNSRule
- type DNSRuleAction
- type DNSServerOptions
- type DebugOptions
- type DefaultDNSRule
- type DefaultHeadlessRule
- type DefaultRule
- type DialerOptions
- type DialerOptionsWrapper
- type DirectActionOptions
- type DirectInboundOptions
- type DirectOutboundOptions
- type DomainStrategy
- type Endpoint
- type EndpointOptionsRegistry
- type ExperimentalOptions
- type FwMark
- type GeoIPOptions
- type GeositeOptions
- type HTTPMixedInboundOptions
- type HTTPOutboundOptions
- type HTTPProxyOptions
- type HeadlessRule
- type Hysteria2InboundOptions
- type Hysteria2Masquerade
- type Hysteria2MasqueradeFile
- type Hysteria2MasqueradeProxy
- type Hysteria2MasqueradeString
- type Hysteria2Obfs
- type Hysteria2OutboundOptions
- type Hysteria2User
- type HysteriaInboundOptions
- type HysteriaOutboundOptions
- type HysteriaUser
- type Inbound
- type InboundACMEOptions
- type InboundECHOptions
- type InboundMultiplexOptions
- type InboundOptionsdeprecated
- type InboundOptionsRegistry
- type InboundRealityHandshakeOptions
- type InboundRealityOptions
- type InboundTLSOptions
- type InboundTLSOptionsContainer
- type InboundTLSOptionsWrapper
- type InterfaceType
- type LegacyWireGuardOutboundOptions
- type LegacyWireGuardPeer
- type ListenOptions
- type ListenOptionsWrapper
- type LocalRuleSet
- type LogOptions
- type LogicalDNSRule
- type LogicalHeadlessRule
- type LogicalRule
- type MemoryBytes
- type NTPOptions
- type NaiveInboundOptions
- type NetworkList
- type NetworkStrategy
- type OnDemandOptions
- type OnDemandRule
- type OnDemandRuleAction
- type OnDemandRuleInterfaceType
- type Options
- type Outbound
- type OutboundECHOptions
- type OutboundMultiplexOptions
- type OutboundOptionsRegistry
- type OutboundRealityOptions
- type OutboundTLSOptions
- type OutboundTLSOptionsContainer
- type OutboundTLSOptionsWrapper
- type OutboundUTLSOptions
- type PlainRuleSet
- type PlainRuleSetCompat
- type RawDefaultDNSRule
- type RawDefaultRule
- type RawLogicalDNSRule
- type RawLogicalRule
- type RawRouteOptionsActionOptions
- type RedirectInboundOptions
- type RejectActionOptions
- type RemoteRuleSet
- type RouteActionOptions
- type RouteActionResolve
- type RouteActionSniff
- type RouteOptions
- type RouteOptionsActionOptions
- type Rule
- type RuleAction
- type RuleSet
- type SOCKSOutboundOptions
- type SSHOutboundOptions
- type SelectorOutboundOptions
- type ServerOptions
- type ServerOptionsWrapper
- type ShadowTLSHandshakeOptions
- type ShadowTLSInboundOptions
- type ShadowTLSOutboundOptions
- type ShadowTLSUser
- type ShadowsocksDestination
- type ShadowsocksInboundOptions
- type ShadowsocksOutboundOptions
- type ShadowsocksROutboundOptions
- type ShadowsocksUser
- type SocksInboundOptions
- type StubOptions
- type TProxyInboundOptions
- type TUICInboundOptions
- type TUICOutboundOptions
- type TUICUser
- type TorOutboundOptions
- type TrojanInboundOptions
- type TrojanOutboundOptions
- type TrojanUser
- type TunInboundOptions
- type TunPlatformOptions
- type UDPOverTCPOptions
- type UDPTimeoutCompat
- type URLTestOutboundOptions
- type V2RayAPIOptions
- type V2RayGRPCOptions
- type V2RayHTTPOptions
- type V2RayHTTPUpgradeOptions
- type V2RayQUICOptions
- type V2RayStatsServiceOptions
- type V2RayTransportOptions
- type V2RayWebsocketOptions
- type VLESSInboundOptions
- type VLESSOutboundOptions
- type VLESSUser
- type VMessInboundOptions
- type VMessOutboundOptions
- type VMessUser
- type WireGuardEndpointOptions
- type WireGuardPeer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DNSQueryTypeToString ¶ added in v1.2.0
Types ¶
type ACMEDNS01AliDNSOptions ¶ added in v1.5.0
type ACMEDNS01ChallengeOptions ¶ added in v1.5.0
type ACMEDNS01ChallengeOptions _ACMEDNS01ChallengeOptions
func (ACMEDNS01ChallengeOptions) MarshalJSON ¶ added in v1.5.0
func (o ACMEDNS01ChallengeOptions) MarshalJSON() ([]byte, error)
func (*ACMEDNS01ChallengeOptions) UnmarshalJSON ¶ added in v1.5.0
func (o *ACMEDNS01ChallengeOptions) UnmarshalJSON(bytes []byte) error
type ACMEDNS01CloudflareOptions ¶ added in v1.5.0
type ACMEDNS01CloudflareOptions struct {
APIToken string `json:"api_token,omitempty"`
}
type ACMEExternalAccountOptions ¶ added in v1.0.1
type BrutalOptions ¶ added in v1.7.0
type CacheFileOptions ¶ added in v1.8.0
type CacheFileOptions struct { Enabled bool `json:"enabled,omitempty"` Path string `json:"path,omitempty"` CacheID string `json:"cache_id,omitempty"` StoreFakeIP bool `json:"store_fakeip,omitempty"` StoreRDRC bool `json:"store_rdrc,omitempty"` RDRCTimeout badoption.Duration `json:"rdrc_timeout,omitempty"` }
type ClashAPIOptions ¶
type ClashAPIOptions struct { ExternalController string `json:"external_controller,omitempty"` ExternalUI string `json:"external_ui,omitempty"` ExternalUIDownloadURL string `json:"external_ui_download_url,omitempty"` ExternalUIDownloadDetour string `json:"external_ui_download_detour,omitempty"` Secret string `json:"secret,omitempty"` DefaultMode string `json:"default_mode,omitempty"` ModeList []string `json:"-"` AccessControlAllowOrigin badoption.Listable[string] `json:"access_control_allow_origin,omitempty"` AccessControlAllowPrivateNetwork bool `json:"access_control_allow_private_network,omitempty"` // Deprecated: migrated to global cache file CacheFile string `json:"cache_file,omitempty"` // Deprecated: migrated to global cache file CacheID string `json:"cache_id,omitempty"` // Deprecated: migrated to global cache file StoreMode bool `json:"store_mode,omitempty"` // Deprecated: migrated to global cache file StoreSelected bool `json:"store_selected,omitempty"` // Deprecated: migrated to global cache file StoreFakeIP bool `json:"store_fakeip,omitempty"` }
type DNSClientOptions ¶
type DNSClientOptions struct { Strategy DomainStrategy `json:"strategy,omitempty"` DisableCache bool `json:"disable_cache,omitempty"` DisableExpire bool `json:"disable_expire,omitempty"` IndependentCache bool `json:"independent_cache,omitempty"` CacheCapacity uint32 `json:"cache_capacity,omitempty"` ClientSubnet *badoption.Prefixable `json:"client_subnet,omitempty"` }
type DNSFakeIPOptions ¶ added in v1.3.0
type DNSOptions ¶
type DNSOptions struct { Servers []DNSServerOptions `json:"servers,omitempty"` Rules []DNSRule `json:"rules,omitempty"` Final string `json:"final,omitempty"` ReverseMapping bool `json:"reverse_mapping,omitempty"` FakeIP *DNSFakeIPOptions `json:"fakeip,omitempty"` DNSClientOptions }
type DNSQueryType ¶ added in v1.2.0
type DNSQueryType uint16
func (DNSQueryType) MarshalJSON ¶ added in v1.2.0
func (t DNSQueryType) MarshalJSON() ([]byte, error)
func (DNSQueryType) String ¶ added in v1.8.0
func (t DNSQueryType) String() string
func (*DNSQueryType) UnmarshalJSON ¶ added in v1.2.0
func (t *DNSQueryType) UnmarshalJSON(bytes []byte) error
type DNSRouteActionOptions ¶
type DNSRouteActionOptions struct { Server string `json:"server,omitempty"` DisableCache bool `json:"disable_cache,omitempty"` RewriteTTL *uint32 `json:"rewrite_ttl,omitempty"` ClientSubnet *badoption.Prefixable `json:"client_subnet,omitempty"` }
type DNSRouteOptionsActionOptions ¶
type DNSRouteOptionsActionOptions _DNSRouteOptionsActionOptions
func (*DNSRouteOptionsActionOptions) UnmarshalJSON ¶
func (r *DNSRouteOptionsActionOptions) UnmarshalJSON(data []byte) error
type DNSRuleAction ¶
type DNSRuleAction _DNSRuleAction
func (DNSRuleAction) MarshalJSON ¶
func (r DNSRuleAction) MarshalJSON() ([]byte, error)
func (*DNSRuleAction) UnmarshalJSONContext ¶
func (r *DNSRuleAction) UnmarshalJSONContext(ctx context.Context, data []byte) error
type DNSServerOptions ¶
type DNSServerOptions struct { Tag string `json:"tag,omitempty"` Address string `json:"address"` AddressResolver string `json:"address_resolver,omitempty"` AddressStrategy DomainStrategy `json:"address_strategy,omitempty"` AddressFallbackDelay badoption.Duration `json:"address_fallback_delay,omitempty"` Strategy DomainStrategy `json:"strategy,omitempty"` Detour string `json:"detour,omitempty"` ClientSubnet *badoption.Prefixable `json:"client_subnet,omitempty"` }
type DebugOptions ¶ added in v1.2.0
type DebugOptions struct { Listen string `json:"listen,omitempty"` GCPercent *int `json:"gc_percent,omitempty"` MaxStack *int `json:"max_stack,omitempty"` MaxThreads *int `json:"max_threads,omitempty"` PanicOnFault *bool `json:"panic_on_fault,omitempty"` TraceBack string `json:"trace_back,omitempty"` MemoryLimit MemoryBytes `json:"memory_limit,omitempty"` OOMKiller *bool `json:"oom_killer,omitempty"` }
type DefaultDNSRule ¶
type DefaultDNSRule struct { RawDefaultDNSRule DNSRuleAction }
func (DefaultDNSRule) IsValid ¶
func (r DefaultDNSRule) IsValid() bool
func (DefaultDNSRule) MarshalJSON ¶
func (r DefaultDNSRule) MarshalJSON() ([]byte, error)
func (*DefaultDNSRule) UnmarshalJSONContext ¶
func (r *DefaultDNSRule) UnmarshalJSONContext(ctx context.Context, data []byte) error
type DefaultHeadlessRule ¶ added in v1.8.0
type DefaultHeadlessRule struct { QueryType badoption.Listable[DNSQueryType] `json:"query_type,omitempty"` Network badoption.Listable[string] `json:"network,omitempty"` Domain badoption.Listable[string] `json:"domain,omitempty"` DomainSuffix badoption.Listable[string] `json:"domain_suffix,omitempty"` DomainKeyword badoption.Listable[string] `json:"domain_keyword,omitempty"` DomainRegex badoption.Listable[string] `json:"domain_regex,omitempty"` SourceIPCIDR badoption.Listable[string] `json:"source_ip_cidr,omitempty"` IPCIDR badoption.Listable[string] `json:"ip_cidr,omitempty"` SourcePort badoption.Listable[uint16] `json:"source_port,omitempty"` SourcePortRange badoption.Listable[string] `json:"source_port_range,omitempty"` Port badoption.Listable[uint16] `json:"port,omitempty"` PortRange badoption.Listable[string] `json:"port_range,omitempty"` ProcessName badoption.Listable[string] `json:"process_name,omitempty"` ProcessPath badoption.Listable[string] `json:"process_path,omitempty"` ProcessPathRegex badoption.Listable[string] `json:"process_path_regex,omitempty"` PackageName badoption.Listable[string] `json:"package_name,omitempty"` NetworkType badoption.Listable[InterfaceType] `json:"network_type,omitempty"` NetworkIsExpensive bool `json:"network_is_expensive,omitempty"` NetworkIsConstrained bool `json:"network_is_constrained,omitempty"` WIFISSID badoption.Listable[string] `json:"wifi_ssid,omitempty"` WIFIBSSID badoption.Listable[string] `json:"wifi_bssid,omitempty"` Invert bool `json:"invert,omitempty"` DomainMatcher *domain.Matcher `json:"-"` SourceIPSet *netipx.IPSet `json:"-"` IPSet *netipx.IPSet `json:"-"` AdGuardDomain badoption.Listable[string] `json:"-"` AdGuardDomainMatcher *domain.AdGuardMatcher `json:"-"` }
func (DefaultHeadlessRule) IsValid ¶ added in v1.8.0
func (r DefaultHeadlessRule) IsValid() bool
type DefaultRule ¶
type DefaultRule struct { RawDefaultRule RuleAction }
func (*DefaultRule) IsValid ¶
func (r *DefaultRule) IsValid() bool
func (DefaultRule) MarshalJSON ¶
func (r DefaultRule) MarshalJSON() ([]byte, error)
func (*DefaultRule) UnmarshalJSON ¶ added in v1.10.0
func (r *DefaultRule) UnmarshalJSON(data []byte) error
type DialerOptions ¶
type DialerOptions struct { Detour string `json:"detour,omitempty"` BindInterface string `json:"bind_interface,omitempty"` Inet4BindAddress *badoption.Addr `json:"inet4_bind_address,omitempty"` Inet6BindAddress *badoption.Addr `json:"inet6_bind_address,omitempty"` ProtectPath string `json:"protect_path,omitempty"` RoutingMark FwMark `json:"routing_mark,omitempty"` ReuseAddr bool `json:"reuse_addr,omitempty"` ConnectTimeout badoption.Duration `json:"connect_timeout,omitempty"` TCPFastOpen bool `json:"tcp_fast_open,omitempty"` TCPMultiPath bool `json:"tcp_multi_path,omitempty"` UDPFragment *bool `json:"udp_fragment,omitempty"` UDPFragmentDefault bool `json:"-"` DomainStrategy DomainStrategy `json:"domain_strategy,omitempty"` NetworkStrategy *NetworkStrategy `json:"network_strategy,omitempty"` NetworkType badoption.Listable[InterfaceType] `json:"network_type,omitempty"` FallbackNetworkType badoption.Listable[InterfaceType] `json:"fallback_network_type,omitempty"` FallbackDelay badoption.Duration `json:"fallback_delay,omitempty"` IsWireGuardListener bool `json:"-"` }
func (*DialerOptions) ReplaceDialerOptions ¶ added in v1.8.0
func (o *DialerOptions) ReplaceDialerOptions(options DialerOptions)
func (*DialerOptions) TakeDialerOptions ¶ added in v1.8.0
func (o *DialerOptions) TakeDialerOptions() DialerOptions
type DialerOptionsWrapper ¶ added in v1.8.0
type DialerOptionsWrapper interface { TakeDialerOptions() DialerOptions ReplaceDialerOptions(options DialerOptions) }
type DirectActionOptions ¶
type DirectActionOptions _DirectActionOptions
func (DirectActionOptions) Descriptions ¶
func (d DirectActionOptions) Descriptions() []string
func (*DirectActionOptions) UnmarshalJSON ¶
func (d *DirectActionOptions) UnmarshalJSON(data []byte) error
type DirectInboundOptions ¶
type DirectInboundOptions struct { ListenOptions Network NetworkList `json:"network,omitempty"` OverrideAddress string `json:"override_address,omitempty"` OverridePort uint16 `json:"override_port,omitempty"` }
type DirectOutboundOptions ¶
type DirectOutboundOptions _DirectOutboundOptions
func (*DirectOutboundOptions) UnmarshalJSONContext ¶
func (d *DirectOutboundOptions) UnmarshalJSONContext(ctx context.Context, content []byte) error
type DomainStrategy ¶
type DomainStrategy dns.DomainStrategy
func (DomainStrategy) MarshalJSON ¶
func (s DomainStrategy) MarshalJSON() ([]byte, error)
func (DomainStrategy) String ¶
func (s DomainStrategy) String() string
func (*DomainStrategy) UnmarshalJSON ¶
func (s *DomainStrategy) UnmarshalJSON(bytes []byte) error
type EndpointOptionsRegistry ¶
type ExperimentalOptions ¶
type ExperimentalOptions struct { CacheFile *CacheFileOptions `json:"cache_file,omitempty"` ClashAPI *ClashAPIOptions `json:"clash_api,omitempty"` V2RayAPI *V2RayAPIOptions `json:"v2ray_api,omitempty"` Debug *DebugOptions `json:"debug,omitempty"` }
type FwMark ¶ added in v1.10.0
type FwMark uint32
func (FwMark) MarshalJSON ¶ added in v1.10.0
func (*FwMark) UnmarshalJSON ¶ added in v1.10.0
type GeoIPOptions ¶
type GeositeOptions ¶
type HTTPMixedInboundOptions ¶
type HTTPMixedInboundOptions struct { ListenOptions Users []auth.User `json:"users,omitempty"` SetSystemProxy bool `json:"set_system_proxy,omitempty"` InboundTLSOptionsContainer }
type HTTPOutboundOptions ¶
type HTTPOutboundOptions struct { DialerOptions ServerOptions Username string `json:"username,omitempty"` Password string `json:"password,omitempty"` OutboundTLSOptionsContainer Path string `json:"path,omitempty"` Headers badoption.HTTPHeader `json:"headers,omitempty"` }
type HTTPProxyOptions ¶ added in v1.2.0
type HeadlessRule ¶ added in v1.8.0
type HeadlessRule _HeadlessRule
func (HeadlessRule) IsValid ¶ added in v1.8.0
func (r HeadlessRule) IsValid() bool
func (HeadlessRule) MarshalJSON ¶ added in v1.8.0
func (r HeadlessRule) MarshalJSON() ([]byte, error)
func (*HeadlessRule) UnmarshalJSON ¶ added in v1.8.0
func (r *HeadlessRule) UnmarshalJSON(bytes []byte) error
type Hysteria2InboundOptions ¶ added in v1.4.3
type Hysteria2InboundOptions struct { ListenOptions UpMbps int `json:"up_mbps,omitempty"` DownMbps int `json:"down_mbps,omitempty"` Obfs *Hysteria2Obfs `json:"obfs,omitempty"` Users []Hysteria2User `json:"users,omitempty"` IgnoreClientBandwidth bool `json:"ignore_client_bandwidth,omitempty"` InboundTLSOptionsContainer Masquerade *Hysteria2Masquerade `json:"masquerade,omitempty"` BrutalDebug bool `json:"brutal_debug,omitempty"` }
type Hysteria2Masquerade ¶
type Hysteria2Masquerade _Hysteria2Masquerade
func (Hysteria2Masquerade) MarshalJSON ¶
func (m Hysteria2Masquerade) MarshalJSON() ([]byte, error)
func (*Hysteria2Masquerade) UnmarshalJSON ¶
func (m *Hysteria2Masquerade) UnmarshalJSON(bytes []byte) error
type Hysteria2MasqueradeFile ¶
type Hysteria2MasqueradeFile struct {
Directory string `json:"directory"`
}
type Hysteria2MasqueradeString ¶
type Hysteria2MasqueradeString struct { StatusCode int `json:"status_code,omitempty"` Headers badoption.HTTPHeader `json:"headers,omitempty"` Content string `json:"content"` }
type Hysteria2Obfs ¶ added in v1.4.3
type Hysteria2OutboundOptions ¶ added in v1.4.3
type Hysteria2OutboundOptions struct { DialerOptions ServerOptions UpMbps int `json:"up_mbps,omitempty"` DownMbps int `json:"down_mbps,omitempty"` Obfs *Hysteria2Obfs `json:"obfs,omitempty"` Password string `json:"password,omitempty"` Network NetworkList `json:"network,omitempty"` OutboundTLSOptionsContainer BrutalDebug bool `json:"brutal_debug,omitempty"` }
type Hysteria2User ¶ added in v1.4.3
type HysteriaInboundOptions ¶ added in v1.0.1
type HysteriaInboundOptions struct { ListenOptions Up string `json:"up,omitempty"` UpMbps int `json:"up_mbps,omitempty"` Down string `json:"down,omitempty"` DownMbps int `json:"down_mbps,omitempty"` Obfs string `json:"obfs,omitempty"` Users []HysteriaUser `json:"users,omitempty"` ReceiveWindowConn uint64 `json:"recv_window_conn,omitempty"` ReceiveWindowClient uint64 `json:"recv_window_client,omitempty"` MaxConnClient int `json:"max_conn_client,omitempty"` DisableMTUDiscovery bool `json:"disable_mtu_discovery,omitempty"` InboundTLSOptionsContainer }
type HysteriaOutboundOptions ¶ added in v1.0.1
type HysteriaOutboundOptions struct { DialerOptions ServerOptions Up string `json:"up,omitempty"` UpMbps int `json:"up_mbps,omitempty"` Down string `json:"down,omitempty"` DownMbps int `json:"down_mbps,omitempty"` Obfs string `json:"obfs,omitempty"` Auth []byte `json:"auth,omitempty"` AuthString string `json:"auth_str,omitempty"` ReceiveWindowConn uint64 `json:"recv_window_conn,omitempty"` ReceiveWindow uint64 `json:"recv_window,omitempty"` DisableMTUDiscovery bool `json:"disable_mtu_discovery,omitempty"` Network NetworkList `json:"network,omitempty"` OutboundTLSOptionsContainer }
type HysteriaUser ¶ added in v1.1.0
type InboundACMEOptions ¶ added in v1.0.1
type InboundACMEOptions struct { Domain badoption.Listable[string] `json:"domain,omitempty"` DataDirectory string `json:"data_directory,omitempty"` DefaultServerName string `json:"default_server_name,omitempty"` Email string `json:"email,omitempty"` Provider string `json:"provider,omitempty"` DisableHTTPChallenge bool `json:"disable_http_challenge,omitempty"` DisableTLSALPNChallenge bool `json:"disable_tls_alpn_challenge,omitempty"` AlternativeHTTPPort uint16 `json:"alternative_http_port,omitempty"` AlternativeTLSPort uint16 `json:"alternative_tls_port,omitempty"` ExternalAccount *ACMEExternalAccountOptions `json:"external_account,omitempty"` DNS01Challenge *ACMEDNS01ChallengeOptions `json:"dns01_challenge,omitempty"` }
type InboundECHOptions ¶ added in v1.4.3
type InboundECHOptions struct { Enabled bool `json:"enabled,omitempty"` PQSignatureSchemesEnabled bool `json:"pq_signature_schemes_enabled,omitempty"` DynamicRecordSizingDisabled bool `json:"dynamic_record_sizing_disabled,omitempty"` Key badoption.Listable[string] `json:"key,omitempty"` KeyPath string `json:"key_path,omitempty"` }
type InboundMultiplexOptions ¶ added in v1.7.0
type InboundMultiplexOptions struct { Enabled bool `json:"enabled,omitempty"` Padding bool `json:"padding,omitempty"` Brutal *BrutalOptions `json:"brutal,omitempty"` }
type InboundOptions
deprecated
type InboundOptions struct { SniffEnabled bool `json:"sniff,omitempty"` SniffOverrideDestination bool `json:"sniff_override_destination,omitempty"` SniffTimeout badoption.Duration `json:"sniff_timeout,omitempty"` DomainStrategy DomainStrategy `json:"domain_strategy,omitempty"` UDPDisableDomainUnmapping bool `json:"udp_disable_domain_unmapping,omitempty"` Detour string `json:"detour,omitempty"` }
Deprecated: Use rule action instead
type InboundOptionsRegistry ¶
type InboundRealityHandshakeOptions ¶ added in v1.2.0
type InboundRealityHandshakeOptions struct { ServerOptions DialerOptions }
type InboundRealityOptions ¶ added in v1.2.0
type InboundRealityOptions struct { Enabled bool `json:"enabled,omitempty"` Handshake InboundRealityHandshakeOptions `json:"handshake,omitempty"` PrivateKey string `json:"private_key,omitempty"` ShortID badoption.Listable[string] `json:"short_id,omitempty"` MaxTimeDifference badoption.Duration `json:"max_time_difference,omitempty"` }
type InboundTLSOptions ¶
type InboundTLSOptions struct { Enabled bool `json:"enabled,omitempty"` ServerName string `json:"server_name,omitempty"` Insecure bool `json:"insecure,omitempty"` ALPN badoption.Listable[string] `json:"alpn,omitempty"` MinVersion string `json:"min_version,omitempty"` MaxVersion string `json:"max_version,omitempty"` CipherSuites badoption.Listable[string] `json:"cipher_suites,omitempty"` Certificate badoption.Listable[string] `json:"certificate,omitempty"` CertificatePath string `json:"certificate_path,omitempty"` Key badoption.Listable[string] `json:"key,omitempty"` KeyPath string `json:"key_path,omitempty"` ACME *InboundACMEOptions `json:"acme,omitempty"` ECH *InboundECHOptions `json:"ech,omitempty"` Reality *InboundRealityOptions `json:"reality,omitempty"` }
type InboundTLSOptionsContainer ¶ added in v1.8.0
type InboundTLSOptionsContainer struct {
TLS *InboundTLSOptions `json:"tls,omitempty"`
}
func (*InboundTLSOptionsContainer) ReplaceInboundTLSOptions ¶ added in v1.8.0
func (o *InboundTLSOptionsContainer) ReplaceInboundTLSOptions(options *InboundTLSOptions)
func (*InboundTLSOptionsContainer) TakeInboundTLSOptions ¶ added in v1.8.0
func (o *InboundTLSOptionsContainer) TakeInboundTLSOptions() *InboundTLSOptions
type InboundTLSOptionsWrapper ¶ added in v1.8.0
type InboundTLSOptionsWrapper interface { TakeInboundTLSOptions() *InboundTLSOptions ReplaceInboundTLSOptions(options *InboundTLSOptions) }
type InterfaceType ¶
type InterfaceType C.InterfaceType
func (InterfaceType) Build ¶
func (t InterfaceType) Build() C.InterfaceType
func (InterfaceType) MarshalJSON ¶
func (t InterfaceType) MarshalJSON() ([]byte, error)
func (*InterfaceType) UnmarshalJSON ¶
func (t *InterfaceType) UnmarshalJSON(content []byte) error
type LegacyWireGuardOutboundOptions ¶
type LegacyWireGuardOutboundOptions struct { DialerOptions SystemInterface bool `json:"system_interface,omitempty"` GSO bool `json:"gso,omitempty"` InterfaceName string `json:"interface_name,omitempty"` LocalAddress badoption.Listable[netip.Prefix] `json:"local_address"` PrivateKey string `json:"private_key"` Peers []LegacyWireGuardPeer `json:"peers,omitempty"` ServerOptions PeerPublicKey string `json:"peer_public_key"` Reserved []uint8 `json:"reserved,omitempty"` Workers int `json:"workers,omitempty"` MTU uint32 `json:"mtu,omitempty"` Network NetworkList `json:"network,omitempty"` }
type LegacyWireGuardPeer ¶
type ListenOptions ¶
type ListenOptions struct { Listen *badoption.Addr `json:"listen,omitempty"` ListenPort uint16 `json:"listen_port,omitempty"` TCPKeepAlive badoption.Duration `json:"tcp_keep_alive,omitempty"` TCPKeepAliveInterval badoption.Duration `json:"tcp_keep_alive_interval,omitempty"` TCPFastOpen bool `json:"tcp_fast_open,omitempty"` TCPMultiPath bool `json:"tcp_multi_path,omitempty"` UDPFragment *bool `json:"udp_fragment,omitempty"` UDPFragmentDefault bool `json:"-"` UDPTimeout UDPTimeoutCompat `json:"udp_timeout,omitempty"` // Deprecated: removed ProxyProtocol bool `json:"proxy_protocol,omitempty"` // Deprecated: removed ProxyProtocolAcceptNoHeader bool `json:"proxy_protocol_accept_no_header,omitempty"` InboundOptions }
func (*ListenOptions) ReplaceListenOptions ¶ added in v1.8.0
func (o *ListenOptions) ReplaceListenOptions(options ListenOptions)
func (*ListenOptions) TakeListenOptions ¶ added in v1.8.0
func (o *ListenOptions) TakeListenOptions() ListenOptions
type ListenOptionsWrapper ¶ added in v1.8.0
type ListenOptionsWrapper interface { TakeListenOptions() ListenOptions ReplaceListenOptions(options ListenOptions) }
type LocalRuleSet ¶ added in v1.8.0
type LocalRuleSet struct {
Path string `json:"path,omitempty"`
}
type LogOptions ¶
type LogicalDNSRule ¶
type LogicalDNSRule struct { RawLogicalDNSRule DNSRuleAction }
func (*LogicalDNSRule) IsValid ¶
func (r *LogicalDNSRule) IsValid() bool
func (LogicalDNSRule) MarshalJSON ¶
func (r LogicalDNSRule) MarshalJSON() ([]byte, error)
func (*LogicalDNSRule) UnmarshalJSONContext ¶
func (r *LogicalDNSRule) UnmarshalJSONContext(ctx context.Context, data []byte) error
type LogicalHeadlessRule ¶ added in v1.8.0
type LogicalHeadlessRule struct { Mode string `json:"mode"` Rules []HeadlessRule `json:"rules,omitempty"` Invert bool `json:"invert,omitempty"` }
func (LogicalHeadlessRule) IsValid ¶ added in v1.8.0
func (r LogicalHeadlessRule) IsValid() bool
type LogicalRule ¶
type LogicalRule struct { RawLogicalRule RuleAction }
func (*LogicalRule) IsValid ¶
func (r *LogicalRule) IsValid() bool
func (LogicalRule) MarshalJSON ¶
func (r LogicalRule) MarshalJSON() ([]byte, error)
func (*LogicalRule) UnmarshalJSON ¶
func (r *LogicalRule) UnmarshalJSON(data []byte) error
type MemoryBytes ¶ added in v1.4.4
type MemoryBytes uint64
func (MemoryBytes) MarshalJSON ¶ added in v1.4.4
func (l MemoryBytes) MarshalJSON() ([]byte, error)
func (*MemoryBytes) UnmarshalJSON ¶ added in v1.4.4
func (l *MemoryBytes) UnmarshalJSON(bytes []byte) error
type NTPOptions ¶ added in v1.2.0
type NTPOptions struct { Enabled bool `json:"enabled,omitempty"` Interval badoption.Duration `json:"interval,omitempty"` WriteToSystem bool `json:"write_to_system,omitempty"` ServerOptions DialerOptions }
type NaiveInboundOptions ¶
type NaiveInboundOptions struct { ListenOptions Users []auth.User `json:"users,omitempty"` Network NetworkList `json:"network,omitempty"` InboundTLSOptionsContainer }
type NetworkList ¶
type NetworkList string
func (NetworkList) Build ¶
func (v NetworkList) Build() []string
func (*NetworkList) UnmarshalJSON ¶
func (v *NetworkList) UnmarshalJSON(content []byte) error
type NetworkStrategy ¶
type NetworkStrategy C.NetworkStrategy
func (NetworkStrategy) MarshalJSON ¶
func (n NetworkStrategy) MarshalJSON() ([]byte, error)
func (*NetworkStrategy) UnmarshalJSON ¶
func (n *NetworkStrategy) UnmarshalJSON(content []byte) error
type OnDemandOptions ¶ added in v1.2.0
type OnDemandOptions struct { Enabled bool `json:"enabled,omitempty"` Rules []OnDemandRule `json:"rules,omitempty"` }
type OnDemandRule ¶ added in v1.2.0
type OnDemandRule struct { Action *OnDemandRuleAction `json:"action,omitempty"` DNSSearchDomainMatch badoption.Listable[string] `json:"dns_search_domain_match,omitempty"` DNSServerAddressMatch badoption.Listable[string] `json:"dns_server_address_match,omitempty"` InterfaceTypeMatch *OnDemandRuleInterfaceType `json:"interface_type_match,omitempty"` SSIDMatch badoption.Listable[string] `json:"ssid_match,omitempty"` ProbeURL string `json:"probe_url,omitempty"` }
type OnDemandRuleAction ¶ added in v1.2.0
type OnDemandRuleAction int
func (*OnDemandRuleAction) MarshalJSON ¶ added in v1.2.0
func (r *OnDemandRuleAction) MarshalJSON() ([]byte, error)
func (*OnDemandRuleAction) UnmarshalJSON ¶ added in v1.2.0
func (r *OnDemandRuleAction) UnmarshalJSON(bytes []byte) error
type OnDemandRuleInterfaceType ¶ added in v1.2.0
type OnDemandRuleInterfaceType int
func (*OnDemandRuleInterfaceType) MarshalJSON ¶ added in v1.2.0
func (r *OnDemandRuleInterfaceType) MarshalJSON() ([]byte, error)
func (*OnDemandRuleInterfaceType) UnmarshalJSON ¶ added in v1.2.0
func (r *OnDemandRuleInterfaceType) UnmarshalJSON(bytes []byte) error
type OutboundECHOptions ¶ added in v1.1.0
type OutboundECHOptions struct { Enabled bool `json:"enabled,omitempty"` PQSignatureSchemesEnabled bool `json:"pq_signature_schemes_enabled,omitempty"` DynamicRecordSizingDisabled bool `json:"dynamic_record_sizing_disabled,omitempty"` Config badoption.Listable[string] `json:"config,omitempty"` ConfigPath string `json:"config_path,omitempty"` }
type OutboundMultiplexOptions ¶ added in v1.7.0
type OutboundMultiplexOptions struct { Enabled bool `json:"enabled,omitempty"` Protocol string `json:"protocol,omitempty"` MaxConnections int `json:"max_connections,omitempty"` MinStreams int `json:"min_streams,omitempty"` MaxStreams int `json:"max_streams,omitempty"` Padding bool `json:"padding,omitempty"` Brutal *BrutalOptions `json:"brutal,omitempty"` }
type OutboundOptionsRegistry ¶
type OutboundRealityOptions ¶ added in v1.2.0
type OutboundTLSOptions ¶
type OutboundTLSOptions struct { Enabled bool `json:"enabled,omitempty"` DisableSNI bool `json:"disable_sni,omitempty"` ServerName string `json:"server_name,omitempty"` Insecure bool `json:"insecure,omitempty"` ALPN badoption.Listable[string] `json:"alpn,omitempty"` MinVersion string `json:"min_version,omitempty"` MaxVersion string `json:"max_version,omitempty"` CipherSuites badoption.Listable[string] `json:"cipher_suites,omitempty"` Certificate badoption.Listable[string] `json:"certificate,omitempty"` CertificatePath string `json:"certificate_path,omitempty"` ECH *OutboundECHOptions `json:"ech,omitempty"` UTLS *OutboundUTLSOptions `json:"utls,omitempty"` Reality *OutboundRealityOptions `json:"reality,omitempty"` }
type OutboundTLSOptionsContainer ¶ added in v1.8.0
type OutboundTLSOptionsContainer struct {
TLS *OutboundTLSOptions `json:"tls,omitempty"`
}
func (*OutboundTLSOptionsContainer) ReplaceOutboundTLSOptions ¶ added in v1.8.0
func (o *OutboundTLSOptionsContainer) ReplaceOutboundTLSOptions(options *OutboundTLSOptions)
func (*OutboundTLSOptionsContainer) TakeOutboundTLSOptions ¶ added in v1.8.0
func (o *OutboundTLSOptionsContainer) TakeOutboundTLSOptions() *OutboundTLSOptions
type OutboundTLSOptionsWrapper ¶ added in v1.8.0
type OutboundTLSOptionsWrapper interface { TakeOutboundTLSOptions() *OutboundTLSOptions ReplaceOutboundTLSOptions(options *OutboundTLSOptions) }
type OutboundUTLSOptions ¶ added in v1.1.0
type PlainRuleSet ¶ added in v1.8.0
type PlainRuleSet struct {
Rules []HeadlessRule `json:"rules,omitempty"`
}
type PlainRuleSetCompat ¶ added in v1.8.0
type PlainRuleSetCompat _PlainRuleSetCompat
func (PlainRuleSetCompat) MarshalJSON ¶ added in v1.8.0
func (r PlainRuleSetCompat) MarshalJSON() ([]byte, error)
func (*PlainRuleSetCompat) UnmarshalJSON ¶ added in v1.8.0
func (r *PlainRuleSetCompat) UnmarshalJSON(bytes []byte) error
func (PlainRuleSetCompat) Upgrade ¶ added in v1.8.0
func (r PlainRuleSetCompat) Upgrade() (PlainRuleSet, error)
type RawDefaultDNSRule ¶
type RawDefaultDNSRule struct { Inbound badoption.Listable[string] `json:"inbound,omitempty"` IPVersion int `json:"ip_version,omitempty"` QueryType badoption.Listable[DNSQueryType] `json:"query_type,omitempty"` Network badoption.Listable[string] `json:"network,omitempty"` AuthUser badoption.Listable[string] `json:"auth_user,omitempty"` Protocol badoption.Listable[string] `json:"protocol,omitempty"` Domain badoption.Listable[string] `json:"domain,omitempty"` DomainSuffix badoption.Listable[string] `json:"domain_suffix,omitempty"` DomainKeyword badoption.Listable[string] `json:"domain_keyword,omitempty"` DomainRegex badoption.Listable[string] `json:"domain_regex,omitempty"` Geosite badoption.Listable[string] `json:"geosite,omitempty"` SourceGeoIP badoption.Listable[string] `json:"source_geoip,omitempty"` GeoIP badoption.Listable[string] `json:"geoip,omitempty"` IPCIDR badoption.Listable[string] `json:"ip_cidr,omitempty"` IPIsPrivate bool `json:"ip_is_private,omitempty"` SourceIPCIDR badoption.Listable[string] `json:"source_ip_cidr,omitempty"` SourceIPIsPrivate bool `json:"source_ip_is_private,omitempty"` SourcePort badoption.Listable[uint16] `json:"source_port,omitempty"` SourcePortRange badoption.Listable[string] `json:"source_port_range,omitempty"` Port badoption.Listable[uint16] `json:"port,omitempty"` PortRange badoption.Listable[string] `json:"port_range,omitempty"` ProcessName badoption.Listable[string] `json:"process_name,omitempty"` ProcessPath badoption.Listable[string] `json:"process_path,omitempty"` ProcessPathRegex badoption.Listable[string] `json:"process_path_regex,omitempty"` PackageName badoption.Listable[string] `json:"package_name,omitempty"` User badoption.Listable[string] `json:"user,omitempty"` UserID badoption.Listable[int32] `json:"user_id,omitempty"` Outbound badoption.Listable[string] `json:"outbound,omitempty"` ClashMode string `json:"clash_mode,omitempty"` NetworkType badoption.Listable[InterfaceType] `json:"network_type,omitempty"` NetworkIsExpensive bool `json:"network_is_expensive,omitempty"` NetworkIsConstrained bool `json:"network_is_constrained,omitempty"` WIFISSID badoption.Listable[string] `json:"wifi_ssid,omitempty"` WIFIBSSID badoption.Listable[string] `json:"wifi_bssid,omitempty"` RuleSet badoption.Listable[string] `json:"rule_set,omitempty"` RuleSetIPCIDRMatchSource bool `json:"rule_set_ip_cidr_match_source,omitempty"` RuleSetIPCIDRAcceptEmpty bool `json:"rule_set_ip_cidr_accept_empty,omitempty"` Invert bool `json:"invert,omitempty"` // Deprecated: renamed to rule_set_ip_cidr_match_source Deprecated_RulesetIPCIDRMatchSource bool `json:"rule_set_ipcidr_match_source,omitempty"` }
type RawDefaultRule ¶
type RawDefaultRule struct { Inbound badoption.Listable[string] `json:"inbound,omitempty"` IPVersion int `json:"ip_version,omitempty"` Network badoption.Listable[string] `json:"network,omitempty"` AuthUser badoption.Listable[string] `json:"auth_user,omitempty"` Protocol badoption.Listable[string] `json:"protocol,omitempty"` Client badoption.Listable[string] `json:"client,omitempty"` Domain badoption.Listable[string] `json:"domain,omitempty"` DomainSuffix badoption.Listable[string] `json:"domain_suffix,omitempty"` DomainKeyword badoption.Listable[string] `json:"domain_keyword,omitempty"` DomainRegex badoption.Listable[string] `json:"domain_regex,omitempty"` Geosite badoption.Listable[string] `json:"geosite,omitempty"` SourceGeoIP badoption.Listable[string] `json:"source_geoip,omitempty"` GeoIP badoption.Listable[string] `json:"geoip,omitempty"` SourceIPCIDR badoption.Listable[string] `json:"source_ip_cidr,omitempty"` SourceIPIsPrivate bool `json:"source_ip_is_private,omitempty"` IPCIDR badoption.Listable[string] `json:"ip_cidr,omitempty"` IPIsPrivate bool `json:"ip_is_private,omitempty"` SourcePort badoption.Listable[uint16] `json:"source_port,omitempty"` SourcePortRange badoption.Listable[string] `json:"source_port_range,omitempty"` Port badoption.Listable[uint16] `json:"port,omitempty"` PortRange badoption.Listable[string] `json:"port_range,omitempty"` ProcessName badoption.Listable[string] `json:"process_name,omitempty"` ProcessPath badoption.Listable[string] `json:"process_path,omitempty"` ProcessPathRegex badoption.Listable[string] `json:"process_path_regex,omitempty"` PackageName badoption.Listable[string] `json:"package_name,omitempty"` User badoption.Listable[string] `json:"user,omitempty"` UserID badoption.Listable[int32] `json:"user_id,omitempty"` ClashMode string `json:"clash_mode,omitempty"` NetworkType badoption.Listable[InterfaceType] `json:"network_type,omitempty"` NetworkIsExpensive bool `json:"network_is_expensive,omitempty"` NetworkIsConstrained bool `json:"network_is_constrained,omitempty"` WIFISSID badoption.Listable[string] `json:"wifi_ssid,omitempty"` WIFIBSSID badoption.Listable[string] `json:"wifi_bssid,omitempty"` RuleSet badoption.Listable[string] `json:"rule_set,omitempty"` RuleSetIPCIDRMatchSource bool `json:"rule_set_ip_cidr_match_source,omitempty"` Invert bool `json:"invert,omitempty"` // Deprecated: renamed to rule_set_ip_cidr_match_source Deprecated_RulesetIPCIDRMatchSource bool `json:"rule_set_ipcidr_match_source,omitempty"` }
type RawLogicalDNSRule ¶
type RawLogicalRule ¶
type RawRouteOptionsActionOptions ¶
type RawRouteOptionsActionOptions struct { OverrideAddress string `json:"override_address,omitempty"` OverridePort uint16 `json:"override_port,omitempty"` NetworkStrategy *NetworkStrategy `json:"network_strategy,omitempty"` FallbackDelay uint32 `json:"fallback_delay,omitempty"` UDPDisableDomainUnmapping bool `json:"udp_disable_domain_unmapping,omitempty"` UDPConnect bool `json:"udp_connect,omitempty"` UDPTimeout badoption.Duration `json:"udp_timeout,omitempty"` }
type RedirectInboundOptions ¶
type RedirectInboundOptions struct {
ListenOptions
}
type RejectActionOptions ¶
type RejectActionOptions _RejectActionOptions
func (*RejectActionOptions) UnmarshalJSON ¶
func (r *RejectActionOptions) UnmarshalJSON(bytes []byte) error
type RemoteRuleSet ¶ added in v1.8.0
type RouteActionOptions ¶
type RouteActionOptions struct { Outbound string `json:"outbound,omitempty"` RawRouteOptionsActionOptions }
type RouteActionResolve ¶
type RouteActionResolve struct { Strategy DomainStrategy `json:"strategy,omitempty"` Server string `json:"server,omitempty"` }
type RouteActionSniff ¶
type RouteOptions ¶
type RouteOptions struct { GeoIP *GeoIPOptions `json:"geoip,omitempty"` Geosite *GeositeOptions `json:"geosite,omitempty"` Rules []Rule `json:"rules,omitempty"` RuleSet []RuleSet `json:"rule_set,omitempty"` Final string `json:"final,omitempty"` FindProcess bool `json:"find_process,omitempty"` AutoDetectInterface bool `json:"auto_detect_interface,omitempty"` OverrideAndroidVPN bool `json:"override_android_vpn,omitempty"` DefaultInterface string `json:"default_interface,omitempty"` DefaultMark FwMark `json:"default_mark,omitempty"` DefaultNetworkStrategy *NetworkStrategy `json:"default_network_strategy,omitempty"` DefaultNetworkType badoption.Listable[InterfaceType] `json:"default_network_type,omitempty"` DefaultFallbackNetworkType badoption.Listable[InterfaceType] `json:"default_fallback_network_type,omitempty"` DefaultFallbackDelay badoption.Duration `json:"default_fallback_delay,omitempty"` }
type RouteOptionsActionOptions ¶
type RouteOptionsActionOptions RawRouteOptionsActionOptions
func (*RouteOptionsActionOptions) UnmarshalJSON ¶
func (r *RouteOptionsActionOptions) UnmarshalJSON(data []byte) error
type RuleAction ¶
type RuleAction _RuleAction
func (RuleAction) MarshalJSON ¶
func (r RuleAction) MarshalJSON() ([]byte, error)
func (*RuleAction) UnmarshalJSON ¶
func (r *RuleAction) UnmarshalJSON(data []byte) error
type RuleSet ¶ added in v1.8.0
type RuleSet _RuleSet
func (RuleSet) MarshalJSON ¶ added in v1.8.0
func (*RuleSet) UnmarshalJSON ¶ added in v1.8.0
type SOCKSOutboundOptions ¶
type SOCKSOutboundOptions struct { DialerOptions ServerOptions Version string `json:"version,omitempty"` Username string `json:"username,omitempty"` Password string `json:"password,omitempty"` Network NetworkList `json:"network,omitempty"` UDPOverTCP *UDPOverTCPOptions `json:"udp_over_tcp,omitempty"` }
type SSHOutboundOptions ¶ added in v1.0.1
type SSHOutboundOptions struct { DialerOptions ServerOptions User string `json:"user,omitempty"` Password string `json:"password,omitempty"` PrivateKey badoption.Listable[string] `json:"private_key,omitempty"` PrivateKeyPath string `json:"private_key_path,omitempty"` PrivateKeyPassphrase string `json:"private_key_passphrase,omitempty"` HostKey badoption.Listable[string] `json:"host_key,omitempty"` HostKeyAlgorithms badoption.Listable[string] `json:"host_key_algorithms,omitempty"` ClientVersion string `json:"client_version,omitempty"` }
type SelectorOutboundOptions ¶
type ServerOptions ¶
func (ServerOptions) Build ¶
func (o ServerOptions) Build() M.Socksaddr
func (*ServerOptions) ReplaceServerOptions ¶ added in v1.8.0
func (o *ServerOptions) ReplaceServerOptions(options ServerOptions)
func (*ServerOptions) TakeServerOptions ¶ added in v1.8.0
func (o *ServerOptions) TakeServerOptions() ServerOptions
type ServerOptionsWrapper ¶ added in v1.8.0
type ServerOptionsWrapper interface { TakeServerOptions() ServerOptions ReplaceServerOptions(options ServerOptions) }
type ShadowTLSHandshakeOptions ¶ added in v1.0.1
type ShadowTLSHandshakeOptions struct { ServerOptions DialerOptions }
type ShadowTLSInboundOptions ¶ added in v1.0.1
type ShadowTLSInboundOptions struct { ListenOptions Version int `json:"version,omitempty"` Password string `json:"password,omitempty"` Users []ShadowTLSUser `json:"users,omitempty"` Handshake ShadowTLSHandshakeOptions `json:"handshake,omitempty"` HandshakeForServerName map[string]ShadowTLSHandshakeOptions `json:"handshake_for_server_name,omitempty"` StrictMode bool `json:"strict_mode,omitempty"` }
type ShadowTLSOutboundOptions ¶ added in v1.0.1
type ShadowTLSOutboundOptions struct { DialerOptions ServerOptions Version int `json:"version,omitempty"` Password string `json:"password,omitempty"` OutboundTLSOptionsContainer }
type ShadowTLSUser ¶ added in v1.2.0
type ShadowsocksDestination ¶
type ShadowsocksDestination struct { Name string `json:"name"` Password string `json:"password"` ServerOptions }
type ShadowsocksInboundOptions ¶
type ShadowsocksInboundOptions struct { ListenOptions Network NetworkList `json:"network,omitempty"` Method string `json:"method"` Password string `json:"password,omitempty"` Users []ShadowsocksUser `json:"users,omitempty"` Destinations []ShadowsocksDestination `json:"destinations,omitempty"` Multiplex *InboundMultiplexOptions `json:"multiplex,omitempty"` }
type ShadowsocksOutboundOptions ¶
type ShadowsocksOutboundOptions struct { DialerOptions ServerOptions Method string `json:"method"` Password string `json:"password"` Plugin string `json:"plugin,omitempty"` PluginOptions string `json:"plugin_opts,omitempty"` Network NetworkList `json:"network,omitempty"` UDPOverTCP *UDPOverTCPOptions `json:"udp_over_tcp,omitempty"` Multiplex *OutboundMultiplexOptions `json:"multiplex,omitempty"` }
type ShadowsocksROutboundOptions ¶ added in v1.1.0
type ShadowsocksROutboundOptions struct { DialerOptions ServerOptions Method string `json:"method"` Password string `json:"password"` Obfs string `json:"obfs,omitempty"` ObfsParam string `json:"obfs_param,omitempty"` Protocol string `json:"protocol,omitempty"` ProtocolParam string `json:"protocol_param,omitempty"` Network NetworkList `json:"network,omitempty"` }
type ShadowsocksUser ¶
type SocksInboundOptions ¶
type SocksInboundOptions struct { ListenOptions Users []auth.User `json:"users,omitempty"` }
type StubOptions ¶
type StubOptions struct{}
type TProxyInboundOptions ¶
type TProxyInboundOptions struct { ListenOptions Network NetworkList `json:"network,omitempty"` }
type TUICInboundOptions ¶ added in v1.4.0
type TUICInboundOptions struct { ListenOptions Users []TUICUser `json:"users,omitempty"` CongestionControl string `json:"congestion_control,omitempty"` AuthTimeout badoption.Duration `json:"auth_timeout,omitempty"` ZeroRTTHandshake bool `json:"zero_rtt_handshake,omitempty"` Heartbeat badoption.Duration `json:"heartbeat,omitempty"` InboundTLSOptionsContainer }
type TUICOutboundOptions ¶ added in v1.4.0
type TUICOutboundOptions struct { DialerOptions ServerOptions UUID string `json:"uuid,omitempty"` Password string `json:"password,omitempty"` CongestionControl string `json:"congestion_control,omitempty"` UDPRelayMode string `json:"udp_relay_mode,omitempty"` UDPOverStream bool `json:"udp_over_stream,omitempty"` ZeroRTTHandshake bool `json:"zero_rtt_handshake,omitempty"` Heartbeat badoption.Duration `json:"heartbeat,omitempty"` Network NetworkList `json:"network,omitempty"` OutboundTLSOptionsContainer }
type TorOutboundOptions ¶ added in v1.0.1
type TrojanInboundOptions ¶
type TrojanInboundOptions struct { ListenOptions Users []TrojanUser `json:"users,omitempty"` InboundTLSOptionsContainer Fallback *ServerOptions `json:"fallback,omitempty"` FallbackForALPN map[string]*ServerOptions `json:"fallback_for_alpn,omitempty"` Multiplex *InboundMultiplexOptions `json:"multiplex,omitempty"` Transport *V2RayTransportOptions `json:"transport,omitempty"` }
type TrojanOutboundOptions ¶
type TrojanOutboundOptions struct { DialerOptions ServerOptions Password string `json:"password"` Network NetworkList `json:"network,omitempty"` OutboundTLSOptionsContainer Multiplex *OutboundMultiplexOptions `json:"multiplex,omitempty"` Transport *V2RayTransportOptions `json:"transport,omitempty"` }
type TrojanUser ¶
type TunInboundOptions ¶
type TunInboundOptions struct { InterfaceName string `json:"interface_name,omitempty"` MTU uint32 `json:"mtu,omitempty"` Address badoption.Listable[netip.Prefix] `json:"address,omitempty"` AutoRoute bool `json:"auto_route,omitempty"` IPRoute2TableIndex int `json:"iproute2_table_index,omitempty"` IPRoute2RuleIndex int `json:"iproute2_rule_index,omitempty"` AutoRedirect bool `json:"auto_redirect,omitempty"` AutoRedirectInputMark FwMark `json:"auto_redirect_input_mark,omitempty"` AutoRedirectOutputMark FwMark `json:"auto_redirect_output_mark,omitempty"` StrictRoute bool `json:"strict_route,omitempty"` RouteAddress badoption.Listable[netip.Prefix] `json:"route_address,omitempty"` RouteAddressSet badoption.Listable[string] `json:"route_address_set,omitempty"` RouteExcludeAddress badoption.Listable[netip.Prefix] `json:"route_exclude_address,omitempty"` RouteExcludeAddressSet badoption.Listable[string] `json:"route_exclude_address_set,omitempty"` IncludeInterface badoption.Listable[string] `json:"include_interface,omitempty"` ExcludeInterface badoption.Listable[string] `json:"exclude_interface,omitempty"` IncludeUID badoption.Listable[uint32] `json:"include_uid,omitempty"` IncludeUIDRange badoption.Listable[string] `json:"include_uid_range,omitempty"` ExcludeUID badoption.Listable[uint32] `json:"exclude_uid,omitempty"` ExcludeUIDRange badoption.Listable[string] `json:"exclude_uid_range,omitempty"` IncludeAndroidUser badoption.Listable[int] `json:"include_android_user,omitempty"` IncludePackage badoption.Listable[string] `json:"include_package,omitempty"` ExcludePackage badoption.Listable[string] `json:"exclude_package,omitempty"` UDPTimeout UDPTimeoutCompat `json:"udp_timeout,omitempty"` Stack string `json:"stack,omitempty"` Platform *TunPlatformOptions `json:"platform,omitempty"` InboundOptions // Deprecated: removed GSO bool `json:"gso,omitempty"` // Deprecated: merged to Address Inet4Address badoption.Listable[netip.Prefix] `json:"inet4_address,omitempty"` // Deprecated: merged to Address Inet6Address badoption.Listable[netip.Prefix] `json:"inet6_address,omitempty"` // Deprecated: merged to RouteAddress Inet4RouteAddress badoption.Listable[netip.Prefix] `json:"inet4_route_address,omitempty"` // Deprecated: merged to RouteAddress Inet6RouteAddress badoption.Listable[netip.Prefix] `json:"inet6_route_address,omitempty"` // Deprecated: merged to RouteExcludeAddress Inet4RouteExcludeAddress badoption.Listable[netip.Prefix] `json:"inet4_route_exclude_address,omitempty"` // Deprecated: merged to RouteExcludeAddress Inet6RouteExcludeAddress badoption.Listable[netip.Prefix] `json:"inet6_route_exclude_address,omitempty"` // Deprecated: removed EndpointIndependentNat bool `json:"endpoint_independent_nat,omitempty"` }
type TunPlatformOptions ¶ added in v1.2.0
type TunPlatformOptions struct {
HTTPProxy *HTTPProxyOptions `json:"http_proxy,omitempty"`
}
type UDPOverTCPOptions ¶ added in v1.2.0
type UDPOverTCPOptions _UDPOverTCPOptions
func (UDPOverTCPOptions) MarshalJSON ¶ added in v1.2.0
func (o UDPOverTCPOptions) MarshalJSON() ([]byte, error)
func (*UDPOverTCPOptions) UnmarshalJSON ¶ added in v1.2.0
func (o *UDPOverTCPOptions) UnmarshalJSON(bytes []byte) error
type UDPTimeoutCompat ¶ added in v1.7.6
func (UDPTimeoutCompat) MarshalJSON ¶ added in v1.7.7
func (c UDPTimeoutCompat) MarshalJSON() ([]byte, error)
func (*UDPTimeoutCompat) UnmarshalJSON ¶ added in v1.7.6
func (c *UDPTimeoutCompat) UnmarshalJSON(data []byte) error
type URLTestOutboundOptions ¶ added in v1.1.0
type URLTestOutboundOptions struct { Outbounds []string `json:"outbounds"` URL string `json:"url,omitempty"` Interval badoption.Duration `json:"interval,omitempty"` Tolerance uint16 `json:"tolerance,omitempty"` IdleTimeout badoption.Duration `json:"idle_timeout,omitempty"` InterruptExistConnections bool `json:"interrupt_exist_connections,omitempty"` }
type V2RayAPIOptions ¶ added in v1.1.0
type V2RayAPIOptions struct { Listen string `json:"listen,omitempty"` Stats *V2RayStatsServiceOptions `json:"stats,omitempty"` }
type V2RayGRPCOptions ¶ added in v1.0.1
type V2RayGRPCOptions struct { ServiceName string `json:"service_name,omitempty"` IdleTimeout badoption.Duration `json:"idle_timeout,omitempty"` PingTimeout badoption.Duration `json:"ping_timeout,omitempty"` PermitWithoutStream bool `json:"permit_without_stream,omitempty"` ForceLite bool `json:"-"` // for test }
type V2RayHTTPOptions ¶ added in v1.0.1
type V2RayHTTPOptions struct { Host badoption.Listable[string] `json:"host,omitempty"` Path string `json:"path,omitempty"` Method string `json:"method,omitempty"` Headers badoption.HTTPHeader `json:"headers,omitempty"` IdleTimeout badoption.Duration `json:"idle_timeout,omitempty"` PingTimeout badoption.Duration `json:"ping_timeout,omitempty"` }
type V2RayHTTPUpgradeOptions ¶ added in v1.7.0
type V2RayHTTPUpgradeOptions struct { Host string `json:"host,omitempty"` Path string `json:"path,omitempty"` Headers badoption.HTTPHeader `json:"headers,omitempty"` }
type V2RayQUICOptions ¶ added in v1.0.1
type V2RayQUICOptions struct{}
type V2RayStatsServiceOptions ¶ added in v1.1.0
type V2RayTransportOptions ¶ added in v1.0.1
type V2RayTransportOptions _V2RayTransportOptions
func (V2RayTransportOptions) MarshalJSON ¶ added in v1.0.1
func (o V2RayTransportOptions) MarshalJSON() ([]byte, error)
func (*V2RayTransportOptions) UnmarshalJSON ¶ added in v1.0.1
func (o *V2RayTransportOptions) UnmarshalJSON(bytes []byte) error
type V2RayWebsocketOptions ¶ added in v1.0.1
type V2RayWebsocketOptions struct { Path string `json:"path,omitempty"` Headers badoption.HTTPHeader `json:"headers,omitempty"` MaxEarlyData uint32 `json:"max_early_data,omitempty"` EarlyDataHeaderName string `json:"early_data_header_name,omitempty"` }
type VLESSInboundOptions ¶ added in v1.2.0
type VLESSInboundOptions struct { ListenOptions Users []VLESSUser `json:"users,omitempty"` InboundTLSOptionsContainer Multiplex *InboundMultiplexOptions `json:"multiplex,omitempty"` Transport *V2RayTransportOptions `json:"transport,omitempty"` }
type VLESSOutboundOptions ¶ added in v1.1.0
type VLESSOutboundOptions struct { DialerOptions ServerOptions UUID string `json:"uuid"` Flow string `json:"flow,omitempty"` Network NetworkList `json:"network,omitempty"` OutboundTLSOptionsContainer Multiplex *OutboundMultiplexOptions `json:"multiplex,omitempty"` Transport *V2RayTransportOptions `json:"transport,omitempty"` PacketEncoding *string `json:"packet_encoding,omitempty"` }
type VMessInboundOptions ¶
type VMessInboundOptions struct { ListenOptions Users []VMessUser `json:"users,omitempty"` InboundTLSOptionsContainer Multiplex *InboundMultiplexOptions `json:"multiplex,omitempty"` Transport *V2RayTransportOptions `json:"transport,omitempty"` }
type VMessOutboundOptions ¶
type VMessOutboundOptions struct { DialerOptions ServerOptions UUID string `json:"uuid"` Security string `json:"security"` AlterId int `json:"alter_id,omitempty"` GlobalPadding bool `json:"global_padding,omitempty"` AuthenticatedLength bool `json:"authenticated_length,omitempty"` Network NetworkList `json:"network,omitempty"` OutboundTLSOptionsContainer PacketEncoding string `json:"packet_encoding,omitempty"` Multiplex *OutboundMultiplexOptions `json:"multiplex,omitempty"` Transport *V2RayTransportOptions `json:"transport,omitempty"` }
type WireGuardEndpointOptions ¶
type WireGuardEndpointOptions struct { System bool `json:"system,omitempty"` Name string `json:"name,omitempty"` MTU uint32 `json:"mtu,omitempty"` Address badoption.Listable[netip.Prefix] `json:"address"` PrivateKey string `json:"private_key"` ListenPort uint16 `json:"listen_port,omitempty"` Peers []WireGuardPeer `json:"peers,omitempty"` UDPTimeout badoption.Duration `json:"udp_timeout,omitempty"` Workers int `json:"workers,omitempty"` DialerOptions }
type WireGuardPeer ¶ added in v1.3.0
type WireGuardPeer struct { Address string `json:"address,omitempty"` Port uint16 `json:"port,omitempty"` PublicKey string `json:"public_key,omitempty"` AllowedIPs badoption.Listable[netip.Prefix] `json:"allowed_ips,omitempty"` PersistentKeepaliveInterval uint16 `json:"persistent_keepalive_interval,omitempty"` Reserved []uint8 `json:"reserved,omitempty"` }
Source Files ¶
- debug.go
- direct.go
- dns.go
- endpoint.go
- experimental.go
- group.go
- hysteria.go
- hysteria2.go
- inbound.go
- multiplex.go
- naive.go
- ntp.go
- options.go
- outbound.go
- platform.go
- redir.go
- route.go
- rule.go
- rule_action.go
- rule_dns.go
- rule_set.go
- shadowsocks.go
- shadowsocksr.go
- shadowtls.go
- simple.go
- ssh.go
- tls.go
- tls_acme.go
- tor.go
- trojan.go
- tuic.go
- tun.go
- tun_platform.go
- types.go
- udp_over_tcp.go
- v2ray.go
- v2ray_transport.go
- vless.go
- vmess.go
- wireguard.go
Click to show internal directories.
Click to hide internal directories.