Documentation ¶
Index ¶
- Variables
- func LogDNSAnswers(logger log.ContextLogger, ctx context.Context, domain string, ...)
- func NewDNSRule(router adapter.Router, logger log.ContextLogger, options option.DNSRule) (adapter.DNSRule, error)
- func NewRule(router adapter.Router, logger log.ContextLogger, options option.Rule) (adapter.Rule, error)
- type AuthUserItem
- type ClashModeItem
- type DNSReverseMapping
- type DefaultDNSRule
- func (r *DefaultDNSRule) Close() error
- func (r *DefaultDNSRule) DisableCache() bool
- func (r *DefaultDNSRule) Match(metadata *adapter.InboundContext) bool
- func (r *DefaultDNSRule) Outbound() string
- func (r *DefaultDNSRule) RewriteTTL() *uint32
- func (r *DefaultDNSRule) Start() error
- func (r *DefaultDNSRule) String() string
- func (r *DefaultDNSRule) Type() string
- func (r *DefaultDNSRule) UpdateGeosite() error
- type DefaultRule
- type DomainItem
- type DomainKeywordItem
- type DomainRegexItem
- type GeoIPItem
- type GeositeItem
- type IPCIDRItem
- type IPVersionItem
- type InboundItem
- type LogicalDNSRule
- func (r *LogicalDNSRule) Close() error
- func (r *LogicalDNSRule) DisableCache() bool
- func (r *LogicalDNSRule) Match(metadata *adapter.InboundContext) bool
- func (r *LogicalDNSRule) Outbound() string
- func (r *LogicalDNSRule) RewriteTTL() *uint32
- func (r *LogicalDNSRule) Start() error
- func (r *LogicalDNSRule) String() string
- func (r *LogicalDNSRule) Type() string
- func (r *LogicalDNSRule) UpdateGeosite() error
- type LogicalRule
- type NetworkItem
- type OutboundItem
- type PackageNameItem
- type PortItem
- type PortRangeItem
- type ProcessItem
- type ProcessPathItem
- type ProtocolItem
- type QueryTypeItem
- type Router
- func (r *Router) AutoDetectInterface() bool
- func (r *Router) AutoDetectInterfaceFunc() control.Func
- func (r *Router) ClashServer() adapter.ClashServer
- func (r *Router) Close() error
- func (r *Router) DefaultInterface() string
- func (r *Router) DefaultMark() int
- func (r *Router) DefaultOutbound(network string) adapter.Outbound
- func (r *Router) Exchange(ctx context.Context, message *mDNS.Msg) (*mDNS.Msg, error)
- func (r *Router) FakeIPStore() adapter.FakeIPStore
- func (r *Router) GeoIPReader() *geoip.Reader
- func (r *Router) Initialize(inbounds []adapter.Inbound, outbounds []adapter.Outbound, ...) error
- func (r *Router) InterfaceFinder() control.InterfaceFinder
- func (r *Router) InterfaceMonitor() tun.DefaultInterfaceMonitor
- func (r *Router) LoadGeosite(code string) (adapter.Rule, error)
- func (r *Router) Lookup(ctx context.Context, domain string, strategy dns.DomainStrategy) ([]netip.Addr, error)
- func (r *Router) LookupDefault(ctx context.Context, domain string) ([]netip.Addr, error)
- func (r *Router) NetworkMonitor() tun.NetworkUpdateMonitor
- func (r *Router) NewError(ctx context.Context, err error)
- func (r *Router) OnPackagesUpdated(packages int, sharedUsers int)
- func (r *Router) Outbound(tag string) (adapter.Outbound, bool)
- func (r *Router) Outbounds() []adapter.Outbound
- func (r *Router) PackageManager() tun.PackageManager
- func (r *Router) Provider(tag string) (adapter.Provider, bool)
- func (r *Router) Providers() []adapter.Provider
- func (r *Router) ResetNetwork() error
- func (r *Router) RouteConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error
- func (r *Router) RoutePacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error
- func (r *Router) Rules() []adapter.Rule
- func (r *Router) SetClashServer(server adapter.ClashServer)
- func (r *Router) SetV2RayServer(server adapter.V2RayServer)
- func (r *Router) Start() error
- func (r *Router) TimeFunc() func() time.Time
- func (r *Router) UpdateInterfaces() error
- func (r *Router) V2RayServer() adapter.V2RayServer
- type RuleItem
- type UserIdItem
- type UserItem
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrBadPortRange = E.New("bad port range")
Functions ¶
func LogDNSAnswers ¶
func NewDNSRule ¶
Types ¶
type AuthUserItem ¶
type AuthUserItem struct {
// contains filtered or unexported fields
}
func NewAuthUserItem ¶
func NewAuthUserItem(users []string) *AuthUserItem
func (*AuthUserItem) Match ¶
func (r *AuthUserItem) Match(metadata *adapter.InboundContext) bool
func (*AuthUserItem) String ¶
func (r *AuthUserItem) String() string
type ClashModeItem ¶
type ClashModeItem struct {
// contains filtered or unexported fields
}
func NewClashModeItem ¶
func NewClashModeItem(router adapter.Router, mode string) *ClashModeItem
func (*ClashModeItem) Match ¶
func (r *ClashModeItem) Match(metadata *adapter.InboundContext) bool
func (*ClashModeItem) String ¶
func (r *ClashModeItem) String() string
type DNSReverseMapping ¶
type DNSReverseMapping struct {
// contains filtered or unexported fields
}
func NewDNSReverseMapping ¶
func NewDNSReverseMapping() *DNSReverseMapping
type DefaultDNSRule ¶
type DefaultDNSRule struct {
// contains filtered or unexported fields
}
func NewDefaultDNSRule ¶
func NewDefaultDNSRule(router adapter.Router, logger log.ContextLogger, options option.DefaultDNSRule) (*DefaultDNSRule, error)
func (*DefaultDNSRule) DisableCache ¶
func (r *DefaultDNSRule) DisableCache() bool
func (*DefaultDNSRule) Match ¶
func (r *DefaultDNSRule) Match(metadata *adapter.InboundContext) bool
func (*DefaultDNSRule) RewriteTTL ¶
func (r *DefaultDNSRule) RewriteTTL() *uint32
func (*DefaultDNSRule) UpdateGeosite ¶
func (r *DefaultDNSRule) UpdateGeosite() error
type DefaultRule ¶
type DefaultRule struct {
// contains filtered or unexported fields
}
func NewDefaultRule ¶
func NewDefaultRule(router adapter.Router, logger log.ContextLogger, options option.DefaultRule) (*DefaultRule, error)
func (*DefaultRule) Match ¶
func (r *DefaultRule) Match(metadata *adapter.InboundContext) bool
func (*DefaultRule) UpdateGeosite ¶
func (r *DefaultRule) UpdateGeosite() error
type DomainItem ¶
type DomainItem struct {
// contains filtered or unexported fields
}
func NewDomainItem ¶
func NewDomainItem(domains []string, domainSuffixes []string) *DomainItem
func (*DomainItem) Match ¶
func (r *DomainItem) Match(metadata *adapter.InboundContext) bool
func (*DomainItem) String ¶
func (r *DomainItem) String() string
type DomainKeywordItem ¶
type DomainKeywordItem struct {
// contains filtered or unexported fields
}
func NewDomainKeywordItem ¶
func NewDomainKeywordItem(keywords []string) *DomainKeywordItem
func (*DomainKeywordItem) Match ¶
func (r *DomainKeywordItem) Match(metadata *adapter.InboundContext) bool
func (*DomainKeywordItem) String ¶
func (r *DomainKeywordItem) String() string
type DomainRegexItem ¶
type DomainRegexItem struct {
// contains filtered or unexported fields
}
func NewDomainRegexItem ¶
func NewDomainRegexItem(expressions []string) (*DomainRegexItem, error)
func (*DomainRegexItem) Match ¶
func (r *DomainRegexItem) Match(metadata *adapter.InboundContext) bool
func (*DomainRegexItem) String ¶
func (r *DomainRegexItem) String() string
type GeoIPItem ¶
type GeoIPItem struct {
// contains filtered or unexported fields
}
func NewGeoIPItem ¶
type GeositeItem ¶
type GeositeItem struct {
// contains filtered or unexported fields
}
func NewGeositeItem ¶
func NewGeositeItem(router adapter.Router, logger log.ContextLogger, codes []string) *GeositeItem
func (*GeositeItem) Match ¶
func (r *GeositeItem) Match(metadata *adapter.InboundContext) bool
func (*GeositeItem) String ¶
func (r *GeositeItem) String() string
func (*GeositeItem) Update ¶
func (r *GeositeItem) Update() error
type IPCIDRItem ¶
type IPCIDRItem struct {
// contains filtered or unexported fields
}
func NewIPCIDRItem ¶
func NewIPCIDRItem(isSource bool, prefixStrings []string) (*IPCIDRItem, error)
func (*IPCIDRItem) Match ¶
func (r *IPCIDRItem) Match(metadata *adapter.InboundContext) bool
func (*IPCIDRItem) String ¶
func (r *IPCIDRItem) String() string
type IPVersionItem ¶
type IPVersionItem struct {
// contains filtered or unexported fields
}
func NewIPVersionItem ¶
func NewIPVersionItem(isIPv6 bool) *IPVersionItem
func (*IPVersionItem) Match ¶
func (r *IPVersionItem) Match(metadata *adapter.InboundContext) bool
func (*IPVersionItem) String ¶
func (r *IPVersionItem) String() string
type InboundItem ¶
type InboundItem struct {
// contains filtered or unexported fields
}
func NewInboundRule ¶
func NewInboundRule(inbounds []string) *InboundItem
func (*InboundItem) Match ¶
func (r *InboundItem) Match(metadata *adapter.InboundContext) bool
func (*InboundItem) String ¶
func (r *InboundItem) String() string
type LogicalDNSRule ¶
type LogicalDNSRule struct {
// contains filtered or unexported fields
}
func NewLogicalDNSRule ¶
func NewLogicalDNSRule(router adapter.Router, logger log.ContextLogger, options option.LogicalDNSRule) (*LogicalDNSRule, error)
func (*LogicalDNSRule) DisableCache ¶
func (r *LogicalDNSRule) DisableCache() bool
func (*LogicalDNSRule) Match ¶
func (r *LogicalDNSRule) Match(metadata *adapter.InboundContext) bool
func (*LogicalDNSRule) RewriteTTL ¶
func (r *LogicalDNSRule) RewriteTTL() *uint32
func (*LogicalDNSRule) UpdateGeosite ¶
func (r *LogicalDNSRule) UpdateGeosite() error
type LogicalRule ¶
type LogicalRule struct {
// contains filtered or unexported fields
}
func NewLogicalRule ¶
func NewLogicalRule(router adapter.Router, logger log.ContextLogger, options option.LogicalRule) (*LogicalRule, error)
func (*LogicalRule) Match ¶
func (r *LogicalRule) Match(metadata *adapter.InboundContext) bool
func (*LogicalRule) UpdateGeosite ¶
func (r *LogicalRule) UpdateGeosite() error
type NetworkItem ¶
type NetworkItem struct {
// contains filtered or unexported fields
}
func NewNetworkItem ¶
func NewNetworkItem(networks []string) *NetworkItem
func (*NetworkItem) Match ¶
func (r *NetworkItem) Match(metadata *adapter.InboundContext) bool
func (*NetworkItem) String ¶
func (r *NetworkItem) String() string
type OutboundItem ¶
type OutboundItem struct {
// contains filtered or unexported fields
}
func NewOutboundRule ¶
func NewOutboundRule(outbounds []string) *OutboundItem
func (*OutboundItem) Match ¶
func (r *OutboundItem) Match(metadata *adapter.InboundContext) bool
func (*OutboundItem) String ¶
func (r *OutboundItem) String() string
type PackageNameItem ¶
type PackageNameItem struct {
// contains filtered or unexported fields
}
func NewPackageNameItem ¶
func NewPackageNameItem(packageNameList []string) *PackageNameItem
func (*PackageNameItem) Match ¶
func (r *PackageNameItem) Match(metadata *adapter.InboundContext) bool
func (*PackageNameItem) String ¶
func (r *PackageNameItem) String() string
type PortItem ¶
type PortItem struct {
// contains filtered or unexported fields
}
func NewPortItem ¶
type PortRangeItem ¶
type PortRangeItem struct {
// contains filtered or unexported fields
}
func NewPortRangeItem ¶
func NewPortRangeItem(isSource bool, rangeList []string) (*PortRangeItem, error)
func (*PortRangeItem) Match ¶
func (r *PortRangeItem) Match(metadata *adapter.InboundContext) bool
func (*PortRangeItem) String ¶
func (r *PortRangeItem) String() string
type ProcessItem ¶
type ProcessItem struct {
// contains filtered or unexported fields
}
func NewProcessItem ¶
func NewProcessItem(processNameList []string) *ProcessItem
func (*ProcessItem) Match ¶
func (r *ProcessItem) Match(metadata *adapter.InboundContext) bool
func (*ProcessItem) String ¶
func (r *ProcessItem) String() string
type ProcessPathItem ¶
type ProcessPathItem struct {
// contains filtered or unexported fields
}
func NewProcessPathItem ¶
func NewProcessPathItem(processNameList []string) *ProcessPathItem
func (*ProcessPathItem) Match ¶
func (r *ProcessPathItem) Match(metadata *adapter.InboundContext) bool
func (*ProcessPathItem) String ¶
func (r *ProcessPathItem) String() string
type ProtocolItem ¶
type ProtocolItem struct {
// contains filtered or unexported fields
}
func NewProtocolItem ¶
func NewProtocolItem(protocols []string) *ProtocolItem
func (*ProtocolItem) Match ¶
func (r *ProtocolItem) Match(metadata *adapter.InboundContext) bool
func (*ProtocolItem) String ¶
func (r *ProtocolItem) String() string
type QueryTypeItem ¶
type QueryTypeItem struct {
// contains filtered or unexported fields
}
func NewQueryTypeItem ¶
func NewQueryTypeItem(typeList []option.DNSQueryType) *QueryTypeItem
func (*QueryTypeItem) Match ¶
func (r *QueryTypeItem) Match(metadata *adapter.InboundContext) bool
func (*QueryTypeItem) String ¶
func (r *QueryTypeItem) String() string
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
func (*Router) AutoDetectInterface ¶
func (*Router) AutoDetectInterfaceFunc ¶
func (*Router) ClashServer ¶
func (r *Router) ClashServer() adapter.ClashServer
func (*Router) DefaultInterface ¶
func (*Router) DefaultMark ¶
func (*Router) FakeIPStore ¶
func (r *Router) FakeIPStore() adapter.FakeIPStore
func (*Router) GeoIPReader ¶
func (*Router) Initialize ¶
func (*Router) InterfaceFinder ¶
func (r *Router) InterfaceFinder() control.InterfaceFinder
func (*Router) InterfaceMonitor ¶
func (r *Router) InterfaceMonitor() tun.DefaultInterfaceMonitor
func (*Router) LookupDefault ¶
func (*Router) NetworkMonitor ¶
func (r *Router) NetworkMonitor() tun.NetworkUpdateMonitor
func (*Router) OnPackagesUpdated ¶
func (*Router) PackageManager ¶
func (r *Router) PackageManager() tun.PackageManager
func (*Router) ResetNetwork ¶
func (*Router) RouteConnection ¶
func (*Router) RoutePacketConnection ¶
func (r *Router) RoutePacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error
func (*Router) SetClashServer ¶
func (r *Router) SetClashServer(server adapter.ClashServer)
func (*Router) SetV2RayServer ¶
func (r *Router) SetV2RayServer(server adapter.V2RayServer)
func (*Router) UpdateInterfaces ¶
func (*Router) V2RayServer ¶
func (r *Router) V2RayServer() adapter.V2RayServer
type RuleItem ¶
type RuleItem interface { Match(metadata *adapter.InboundContext) bool String() string }
type UserIdItem ¶
type UserIdItem struct {
// contains filtered or unexported fields
}
func NewUserIDItem ¶
func NewUserIDItem(userIdList []int32) *UserIdItem
func (*UserIdItem) Match ¶
func (r *UserIdItem) Match(metadata *adapter.InboundContext) bool
func (*UserIdItem) String ¶
func (r *UserIdItem) String() string
Source Files ¶
- interface_finder.go
- router.go
- router_dns.go
- router_geo_resources.go
- rule_abstract.go
- rule_default.go
- rule_dns.go
- rule_item_auth_user.go
- rule_item_cidr.go
- rule_item_clash_mode.go
- rule_item_domain.go
- rule_item_domain_keyword.go
- rule_item_domain_regex.go
- rule_item_geoip.go
- rule_item_geosite.go
- rule_item_inbound.go
- rule_item_ipversion.go
- rule_item_network.go
- rule_item_outbound.go
- rule_item_package_name.go
- rule_item_port.go
- rule_item_port_range.go
- rule_item_process_name.go
- rule_item_process_path.go
- rule_item_protocol.go
- rule_item_query_type.go
- rule_item_user.go
- rule_item_user_id.go
Click to show internal directories.
Click to hide internal directories.