driver

package
v1.4.4 Latest Latest
Warning

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

Go to latest
Published: Sep 25, 2023 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const LimitSetNamePrefix = `nging_limit_`

Variables

View Source
var ErrInvalidIPv4 = errors.New(`invalid IPv4 address`)
View Source
var ErrInvalidIPv6 = errors.New(`invalid IPv6 address`)
View Source
var ErrInvalidRuleNumber = errors.New(`invalid rule number`)
View Source
var ErrNatIPOrNatPortRequired = errors.New(`NAT IP 和 NAT 端口 不能同时为空`)
View Source
var ErrUnsupported = errors.New(`unsupported`)
View Source
var ErrUnsupportedChain = fmt.Errorf(`%w chain`, ErrUnsupported)
View Source
var ErrUnsupportedTable = fmt.Errorf(`%w table`, ErrUnsupported)

Functions

This section is empty.

Types

type Driver added in v1.1.0

type Driver interface {
	Enabled(on bool) error
	Reset() error // 重置(恢复到出厂设置)
	Clear() error // 清空本系统创建的所有规则
	Import(wfwFile string) error
	Export(wfwFile string) error
	Insert(rules ...Rule) error
	AsWhitelist(table, chain string) error
	Append(rules ...Rule) error
	Update(rule Rule) error
	Delete(rules ...Rule) error
	Exists(rule Rule) (bool, error)
	FindPositionByID(table, chain string, id uint) (uint, error)
}

type Protocol added in v1.3.2

type Protocol byte

Protocol to differentiate between IPv4 and IPv6

const (
	ProtocolIPv4 Protocol = iota
	ProtocolIPv6
)

type Rule

type Rule struct {
	ID        uint   `json:"id,omitempty" xml:"id,omitempty"`             // 静态规则 ID
	CustomID  string `json:"customID,omitempty" xml:"customID,omitempty"` // 自定义 ID 字符串, ID 为 0 时有效
	Number    uint   `json:"num,omitempty" xml:"num,omitempty"`           // 防火墙的规则编号。iptables 为 position 值;nftables 为 handle 值
	Type      string `json:"type" xml:"type"`                             // 表 filter / nat / etc.
	Name      string `json:"name" xml:"name"`                             // 名称
	Direction string `json:"direction" xml:"direction"`                   // 链 INPUT / OUTPUT / etc.
	Action    string `json:"action" xml:"action"`                         // ACCEPT / DROP / etc.
	Protocol  string `json:"protocol" xml:"protocol"`                     // tcp / udp / etc.

	// interface 网口
	Interface string `json:"interface" xml:"interface"` // 网络入口网络接口
	Outerface string `json:"outerface" xml:"outerface"` // 网络出口网络接口

	// state
	State string `json:"state" xml:"state"`

	// IP or Port
	RemoteIP   string `json:"remoteIP" xml:"remoteIP"`
	LocalIP    string `json:"localIP" xml:"localIP"`
	NatIP      string `json:"natIP" xml:"natIP"`
	RemotePort string `json:"remotePort" xml:"remotePort"` // 支持指定范围
	LocalPort  string `json:"localPort" xml:"localPort"`   // 支持指定范围
	NatPort    string `json:"natPort" xml:"natPort"`       // 支持指定范围
	IPVersion  string `json:"ipVersion"  xml:"ipVersion"`  // 4 or 6

	// Limit
	ConnLimit   string `json:"connLimit"  xml:"connLimit"`     // 每个IP最大连接数
	RateLimit   string `json:"rateLimit"  xml:"rateLimit"`     // 频率限制规则(格式:200/p/s)
	RateBurst   uint   `json:"rateBurst"  xml:"rateBurst"`     // 频率最大峰值
	RateExpires uint   `json:"rateExpires"  xml:"rateExpires"` // 过期时间(秒)
	Extra       echo.H `json:"extra,omitempty"  xml:"extra,omitempty"`
}

func (*Rule) GenLimitSetName added in v1.3.11

func (r *Rule) GenLimitSetName() string

func (*Rule) IDBytes added in v1.3.2

func (r *Rule) IDBytes() []byte

func (*Rule) IDString added in v1.3.2

func (r *Rule) IDString() string

type Stat added in v1.3.2

type Stat struct {
	Number      uint64     `json:"num,omitempty"`
	Packets     uint64     `json:"pkts"`
	Bytes       uint64     `json:"bytes"`
	Target      string     `json:"target"`
	Protocol    string     `json:"prot"`
	Opt         string     `json:"opt"`
	Input       string     `json:"in"`
	Output      string     `json:"out"`
	Source      *net.IPNet `json:"source"`
	Destination *net.IPNet `json:"destination"`
	Options     string     `json:"options"`
}

Stat represents a structured statistic entry.

Directories

Path Synopsis
Package netsh for windows
Package netsh for windows

Jump to

Keyboard shortcuts

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