Documentation ¶
Index ¶
- Constants
- func PostProcessConfigureFile(conf *Config) error
- func RegisterConfigureFilePostProcessingStage(name string, stage ConfigureFilePostProcessingStage)
- type APIConfig
- type Authenticator
- type AuthenticatorRequest
- type AuthenticatorResponse
- type BlackholeConfig
- type BridgeConfig
- type BrowserForwarderConfig
- type BurstObservatoryConfig
- type Config
- type ConfigureFilePostProcessingStage
- type DNSOutboundConfig
- type DTLSAuthenticator
- type DokodemoConfig
- type DomainSocketConfig
- type FakeDNSConfig
- type FakeDNSPoolElementConfig
- type FakeDNSPostProcessingStage
- type FeaturesConfig
- type FreedomConfig
- type GunConfig
- type HTTPAccount
- type HTTPClientConfig
- type HTTPConfig
- type HTTPRemoteConfig
- type HTTPResponse
- type HTTPServerConfig
- type InboundDetourAllocationConfig
- type InboundDetourConfig
- type KCPConfig
- type LoopbackConfig
- type MultiObservatoryConfig
- type MultiObservatoryItem
- type NoOpAuthenticator
- type NoOpConnectionAuthenticator
- type NoneResponse
- type ObservatoryConfig
- type OutboundDetourConfig
- type Policy
- type PolicyConfig
- type PortalConfig
- type QUICConfig
- type ReverseConfig
- type SRTPAuthenticator
- type ShadowsocksClientConfig
- type ShadowsocksServerConfig
- type ShadowsocksServerTarget
- type SocksAccount
- type SocksClientConfig
- type SocksRemoteConfig
- type SocksServerConfig
- type StatsConfig
- type StreamConfig
- type SystemPolicy
- type TCPConfig
- type TransportConfig
- type TransportProtocol
- type TrojanClientConfig
- type TrojanInboundFallback
- type TrojanServerConfig
- type TrojanServerTarget
- type TrojanUserConfig
- type UTPAuthenticator
- type VLessInboundConfig
- type VLessInboundFallback
- type VLessOutboundConfig
- type VLessOutboundVnext
- type VMessAccount
- type VMessDefaultConfig
- type VMessDetourConfig
- type VMessInboundConfig
- type VMessOutboundConfig
- type VMessOutboundTarget
- type WebSocketConfig
- type WechatVideoAuthenticator
- type WireguardAuthenticator
Constants ¶
View Source
const ( AuthMethodNoAuth = "noauth" AuthMethodUserPass = "password" )
Variables ¶
This section is empty.
Functions ¶
func RegisterConfigureFilePostProcessingStage ¶
func RegisterConfigureFilePostProcessingStage(name string, stage ConfigureFilePostProcessingStage)
Types ¶
type Authenticator ¶
type Authenticator struct { Request AuthenticatorRequest `json:"request"` Response AuthenticatorResponse `json:"response"` }
type AuthenticatorRequest ¶
type AuthenticatorRequest struct { Version string `json:"version"` Method string `json:"method"` Path cfgcommon.StringList `json:"path"` Headers map[string]*cfgcommon.StringList `json:"headers"` }
func (*AuthenticatorRequest) Build ¶
func (v *AuthenticatorRequest) Build() (*http.RequestConfig, error)
type AuthenticatorResponse ¶
type AuthenticatorResponse struct { Version string `json:"version"` Status string `json:"status"` Reason string `json:"reason"` Headers map[string]*cfgcommon.StringList `json:"headers"` }
func (*AuthenticatorResponse) Build ¶
func (v *AuthenticatorResponse) Build() (*http.ResponseConfig, error)
type BlackholeConfig ¶
type BlackholeConfig struct {
Response json.RawMessage `json:"response"`
}
type BridgeConfig ¶
func (*BridgeConfig) Build ¶
func (c *BridgeConfig) Build() (*reverse.BridgeConfig, error)
type BrowserForwarderConfig ¶
type BurstObservatoryConfig ¶
type BurstObservatoryConfig struct { SubjectSelector []string `json:"subjectSelector"` // health check settings HealthCheck *router.HealthCheckSettings `json:"pingConfig,omitempty"` }
type Config ¶
type Config struct { // Port of this Point server. // Deprecated: Port exists for historical compatibility // and should not be used. Port uint16 `json:"port"` // Deprecated: InboundConfig exists for historical compatibility // and should not be used. InboundConfig *InboundDetourConfig `json:"inbound"` // Deprecated: OutboundConfig exists for historical compatibility // and should not be used. OutboundConfig *OutboundDetourConfig `json:"outbound"` // Deprecated: InboundDetours exists for historical compatibility // and should not be used. InboundDetours []InboundDetourConfig `json:"inboundDetour"` // Deprecated: OutboundDetours exists for historical compatibility // and should not be used. OutboundDetours []OutboundDetourConfig `json:"outboundDetour"` LogConfig *log.LogConfig `json:"log"` RouterConfig *router.RouterConfig `json:"routing"` DNSConfig *dns.DNSConfig `json:"dns"` InboundConfigs []InboundDetourConfig `json:"inbounds"` OutboundConfigs []OutboundDetourConfig `json:"outbounds"` Transport *TransportConfig `json:"transport"` Policy *PolicyConfig `json:"policy"` API *APIConfig `json:"api"` Stats *StatsConfig `json:"stats"` Reverse *ReverseConfig `json:"reverse"` FakeDNS *FakeDNSConfig `json:"fakeDns"` BrowserForwarder *BrowserForwarderConfig `json:"browserForwarder"` Observatory *ObservatoryConfig `json:"observatory"` BurstObservatory *BurstObservatoryConfig `json:"burstObservatory"` MultiObservatory *MultiObservatoryConfig `json:"multiObservatory"` Services map[string]*json.RawMessage `json:"services"` }
func (*Config) BuildServices ¶
type DNSOutboundConfig ¶
type DTLSAuthenticator ¶
type DTLSAuthenticator struct{}
type DokodemoConfig ¶
type DomainSocketConfig ¶
type FakeDNSConfig ¶
type FakeDNSConfig struct {
// contains filtered or unexported fields
}
func (*FakeDNSConfig) Build ¶
func (f *FakeDNSConfig) Build() (*fakedns.FakeDnsPoolMulti, error)
func (*FakeDNSConfig) UnmarshalJSON ¶
func (f *FakeDNSConfig) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.UnmarshalJSON
type FakeDNSPostProcessingStage ¶
type FakeDNSPostProcessingStage struct{}
func (FakeDNSPostProcessingStage) Process ¶
func (FakeDNSPostProcessingStage) Process(config *Config) error
type FeaturesConfig ¶
type FeaturesConfig struct {
Detour *VMessDetourConfig `json:"detour"`
}
type FreedomConfig ¶
type HTTPAccount ¶
func (*HTTPAccount) Build ¶
func (v *HTTPAccount) Build() *http.Account
type HTTPClientConfig ¶
type HTTPClientConfig struct {
Servers []*HTTPRemoteConfig `json:"servers"`
}
type HTTPConfig ¶
type HTTPConfig struct { Host *cfgcommon.StringList `json:"host"` Path string `json:"path"` Method string `json:"method"` Headers map[string]*cfgcommon.StringList `json:"headers"` }
type HTTPRemoteConfig ¶
type HTTPRemoteConfig struct { Address *cfgcommon.Address `json:"address"` Port uint16 `json:"port"` Users []json.RawMessage `json:"users"` }
type HTTPResponse ¶
type HTTPResponse struct{}
type HTTPServerConfig ¶
type HTTPServerConfig struct { Timeout uint32 `json:"timeout"` Accounts []*HTTPAccount `json:"accounts"` Transparent bool `json:"allowTransparent"` UserLevel uint32 `json:"userLevel"` }
type InboundDetourAllocationConfig ¶
type InboundDetourAllocationConfig struct { Strategy string `json:"strategy"` Concurrency *uint32 `json:"concurrency"` RefreshMin *uint32 `json:"refresh"` }
func (*InboundDetourAllocationConfig) Build ¶
func (c *InboundDetourAllocationConfig) Build() (*proxyman.AllocationStrategy, error)
Build implements Buildable.
type InboundDetourConfig ¶
type InboundDetourConfig struct { Protocol string `json:"protocol"` PortRange *cfgcommon.PortRange `json:"port"` ListenOn *cfgcommon.Address `json:"listen"` Settings *json.RawMessage `json:"settings"` Tag string `json:"tag"` Allocation *InboundDetourAllocationConfig `json:"allocate"` StreamSetting *StreamConfig `json:"streamSettings"` DomainOverride *cfgcommon.StringList `json:"domainOverride"` SniffingConfig *sniffer.SniffingConfig `json:"sniffing"` }
func (*InboundDetourConfig) Build ¶
func (c *InboundDetourConfig) Build() (*core.InboundHandlerConfig, error)
Build implements Buildable.
type KCPConfig ¶
type KCPConfig struct { Mtu *uint32 `json:"mtu"` Tti *uint32 `json:"tti"` UpCap *uint32 `json:"uplinkCapacity"` DownCap *uint32 `json:"downlinkCapacity"` Congestion *bool `json:"congestion"` ReadBufferSize *uint32 `json:"readBufferSize"` WriteBufferSize *uint32 `json:"writeBufferSize"` HeaderConfig json.RawMessage `json:"header"` Seed *string `json:"seed"` }
type LoopbackConfig ¶
type LoopbackConfig struct {
InboundTag string `json:"inboundTag"`
}
type MultiObservatoryConfig ¶
type MultiObservatoryConfig struct {
Observers []MultiObservatoryItem `json:"observers"`
}
type MultiObservatoryItem ¶
type MultiObservatoryItem struct { MemberType string `json:"type"` Tag string `json:"tag"` Value json.RawMessage `json:"settings"` }
type NoOpAuthenticator ¶
type NoOpAuthenticator struct{}
type NoOpConnectionAuthenticator ¶
type NoOpConnectionAuthenticator struct{}
type NoneResponse ¶
type NoneResponse struct{}
type ObservatoryConfig ¶
type OutboundDetourConfig ¶
type OutboundDetourConfig struct { Protocol string `json:"protocol"` SendThrough *cfgcommon.Address `json:"sendThrough"` Tag string `json:"tag"` Settings *json.RawMessage `json:"settings"` StreamSetting *StreamConfig `json:"streamSettings"` ProxySettings *proxycfg.ProxyConfig `json:"proxySettings"` MuxSettings *muxcfg.MuxConfig `json:"mux"` }
func (*OutboundDetourConfig) Build ¶
func (c *OutboundDetourConfig) Build() (*core.OutboundHandlerConfig, error)
Build implements Buildable.
type Policy ¶
type Policy struct { Handshake *uint32 `json:"handshake"` ConnectionIdle *uint32 `json:"connIdle"` UplinkOnly *uint32 `json:"uplinkOnly"` DownlinkOnly *uint32 `json:"downlinkOnly"` StatsUserUplink bool `json:"statsUserUplink"` StatsUserDownlink bool `json:"statsUserDownlink"` BufferSize *int32 `json:"bufferSize"` }
type PolicyConfig ¶
type PolicyConfig struct { Levels map[uint32]*Policy `json:"levels"` System *SystemPolicy `json:"system"` }
type PortalConfig ¶
func (*PortalConfig) Build ¶
func (c *PortalConfig) Build() (*reverse.PortalConfig, error)
type QUICConfig ¶
type QUICConfig struct { Header json.RawMessage `json:"header"` Security string `json:"security"` Key string `json:"key"` }
type ReverseConfig ¶
type ReverseConfig struct { Bridges []BridgeConfig `json:"bridges"` Portals []PortalConfig `json:"portals"` }
type SRTPAuthenticator ¶
type SRTPAuthenticator struct{}
type ShadowsocksClientConfig ¶
type ShadowsocksClientConfig struct {
Servers []*ShadowsocksServerTarget `json:"servers"`
}
type ShadowsocksServerConfig ¶
type ShadowsocksServerTarget ¶
type SocksAccount ¶
func (*SocksAccount) Build ¶
func (v *SocksAccount) Build() *socks.Account
type SocksClientConfig ¶
type SocksClientConfig struct { Servers []*SocksRemoteConfig `json:"servers"` Version string `json:"version"` }
type SocksRemoteConfig ¶
type SocksRemoteConfig struct { Address *cfgcommon.Address `json:"address"` Port uint16 `json:"port"` Users []json.RawMessage `json:"users"` }
type SocksServerConfig ¶
type StatsConfig ¶
type StatsConfig struct{}
type StreamConfig ¶
type StreamConfig struct { Network *TransportProtocol `json:"network"` Security string `json:"security"` TLSSettings *tlscfg.TLSConfig `json:"tlsSettings"` TCPSettings *TCPConfig `json:"tcpSettings"` KCPSettings *KCPConfig `json:"kcpSettings"` WSSettings *WebSocketConfig `json:"wsSettings"` HTTPSettings *HTTPConfig `json:"httpSettings"` DSSettings *DomainSocketConfig `json:"dsSettings"` QUICSettings *QUICConfig `json:"quicSettings"` GunSettings *GunConfig `json:"gunSettings"` GRPCSettings *GunConfig `json:"grpcSettings"` SocketSettings *socketcfg.SocketConfig `json:"sockopt"` }
func (*StreamConfig) Build ¶
func (c *StreamConfig) Build() (*internet.StreamConfig, error)
Build implements Buildable.
type SystemPolicy ¶
type SystemPolicy struct { StatsInboundUplink bool `json:"statsInboundUplink"` StatsInboundDownlink bool `json:"statsInboundDownlink"` StatsOutboundUplink bool `json:"statsOutboundUplink"` StatsOutboundDownlink bool `json:"statsOutboundDownlink"` }
func (*SystemPolicy) Build ¶
func (p *SystemPolicy) Build() (*policy.SystemPolicy, error)
type TCPConfig ¶
type TCPConfig struct { HeaderConfig json.RawMessage `json:"header"` AcceptProxyProtocol bool `json:"acceptProxyProtocol"` }
type TransportConfig ¶
type TransportConfig struct { TCPConfig *TCPConfig `json:"tcpSettings"` KCPConfig *KCPConfig `json:"kcpSettings"` WSConfig *WebSocketConfig `json:"wsSettings"` HTTPConfig *HTTPConfig `json:"httpSettings"` DSConfig *DomainSocketConfig `json:"dsSettings"` QUICConfig *QUICConfig `json:"quicSettings"` GunConfig *GunConfig `json:"gunSettings"` GRPCConfig *GunConfig `json:"grpcSettings"` }
type TransportProtocol ¶
type TransportProtocol string
func (TransportProtocol) Build ¶
func (p TransportProtocol) Build() (string, error)
Build implements Buildable.
type TrojanClientConfig ¶
type TrojanClientConfig struct {
Servers []*TrojanServerTarget `json:"servers"`
}
TrojanClientConfig is configuration of trojan servers
type TrojanInboundFallback ¶
type TrojanInboundFallback struct { Alpn string `json:"alpn"` Path string `json:"path"` Type string `json:"type"` Dest json.RawMessage `json:"dest"` Xver uint64 `json:"xver"` }
TrojanInboundFallback is fallback configuration
type TrojanServerConfig ¶
type TrojanServerConfig struct { Clients []*TrojanUserConfig `json:"clients"` Fallback json.RawMessage `json:"fallback"` Fallbacks []*TrojanInboundFallback `json:"fallbacks"` }
TrojanServerConfig is Inbound configuration
type TrojanServerTarget ¶
type TrojanServerTarget struct { Address *cfgcommon.Address `json:"address"` Port uint16 `json:"port"` Password string `json:"password"` Email string `json:"email"` Level byte `json:"level"` }
TrojanServerTarget is configuration of a single trojan server
type TrojanUserConfig ¶
type TrojanUserConfig struct { Password string `json:"password"` Level byte `json:"level"` Email string `json:"email"` }
TrojanUserConfig is user configuration
type UTPAuthenticator ¶
type UTPAuthenticator struct{}
type VLessInboundConfig ¶
type VLessInboundConfig struct { Clients []json.RawMessage `json:"clients"` Decryption string `json:"decryption"` Fallback json.RawMessage `json:"fallback"` Fallbacks []*VLessInboundFallback `json:"fallbacks"` }
type VLessInboundFallback ¶
type VLessOutboundConfig ¶
type VLessOutboundConfig struct {
Vnext []*VLessOutboundVnext `json:"vnext"`
}
type VLessOutboundVnext ¶
type VLessOutboundVnext struct { Address *cfgcommon.Address `json:"address"` Port uint16 `json:"port"` Users []json.RawMessage `json:"users"` }
type VMessAccount ¶
type VMessAccount struct { ID string `json:"id"` AlterIds uint16 `json:"alterId"` Security string `json:"security"` Experiments string `json:"experiments"` }
func (*VMessAccount) Build ¶
func (a *VMessAccount) Build() *vmess.Account
Build implements Buildable
type VMessDefaultConfig ¶
func (*VMessDefaultConfig) Build ¶
func (c *VMessDefaultConfig) Build() *inbound.DefaultConfig
Build implements Buildable
type VMessDetourConfig ¶
type VMessDetourConfig struct {
ToTag string `json:"to"`
}
func (*VMessDetourConfig) Build ¶
func (c *VMessDetourConfig) Build() *inbound.DetourConfig
Build implements Buildable
type VMessInboundConfig ¶
type VMessInboundConfig struct { Users []json.RawMessage `json:"clients"` Features *FeaturesConfig `json:"features"` Defaults *VMessDefaultConfig `json:"default"` DetourConfig *VMessDetourConfig `json:"detour"` SecureOnly bool `json:"disableInsecureEncryption"` }
type VMessOutboundConfig ¶
type VMessOutboundConfig struct {
Receivers []*VMessOutboundTarget `json:"vnext"`
}
type VMessOutboundTarget ¶
type VMessOutboundTarget struct { Address *cfgcommon.Address `json:"address"` Port uint16 `json:"port"` Users []json.RawMessage `json:"users"` }
type WebSocketConfig ¶
type WebSocketConfig struct { Path string `json:"path"` Headers map[string]string `json:"headers"` AcceptProxyProtocol bool `json:"acceptProxyProtocol"` MaxEarlyData int32 `json:"maxEarlyData"` UseBrowserForwarding bool `json:"useBrowserForwarding"` EarlyDataHeaderName string `json:"earlyDataHeaderName"` }
type WechatVideoAuthenticator ¶
type WechatVideoAuthenticator struct{}
type WireguardAuthenticator ¶
type WireguardAuthenticator struct{}
Source Files ¶
- api.go
- blackhole.go
- browser_forwarder.go
- conf.go
- dns_proxy.go
- dokodemo.go
- errors.generated.go
- fakedns.go
- freedom.go
- gun.go
- http.go
- init.go
- lint.go
- loopback.go
- observatory.go
- policy.go
- reverse.go
- services.go
- shadowsocks.go
- socks.go
- transport.go
- transport_authenticators.go
- transport_internet.go
- trojan.go
- v2ray.go
- vless.go
- vmess.go
Click to show internal directories.
Click to hide internal directories.