route

package
v0.0.0-...-f74919f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2025 License: GPL-2.0 Imports: 52 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrBadPortRange = E.New("bad port range")

Functions

func NewDNSRule

func NewDNSRule(ctx context.Context, router adapter.Router, yousuocanshu option.DNSRule, checkServer bool) (adapter.DNSRule, error)

func NewHeadlessRule

func NewHeadlessRule(router adapter.Router, yousuocanshu option.HeadlessRule) (adapter.HeadlessRule, error)

func NewRule

func NewRule(ctx context.Context, router adapter.Router, yousuocanshu option.Rule, checkOutbound bool) (adapter.Rule, error)

func NewRuleSet

func NewRuleSet(ctx context.Context, router adapter.Router, yousuocanshu option.RuleSet) (adapter.RuleSet, error)

func NewdizhibuxngGeisheizhi

func NewdizhibuxngGeisheizhi(expressions []string) (*dizhibuxngGeisheizhi, error)

Types

type AdGuardDomainItem

type AdGuardDomainItem struct {
	// contains filtered or unexported fields
}

func NewAdGuardDomainItem

func NewAdGuardDomainItem(ruleLines []string) *AdGuardDomainItem

func NewRawAdGuardDomainItem

func NewRawAdGuardDomainItem(matcher *domain.AdGuardMatcher) *AdGuardDomainItem

func (*AdGuardDomainItem) Match

func (r *AdGuardDomainItem) Match(metadata *adapter.InboundContext) bool

func (*AdGuardDomainItem) String

func (r *AdGuardDomainItem) String() string

type AuthYonghumetise

type AuthYonghumetise struct {
	// contains filtered or unexported fields
}

func NewAuthYonghumetise

func NewAuthYonghumetise(users []string) *AuthYonghumetise

func (*AuthYonghumetise) Match

func (r *AuthYonghumetise) Match(metadata *adapter.InboundContext) bool

func (*AuthYonghumetise) String

func (r *AuthYonghumetise) String() string

type BuelseCesspagetse

type BuelseCesspagetse struct {
	// contains filtered or unexported fields
}

func NewBuelseCesspagetse

func NewBuelseCesspagetse(processNameList []string) *BuelseCesspagetse

func (*BuelseCesspagetse) Match

func (r *BuelseCesspagetse) Match(metadata *adapter.InboundContext) bool

func (*BuelseCesspagetse) String

func (r *BuelseCesspagetse) 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 ClientItem

type ClientItem struct {
	// contains filtered or unexported fields
}

func NewClientItem

func NewClientItem(clients []string) *ClientItem

func (*ClientItem) Match

func (r *ClientItem) Match(metadata *adapter.InboundContext) bool

func (*ClientItem) String

func (r *ClientItem) String() string

type DNSReverseMapping

type DNSReverseMapping struct {
	// contains filtered or unexported fields
}

func NewDNSReverseMapping

func NewDNSReverseMapping() *DNSReverseMapping

func (*DNSReverseMapping) Query

func (m *DNSReverseMapping) Query(address netip.Addr) (string, bool)

func (*DNSReverseMapping) Save

func (m *DNSReverseMapping) Save(address netip.Addr, domain string, ttl int)

type DefaultDNSRule

type DefaultDNSRule struct {
	// contains filtered or unexported fields
}

func NewDefaultDNSRule

func NewDefaultDNSRule(ctx context.Context, router adapter.Router, yousuocanshu option.DefaultDNSRule) (*DefaultDNSRule, error)

func (*DefaultDNSRule) ClientSubnet

func (r *DefaultDNSRule) ClientSubnet() *netip.Prefix

func (*DefaultDNSRule) Close

func (r *DefaultDNSRule) Close() error

func (*DefaultDNSRule) DisableCache

func (r *DefaultDNSRule) DisableCache() bool

func (*DefaultDNSRule) Match

func (r *DefaultDNSRule) Match(metadata *adapter.InboundContext) bool

func (*DefaultDNSRule) MatchAddressLimit

func (r *DefaultDNSRule) MatchAddressLimit(metadata *adapter.InboundContext) bool

func (*DefaultDNSRule) Outbound

func (r *DefaultDNSRule) Outbound() string

func (*DefaultDNSRule) RewriteTTL

func (r *DefaultDNSRule) RewriteTTL() *uint32

func (*DefaultDNSRule) Start

func (r *DefaultDNSRule) Start() error

func (*DefaultDNSRule) String

