forward

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Forwarder

type Forwarder interface {
	// UpdateTarget 原子替换目标(nil 表示目标不可用),仅影响新连接/新会话。
	UpdateTarget(t *Target)
	SetCloseOnSwitch(v bool)
	// ActiveConns TCP 为活跃连接数,UDP 为活跃会话数。
	ActiveConns() int64
	Close()
}

Forwarder 是数据面抽象:TCP/UDP 均实现,供规则管理器统一编排。

type TCPForwarder

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

TCPForwarder 监听宿主机端口,把每个连接代理到当前目标(可热更新)。

func NewTCPForwarder

func NewTCPForwarder(listen string) (*TCPForwarder, error)

func (*TCPForwarder) ActiveConns

func (f *TCPForwarder) ActiveConns() int64

func (*TCPForwarder) Close

func (f *TCPForwarder) Close()

func (*TCPForwarder) SetCloseOnSwitch

func (f *TCPForwarder) SetCloseOnSwitch(v bool)

func (*TCPForwarder) UpdateTarget

func (f *TCPForwarder) UpdateTarget(t *Target)

UpdateTarget 原子替换目标,仅影响新连接;closeOnSwitch 开启时目标变化会断开存量连接。

type Target

type Target struct {
	IP   string
	Port int
}

Target 是转发目标。Forwarder 内部以 atomic.Pointer 持有,可热更新。

func (Target) String

func (t Target) String() string

type UDPForwarder

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

UDPForwarder 按客户端源地址维护会话表,把每个会话代理到当前目标。

func NewUDPForwarder

func NewUDPForwarder(listen string, idleTimeout time.Duration) (*UDPForwarder, error)

func (*UDPForwarder) ActiveConns

func (f *UDPForwarder) ActiveConns() int64

func (*UDPForwarder) Close

func (f *UDPForwarder) Close()

func (*UDPForwarder) SetCloseOnSwitch

func (f *UDPForwarder) SetCloseOnSwitch(v bool)

func (*UDPForwarder) SetIdleTimeout

func (f *UDPForwarder) SetIdleTimeout(d time.Duration)

func (*UDPForwarder) UpdateTarget

func (f *UDPForwarder) UpdateTarget(t *Target)

UpdateTarget 热更新目标;closeOnSwitch 开启时立即清空会话表, 否则旧会话在该客户端下次发包时迁移到新目标(后端方向保持到被替换或空闲回收)。

Jump to

Keyboard shortcuts

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