diff --git a/pkg/dnsconfigs/defaults.go b/pkg/dnsconfigs/defaults.go index bc9b9c1..6565b58 100644 --- a/pkg/dnsconfigs/defaults.go +++ b/pkg/dnsconfigs/defaults.go @@ -12,19 +12,26 @@ const ( DefaultMaxThreadsMin = 1000 // 单节点最大线程数最小值 DefaultMaxThreadsMax = 100_000 // 单节点最大线程数最大值 - DefaultTCPMaxConnections = 100_000 // 单节点TCP最大连接数 - DefaultTCPMaxConnectionsPerIP = 1000 // 单IP最大连接数 - DefaultTCPMinConnectionsPerIP = 5 // 单IP最小连接数 - DefaultTCPNewConnectionsRate = 500 // 单IP连接速率限制(按分钟) - DefaultTCPNewConnectionsMinRate = 5 // 单IP最小连接速率 - DefaultTCPLinger = 3 // 单节点TCP Linger值 - DefaultTLSHandshakeTimeout = 3 // TLS握手超时时间 + DefaultTCPMaxConnections = 100_000 // 单节点TCP最大连接数 + DefaultTCPMaxConnectionsPerIP = 1000 // 单IP最大连接数 + DefaultTCPMinConnectionsPerIP = 5 // 单IP最小连接数 + DefaultTCPNewConnectionsRate = 500 // 单IP连接速率限制(按分钟) + DefaultTCPNewConnectionsMinRate = 5 // 单IP最小连接速率 + DefaultTCPDenyNewConnectionsRate = 1000 // 加入黑名单的连接速率 + DefaultTCPDenyNewConnectionsMinRate = 5 // 加入黑名单的最小连接速率 + DefaultTCPDenyNewConnectionsRateTimeout = 1800 // 超过黑名单连接速率禁止时间 + + DefaultTCPLinger = 3 // 单节点TCP Linger值 + DefaultTLSHandshakeTimeout = 3 // TLS握手超时时间 ) var DefaultConfigs = maps.Map{ - "tcpMaxConnections": DefaultTCPMaxConnections, - "tcpMaxConnectionsPerIP": DefaultTCPMaxConnectionsPerIP, - "tcpMinConnectionsPerIP": DefaultTCPMinConnectionsPerIP, - "tcpNewConnectionsRate": DefaultTCPNewConnectionsRate, - "tcpNewConnectionsMinRate": DefaultTCPNewConnectionsMinRate, + "tcpMaxConnections": DefaultTCPMaxConnections, + "tcpMaxConnectionsPerIP": DefaultTCPMaxConnectionsPerIP, + "tcpMinConnectionsPerIP": DefaultTCPMinConnectionsPerIP, + "tcpNewConnectionsRate": DefaultTCPNewConnectionsRate, + "tcpNewConnectionsMinRate": DefaultTCPNewConnectionsMinRate, + "tcpDenyNewConnectionsRate": DefaultTCPDenyNewConnectionsRate, + "tcpDenyNewConnectionsMinRate": DefaultTCPDenyNewConnectionsMinRate, + "tcpDenyNewConnectionsRateTimeout": DefaultTCPDenyNewConnectionsRateTimeout, } diff --git a/pkg/nodeconfigs/defaults.go b/pkg/nodeconfigs/defaults.go index 5288f4e..7bc28f4 100644 --- a/pkg/nodeconfigs/defaults.go +++ b/pkg/nodeconfigs/defaults.go @@ -12,19 +12,26 @@ const ( DefaultMaxThreadsMin = 1000 // 单节点最大线程数最小值 DefaultMaxThreadsMax = 100_000 // 单节点最大线程数最大值 - DefaultTCPMaxConnections = 100_000 // 单节点TCP最大连接数 - DefaultTCPMaxConnectionsPerIP = 1000 // 单IP最大连接数 - DefaultTCPMinConnectionsPerIP = 5 // 单IP最小连接数 - DefaultTCPNewConnectionsRate = 500 // 单IP连接速率限制(按分钟) - DefaultTCPNewConnectionsMinRate = 5 // 单IP最小连接速率 - DefaultTCPLinger = 3 // 单节点TCP Linger值 - DefaultTLSHandshakeTimeout = 3 // TLS握手超时时间 + DefaultTCPMaxConnections = 100_000 // 单节点TCP最大连接数 + DefaultTCPMaxConnectionsPerIP = 1000 // 单IP最大连接数 + DefaultTCPMinConnectionsPerIP = 5 // 单IP最小连接数 + DefaultTCPNewConnectionsRate = 500 // 单IP连接速率限制(按分钟) + DefaultTCPNewConnectionsMinRate = 5 // 单IP最小连接速率 + DefaultTCPDenyNewConnectionsRate = 1000 // 加入黑名单的连接速率 + DefaultTCPDenyNewConnectionsMinRate = 5 // 加入黑名单的最小连接速率 + DefaultTCPDenyNewConnectionsRateTimeout = 1800 // 超过黑名单连接速率禁止时间 + + DefaultTCPLinger = 3 // 单节点TCP Linger值 + DefaultTLSHandshakeTimeout = 3 // TLS握手超时时间 ) var DefaultConfigs = maps.Map{ - "tcpMaxConnections": DefaultTCPMaxConnections, - "tcpMaxConnectionsPerIP": DefaultTCPMaxConnectionsPerIP, - "tcpMinConnectionsPerIP": DefaultTCPMinConnectionsPerIP, - "tcpNewConnectionsRate": DefaultTCPNewConnectionsRate, - "tcpNewConnectionsMinRate": DefaultTCPNewConnectionsMinRate, + "tcpMaxConnections": DefaultTCPMaxConnections, + "tcpMaxConnectionsPerIP": DefaultTCPMaxConnectionsPerIP, + "tcpMinConnectionsPerIP": DefaultTCPMinConnectionsPerIP, + "tcpNewConnectionsRate": DefaultTCPNewConnectionsRate, + "tcpNewConnectionsMinRate": DefaultTCPNewConnectionsMinRate, + "tcpDenyNewConnectionsRate": DefaultTCPDenyNewConnectionsRate, + "tcpDenyNewConnectionsMinRate": DefaultTCPDenyNewConnectionsMinRate, + "tcpDenyNewConnectionsRateTimeout": DefaultTCPDenyNewConnectionsRateTimeout, } diff --git a/pkg/serverconfigs/ddosconfigs/tcp_config.go b/pkg/serverconfigs/ddosconfigs/tcp_config.go index 0415c59..48c9e7a 100644 --- a/pkg/serverconfigs/ddosconfigs/tcp_config.go +++ b/pkg/serverconfigs/ddosconfigs/tcp_config.go @@ -3,13 +3,18 @@ package ddosconfigs type TCPConfig struct { - IsPrior bool `json:"isPrior"` - IsOn bool `json:"isOn"` - MaxConnections int32 `json:"maxConnections"` - MaxConnectionsPerIP int32 `json:"maxConnectionsPerIP"` - NewConnectionsRate int32 `json:"newConnectionsRate"` - AllowIPList []*IPConfig `json:"allowIPList"` - Ports []*PortConfig `json:"ports"` + IsPrior bool `json:"isPrior"` + IsOn bool `json:"isOn"` + MaxConnections int32 `json:"maxConnections"` + MaxConnectionsPerIP int32 `json:"maxConnectionsPerIP"` + NewConnectionsRate int32 `json:"newConnectionsRate"` + + // 自动加入黑名单连接速率 + DenyNewConnectionsRate int32 `json:"denyNewConnectionsRate"` + DenyNewConnectionsRateTimeout int32 `json:"denyNewConnectionsRateTimeout"` + + AllowIPList []*IPConfig `json:"allowIPList"` + Ports []*PortConfig `json:"ports"` } func (this *TCPConfig) Init() error {