func (r *DefaultDNSRule) String() string

func (*DefaultDNSRule) Type

func (r *DefaultDNSRule) Type() string

func (*DefaultDNSRule) UpdateGeosite

func (r *DefaultDNSRule) UpdateGeosite() error

func (*DefaultDNSRule) WithAddressLimit

func (r *DefaultDNSRule) WithAddressLimit() bool

type DefaultHeadlessRule

type DefaultHeadlessRule struct {
	// contains filtered or unexported fields
}

func NewDefaultHeadlessRule

func NewDefaultHeadlessRule(router adapter.Router, yousuocanshu option.DefaultHeadlessRule) (*DefaultHeadlessRule, error)

func (*DefaultHeadlessRule) Close

func (r *DefaultHeadlessRule) Close() error

func (*DefaultHeadlessRule) Match

func (r *DefaultHeadlessRule) Match(metadata *adapter.InboundContext) bool

func (*DefaultHeadlessRule) Outbound

func (r *DefaultHeadlessRule) Outbound() string

func (*DefaultHeadlessRule) Start

func (r *DefaultHeadlessRule) Start() error

func (*DefaultHeadlessRule) String

func (r *DefaultHeadlessRule) String() string

func (*DefaultHeadlessRule) Type

func (r *DefaultHeadlessRule) Type() string

func (*DefaultHeadlessRule) UpdateGeosite

func (r *DefaultHeadlessRule) UpdateGeosite() error

type DefaultRule

type DefaultRule struct {
	// contains filtered or unexported fields
}

func NewDefaultRule

func NewDefaultRule(ctx context.Context, router adapter.Router, yousuocanshu option.DefaultRule) (*DefaultRule, error)

func (*DefaultRule) Close

func (r *DefaultRule) Close() error

func (*DefaultRule) Match

func (r *DefaultRule) Match(metadata *adapter.InboundContext) bool

func (*DefaultRule) Outbound

func (r *DefaultRule) Outbound() string

func (*DefaultRule) Start

func (r *DefaultRule) Start() error

func (*DefaultRule) String

func (r *DefaultRule) String() string

func (*DefaultRule) Type

func (r *DefaultRule) Type() string

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 NewRawDomainItem

func NewRawDomainItem(matcher *domain.Matcher) *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 GongzuoMeisats

type GongzuoMeisats struct {
	// contains filtered or unexported fields
}

func NewGongzuoMeisats

func NewGongzuoMeisats(networks []string) *GongzuoMeisats

func (*GongzuoMeisats) Match

func (r *GongzuoMeisats) Match(metadata *adapter.InboundContext) bool

func (*GongzuoMeisats) String

func (r *GongzuoMeisats) String() string

type GuizeSheizhimest

type GuizeSheizhimest struct {
	// contains filtered or unexported fields
}

func NewGuizeSheizhimest

func NewGuizeSheizhimest(router adapter.Router, tagList []string, ipCIDRMatchSource bool, ipCidrAcceptEmpty bool) *GuizeSheizhimest

func (*GuizeSheizhimest) ContainsDestinationIPCIDRRule

func (r *GuizeSheizhimest) ContainsDestinationIPCIDRRule() bool

func (*GuizeSheizhimest) Match

func (r *GuizeSheizhimest) Match(metadata *adapter.InboundContext) bool

func (*GuizeSheizhimest) Start

func (r *GuizeSheizhimest) Start() error

func (*GuizeSheizhimest) String

func (r *GuizeSheizhimest) String() string

type IPCIDRItem

type IPCIDRItem struct {
	// contains filtered or unexported fields
}

func NewIPCIDRItem

func NewIPCIDRItem(isSource bool, prefixStrings []string) (*IPCIDRItem, error)

func NewRawIPCIDRItem

func NewRawIPCIDRItem(isSource bool, ipSet *netipx.IPSet) *IPCIDRItem

func (*IPCIDRItem) Match

func (r *IPCIDRItem) Match(metadata *adapter.InboundContext) bool

func (*IPCIDRItem) String

func (r *IPCIDRItem) String() string

type IPIsPrivateItem

type IPIsPrivateItem struct {
	// contains filtered or unexported fields
}

func NewIPIsPrivateItem

func NewIPIsPrivateItem(isSource bool) *IPIsPrivateItem

func (*IPIsPrivateItem) Match

func (r *IPIsPrivateItem) Match(metadata *adapter.InboundContext) bool

func (*IPIsPrivateItem) String

func (r *IPIsPrivateItem) 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 JiekouMetise

