outbound

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2023 License: MIT Imports: 23 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildGroups added in v1.0.0

func BuildGroups(globalConf config.Conf) (map[string]IGroup, error)

Types

type Caller

type Caller interface {
	Call(request *dns.Msg) (r *dns.Msg, err error)
	Start(resolver dns.Handler)
	Exit()
	String() string
}

Caller 上游DNS请求基类

type DNSCaller added in v0.7.0

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

DNSCaller UDP/TCP/DOT请求类

func NewDNSCaller added in v0.7.0

func NewDNSCaller(server, network string, proxy proxy.Dialer) *DNSCaller

NewDNSCaller 创建一个UDP/TCP Caller,需要服务器地址(ip+端口)、网络类型(udp、tcp),可选代理

func NewDoTCaller added in v0.7.0

func NewDoTCaller(server, serverName string, proxy proxy.Dialer) *DNSCaller

NewDoTCaller 创建一个DoT Caller,需要服务器地址(ip+端口)、证书名称,可选代理

func (*DNSCaller) Call added in v0.7.0

func (caller *DNSCaller) Call(request *dns.Msg) (r *dns.Msg, err error)

Call 向目标上游DNS转发请求

func (*DNSCaller) Exit added in v1.0.0

func (caller *DNSCaller) Exit()

Exit caller退出时行为

func (*DNSCaller) Start added in v1.0.0

func (caller *DNSCaller) Start(_ dns.Handler)

func (*DNSCaller) String added in v1.0.0

func (caller *DNSCaller) String() string

String 描述caller

type DoHCallerV2 added in v1.0.0

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

DoHCallerV2 DoT请求类,通过resolver自动解析域名

func NewDoHCallerV2 added in v1.0.0

func NewDoHCallerV2(rawURL string, dialer proxy.Dialer) (*DoHCallerV2, error)

NewDoHCallerV2 创建一个DoHCaller,需要服务器url,可选代理

func (*DoHCallerV2) Call added in v1.0.0

func (caller *DoHCallerV2) Call(request *dns.Msg) (r *dns.Msg, err error)

Call 向上游DNS转发请求

func (*DoHCallerV2) Exit added in v1.0.0

func (caller *DoHCallerV2) Exit()

Exit 停止后台goroutine。caller退出时行为

func (*DoHCallerV2) SetResolver added in v1.0.0

func (caller *DoHCallerV2) SetResolver(resolver dns.Handler)

SetResolver 为DoHCaller设置域名解析器,需要在用NewDoHCallerV2()成功后调用一次

func (*DoHCallerV2) Start added in v1.0.0

func (caller *DoHCallerV2) Start(resolver dns.Handler)

func (*DoHCallerV2) String added in v1.0.0

func (caller *DoHCallerV2) String() string

String 描述caller

type IGroup added in v1.0.0

type IGroup interface {
	Match(req *dns.Msg) bool
	IsFallback() bool
	Handle(req *dns.Msg) *dns.Msg
	PostProcess(req *dns.Msg, resp *dns.Msg)
	Start(resolver dns.Handler)
	Stop()
	Name() string
	String() string
}

type MockIPSet added in v1.1.0

type MockIPSet struct {
	Name    string
	Timeout int
	MockAdd func(entry string, timeout int) error
}

func (MockIPSet) Add added in v1.1.0

func (i MockIPSet) Add(entry string, timeout int) error

func (MockIPSet) GetName added in v1.1.0

func (i MockIPSet) GetName() string

func (MockIPSet) GetTimeout added in v1.1.0

func (i MockIPSet) GetTimeout() int

Jump to

Keyboard shortcuts

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