使用 hashlimit 限制 新建连接 速率

本文详细介绍了如何使用iptables的hashlimit模块来限制新建连接的速率,包括源IP和目标IP的控制,提供了参数解释、示例配置、测试用例以及相关参考资源,帮助读者理解和应用此技术进行网络流量管理。
摘要由CSDN通过智能技术生成

新建连接速率控制 后台指令

作用:
使用 hashlimit 限制 新建连接 速率。

源 ip 新建连接速率控制 iptables 指令:

	iptables -A FORWARD -s <src_ip>/<src_ip_mask> -m state --state NEW -m hashlimit --hashlimit-name <limit_name> --hashlimit-above <limit_rate>/<limit_unit> --hashlimit-burst <burst> --hashlimit-mode srcip --hashlimit-srcmask <src_ip_mask> -j DROP   

目的 ip 新建连接速率控制 iptables 指令:

	iptables -A FORWARD -d <dst_ip>/<src_ip_mask> -m state --state NEW -m hashlimit --hashlimit-name <limit_name> --hashlimit-above <limit_rate>/<limit_unit> --hashlimit-burst <burst> --hashlimit-mode dstip --hashlimit-dstmask <dst_ip_mask> -j DROP   

注意:
<burst> 的 数值最好 略大于 <limit_rate>,可以保证流量限制又一定的余量。
如果 <burst> 的数组接近于 0,会非常容易丢包。


变量解释

<src_ip>

  • 描述:源 ip
  • 值域:0.0.0.0~255.255.255.255

<dst_ip>

  • 描述:目的 ip
  • 值域:0.0.0.0~255.255.255.255

<src_ip_mask>

  • 描述:源 ip 掩码长度:
  • 值域:0~32

<dst_ip_mask>

  • 描述:目的 ip 掩码长度:
  • 值域:0~32

<limit_name>

  • 描述:哈希表名称
  • 值域:英文字符串 (注意:不可以用中文)

<limit_rate>

  • 描述:最大连接速率
  • 值域:1~65535

<limit_unit>

  • 描述:时间单位
  • 值域:{ sec | min | hour | day }

<bu

要安装 Docker,需要在 Linux 内核中开启以下配置: 1. 需要开启 cgroup 控制组支持,包括 cgroup v1 和 cgroup v2,开启方式如下: ``` CONFIG_CGROUPS=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_SCHED=y CONFIG_CGROUP_PERF=y CONFIG_CGROUP_HUGETLB=y CONFIG_CGROUP_NET_CLS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_CGROUP_BLKIO=y CONFIG_CGROUP_RDMA=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_SOCKOPT=y CONFIG_CGROUP_DEBUG=y ``` 2. 需要开启 Namespace 支持,包括 Mount Namespace、UTS Namespace、IPC Namespace、PID Namespace 和 Network Namespace,开启方式如下: ``` CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y ``` 3. 需要开启 OverlayFS 文件系统支持,开启方式如下: ``` CONFIG_OVERLAY_FS=y ``` 4. 需要开启 iptables 软件包过滤支持,开启方式如下: ``` CONFIG_NETFILTER_XT_MATCH_COMMENT=y CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y CONFIG_NETFILTER_XT_MATCH_DCCP=y CONFIG_NETFILTER_XT_MATCH_ESP=y CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y CONFIG_NETFILTER_XT_MATCH_HELPER=y CONFIG_NETFILTER_XT_MATCH_IPRANGE=y CONFIG_NETFILTER_XT_MATCH_L2TP=y CONFIG_NETFILTER_XT_MATCH_LENGTH=y CONFIG_NETFILTER_XT_MATCH_LIMIT=y CONFIG_NETFILTER_XT_MATCH_MAC=y CONFIG_NETFILTER_XT_MATCH_MARK=y CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y CONFIG_NETFILTER_XT_MATCH_NFACCT=y CONFIG_NETFILTER_XT_MATCH_OSF=y CONFIG_NETFILTER_XT_MATCH_OWNER=y CONFIG_NETFILTER_XT_MATCH_POLICY=y CONFIG_NETFILTER_XT_MATCH_PROTO=y CONFIG_NETFILTER_XT_MATCH_RATEEST=y CONFIG_NETFILTER_XT_MATCH_RECENT=y CONFIG_NETFILTER_XT_MATCH_SCTP=y CONFIG_NETFILTER_XT_MATCH_STATE=y CONFIG_NETFILTER_XT_MATCH_STATISTIC=y CONFIG_NETFILTER_XT_MATCH_STRING=y CONFIG_NETFILTER_XT_MATCH_TCPMSS=y CONFIG_NETFILTER_XT_MATCH_TIME=y CONFIG_NETFILTER_XT_MATCH_U32=y CONFIG_NETFILTER_XT_TARGET_AUDIT=y CONFIG_NETFILTER_XT_TARGET_CHECKSUM=y CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y CONFIG_NETFILTER_XT_TARGET_CONNMARK=y CONFIG_NETFILTER_XT_TARGET_CPU=y CONFIG_NETFILTER_XT_TARGET_DSCP=y CONFIG_NETFILTER_XT_TARGET_HL=y CONFIG_NETFILTER_XT_TARGET_HMARK=y CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y CONFIG_NETFILTER_XT_TARGET_LED=y CONFIG_NETFILTER_XT_TARGET_LOG=y CONFIG_NETFILTER_XT_TARGET_MARK=y CONFIG_NETFILTER_XT_NAT=y CONFIG_NETFILTER_XT_TARGET_NETMAP=y CONFIG_NETFILTER_XT_TARGET_NFLOG=y CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y CONFIG_NETFILTER_XT_TARGET_NOTRACK=y CONFIG_NETFILTER_XT_TARGET_RATEEST=y CONFIG_NETFILTER_XT_TARGET_REDIRECT=y CONFIG_NETFILTER_XT_TARGET_TEE=y CONFIG_NETFILTER_XT_TARGET_TPROXY=y CONFIG_NETFILTER_XT_TARGET_TRACE=y ``` 请注意,这些配置项可能随着不同版本的内核而有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值