type JiekouMetise struct {
	// contains filtered or unexported fields
}

func NewJiekouMetise

func NewJiekouMetise(isSource bool, ports []uint16) *JiekouMetise

func (*JiekouMetise) Match

func (r *JiekouMetise) Match(metadata *adapter.InboundContext) bool

func (*JiekouMetise) String

func (r *JiekouMetise) String() string

type LogicalDNSRule

type LogicalDNSRule struct {
	// contains filtered or unexported fields
}

func NewLogicalDNSRule

func NewLogicalDNSRule(ctx context.Context, router adapter.Router, yousuocanshu option.LogicalDNSRule) (*LogicalDNSRule, error)

func (*LogicalDNSRule) ClientSubnet

func (r *LogicalDNSRule) ClientSubnet() *netip.Prefix

func (*LogicalDNSRule) Close

func (r *LogicalDNSRule) Close() error

func (*LogicalDNSRule) DisableCache

func (r *LogicalDNSRule) DisableCache() bool

func (*LogicalDNSRule) Match

func (r *LogicalDNSRule) Match(metadata *adapter.InboundContext) bool

func (*LogicalDNSRule) MatchAddressLimit

func (r *LogicalDNSRule) MatchAddressLimit(metadata *adapter.InboundContext) bool

func (*LogicalDNSRule) Outbound

func (r *LogicalDNSRule) Outbound() string

func (*LogicalDNSRule) RewriteTTL

func (r *LogicalDNSRule) RewriteTTL() *uint32

func (*LogicalDNSRule) Start

func (r *LogicalDNSRule) Start() error

func (*LogicalDNSRule) String

func (r *LogicalDNSRule) String() string

func (*LogicalDNSRule) Type

func (r *LogicalDNSRule) Type() string

func (*LogicalDNSRule) UpdateGeosite

func (r *LogicalDNSRule) UpdateGeosite() error

func (*LogicalDNSRule) WithAddressLimit

func (r *LogicalDNSRule) WithAddressLimit() bool

type LogicalHeadlessRule

type LogicalHeadlessRule struct {
	// contains filtered or unexported fields
}

func NewLogicalHeadlessRule

func NewLogicalHeadlessRule(router adapter.Router, yousuocanshu option.LogicalHeadlessRule) (*LogicalHeadlessRule, error)

func (*LogicalHeadlessRule) Close

func (r *LogicalHeadlessRule) Close() error

func (*LogicalHeadlessRule) Match

func (r *LogicalHeadlessRule) Match(metadata *adapter.InboundContext) bool

func (*LogicalHeadlessRule) Outbound

func (r *LogicalHeadlessRule) Outbound() string

func (*LogicalHeadlessRule) Start

func (r *LogicalHeadlessRule) Start() error

func (*LogicalHeadlessRule) String

func (r *LogicalHeadlessRule) String() string

func (*LogicalHeadlessRule) Type

func (r *LogicalHeadlessRule) Type() string

func (*LogicalHeadlessRule) UpdateGeosite

func (r *LogicalHeadlessRule) UpdateGeosite() error

type LogicalRule

type LogicalRule struct {
	// contains filtered or unexported fields
}

func NewLogicalRule

func NewLogicalRule(ctx context.Context, router adapter.Router, yousuocanshu option.LogicalRule) (*LogicalRule, error)

func (*LogicalRule) Close

func (r *LogicalRule) Close() error

func (*LogicalRule) Match

func (r *LogicalRule) Match(metadata *adapter.InboundContext) bool

func (*LogicalRule) Outbound

func (r *LogicalRule) Outbound() string

func (*LogicalRule) Start

func (r *LogicalRule) Start() error

func (*LogicalRule) String

func (r *LogicalRule) String() string

func (*LogicalRule) Type

func (r *LogicalRule) Type() string

func (*LogicalRule) UpdateGeosite

func (r *LogicalRule) UpdateGeosite() error

type MeisozeDizhiTMes

type MeisozeDizhiTMes struct {
	// contains filtered or unexported fields
}

func NewMeisozeDizhiTMes

func NewMeisozeDizhiTMes(router adapter.Router, isSource bool, codes []string) *MeisozeDizhiTMes

func (*MeisozeDizhiTMes) Match

func (r *MeisozeDizhiTMes) Match(metadata *adapter.InboundContext) bool

func (*MeisozeDizhiTMes) String

func (r *MeisozeDizhiTMes) String() string

type NaliZuoxiaozmose

type NaliZuoxiaozmose struct {
	// contains filtered or unexported fields
}

func NewNaliZuoxiaozmose

func NewNaliZuoxiaozmose(router adapter.Router, codes []string) *NaliZuoxiaozmose

func (*NaliZuoxiaozmose) Match

func (r *NaliZuoxiaozmose) Match(metadata *adapter.InboundContext) bool

func (*NaliZuoxiaozmose) String

func (r *NaliZuoxiaozmose) String() string

func (*NaliZuoxiaozmose) Update

func (r *NaliZuoxiaozmose) Update() error

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 QuntiShijinLeixing

type QuntiShijinLeixing struct {
	// contains filtered or unexported fields
}

func NewQuntiShijinLeixing

func NewQuntiShijinLeixing(typeList []option.DNSQueryType) *QuntiShijinLeixing

func (*QuntiShijinLeixing) Match

func (r *QuntiShijinLeixing) Match(metadata *adapter.InboundContext) bool

func (*QuntiShijinLeixing) String

func (r *QuntiShijinLeixing) String() string

type Router

type Router struct {
	// contains filtered or unexported fields
}

func NewRouter

func NewRouter(
	ctx context.Context,
	yousuocanshu option.RouteOptions,
	dnsOptions option.DNSOptions,
	ntpOptions option.NTPOptions,
	inbounds []option.Inbound,
	taipingMianlian platform.LuowangLian,
) (*Router, error)

func (*Router) AutoDetectInterface

func (r *Router) AutoDetectInterface() bool

func (*Router) AutoDetectInterfaceFunc

func (r *Router) AutoDetectInterfaceFunc() control.Func

func (*Router) AutoRedirectOutputMark

func (r *Router) AutoRedirectOutputMark() uint32

func (*Router) ClashServer

func (r *Router) ClashServer() adapter.ClashServer

func (*Router) Cleanup

func (r *Router) Cleanup() error

func (*Router) Close

func (r *Router) Close() error

func (*Router) DefaultInterface

func (r *Router) DefaultInterface() string

func (*Router) DefaultMark

func (r *Router) DefaultMark() uint32

func (*Router) DefaultOutbound

func (r *Router) DefaultOutbound(network string) (adapter.Outbound, error)

func (*Router) Exchange

func (r *Router) Exchange(ctx context.Context, message *mDNS.Msg) (*mDNS.Msg, error)

func (*Router) FakeIPStore

func (r *Router) FakeIPStore() adapter.FakeIPStore

func (*Router) GeoIPReader

func (r *Router) GeoIPReader() *geoip.Reader

func (*Router) Initialize

func (r *Router) Initialize(inbounds []adapter.Inbound, outbounds []adapter.Outbound, defaultOutbound func() adapter.Outbound) error

func (*Router) InterfaceFinder

func (r *Router) InterfaceFinder() control.InterfaceFinder

func (*Router) InterfaceMonitor

func (r *Router) InterfaceMonitor() tun.DefaultInterfaceMonitor

func (*Router) LoadGeosite

func (r *Router) LoadGeosite(code string) (adapter.Rule, error)

func (*Router) Lookup

func (r *Router) Lookup(ctx context.Context, domain string, strategy dns.DomainStrategy) ([]netip.Addr, error)

func (*Router) LookupDefault

func (r *Router) LookupDefault(ctx context.Context, domain string) ([]netip.Addr, error)

func (*Router) NetworkMonitor

func (r *Router) NetworkMonitor() tun.NetworkUpdateMonitor

func (*Router) NewError

func (r *Router) NewError(ctx context.Context, err error)

func (*Router) OnPackagesUpdated

func (r *Router) OnPackagesUpdated(packages int, sharedUsers int)

func (*Router) Outbound

func (r *Router) Outbound(tag string) (adapter.Outbound, bool)

func (*Router) Outbounds

func (r *Router) Outbounds() []adapter.Outbound

func (*Router) PackageManager

func (r *Router) PackageManager() tun.PackageManager

func (*Router) PostStart

func (r *Router) PostStart() error

func (*Router) PreStart

func (r *Router) PreStart() error

func (*Router) RegisterAutoRedirectOutputMark

func (r *Router) RegisterAutoRedirectOutputMark(mark uint32) error

func (*Router) ResetNetwork

func (r *Router) ResetNetwork() error

func (*Router) RouteConnection

func (r *Router) RouteConnection(ctx context.Context, conn net.Conn, metadata adapter.InboundContext) error

func (*Router) RoutePacketConnection

func (r *Router) RoutePacketConnection(ctx context.Context, conn N.PacketConn, metadata adapter.InboundContext) error

func (*Router) RuleSet

func (r *Router) RuleSet(tag string) (adapter.RuleSet, bool)

func (*Router) Rules

func (r *Router) Rules() []adapter.Rule

func (*Router) SetClashServer

func (r *Router) SetClashServer(server adapter.ClashServer)

func (*Router) SetV2RayServer

func (r *Router) SetV2RayServer(server adapter.V2RayServer)

func (*Router) Start

func (r *Router) Start() error

func (*Router) UpdateInterfaces

func (r *Router) UpdateInterfaces() error

func (*Router) V2RayServer

func (r *Router) V2RayServer() adapter.V2RayServer

func (*Router) WIFIState

func (r *Router) WIFIState() adapter.WIFIState

type RuleItem

type RuleItem interface {
	Match(metadata *adapter.InboundContext) bool
	String() string
}

type TheNewwoiWangletes

type TheNewwoiWangletes struct {
	// contains filtered or unexported fields
}

func XindeluxianWanl

func XindeluxianWanl(router adapter.Router, ssidList []string) *TheNewwoiWangletes

func (*TheNewwoiWangletes) Match

func (r *TheNewwoiWangletes) Match(metadata *adapter.InboundContext) bool

func (*TheNewwoiWangletes) String

func (r *TheNewwoiWangletes) String() string

type TiipyonghuDantes

type TiipyonghuDantes struct {
	// contains filtered or unexported fields
}

func NewUserIDItem

func NewUserIDItem(userIdList []int32) *TiipyonghuDantes

func (*TiipyonghuDantes) Match

func (r *TiipyonghuDantes) Match(metadata *adapter.InboundContext) bool

func (*TiipyonghuDantes) String

func (r *TiipyonghuDantes) String() string

type Tongdapnewsaeta

type Tongdapnewsaeta struct {
	// contains filtered or unexported fields
}

func NewTongdapnewsaeta

func NewTongdapnewsaeta(processNameList []string) *Tongdapnewsaeta

func (*Tongdapnewsaeta) Match

func (r *Tongdapnewsaeta) Match(metadata *adapter.InboundContext) bool

func (*Tongdapnewsaeta) String

func (r *Tongdapnewsaeta) String() string

type WaizileixingMests

type WaizileixingMests struct {
	// contains filtered or unexported fields
}

func NewOutboundRule

func NewOutboundRule(outbounds []string) *WaizileixingMests

func (*WaizileixingMests) Match

func (r *WaizileixingMests) Match(metadata *adapter.InboundContext) bool

func (*WaizileixingMests) String

func (r *WaizileixingMests) String() string

type XieyiLiseab

type XieyiLiseab struct {
	// contains filtered or unexported fields
}

func NewXieyiLiseab

func NewXieyiLiseab(protocols []string) *XieyiLiseab

func (*XieyiLiseab) Match

func (r *XieyiLiseab) Match(metadata *adapter.InboundContext) bool

func (*XieyiLiseab) String

func (r *XieyiLiseab) String() string

type XinWangGoBaqpe

type XinWangGoBaqpe struct {
	// contains filtered or unexported fields
}

func NewXinWangGoBaqpe

func NewXinWangGoBaqpe(router adapter.Router, bssidList []string) *XinWangGoBaqpe

func (*XinWangGoBaqpe) Match

func (r *XinWangGoBaqpe) Match(metadata *adapter.InboundContext) bool

func (*XinWangGoBaqpe) String

func (r *XinWangGoBaqpe) String() string

type Yonghumetise

type Yonghumetise struct {
	// contains filtered or unexported fields
}

func NewYonghumetise

func NewYonghumetise(users []string) *Yonghumetise

func (*Yonghumetise) Match

func (r *Yonghumetise) Match(metadata *adapter.InboundContext) bool

func (*Yonghumetise) String

func (r *Yonghumetise) String() string

type ZhizhangMingmites

type ZhizhangMingmites struct {
	// contains filtered or unexported fields
}

func NewZhizhangMingmites

func NewZhizhangMingmites(packageNameList []string) *ZhizhangMingmites

func (*ZhizhangMingmites) Match

func (r *ZhizhangMingmites) Match(metadata *adapter.InboundContext) bool

func (*ZhizhangMingmites) String

func (r *ZhizhangMingmites) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL