写点什么

使用 tc+iptables 对指定的 socket 进行限速

作者:linux大本营
  • 2023-04-26
    湖南
  • 本文字数:427 字

    阅读完需:约 1 分钟

使用 tc 和 iptables 可以对指定的 socket 进行限速。可以使用以下步骤:


  1. 使用 tc 命令创建一个可以对指定的 socket 进行限速的规则。


tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 80 0xffff flowid 1:1
复制代码


上面这个规则的含义是:当流经 eth0 网卡的 IP 包中匹配到源端口为 80 的包时,将它们的流量 ID 设置为 1:1,即后面会用于速率限制的"1:1".


  1. 使用 iptables 命令对限速的 socket 进行连接数限制。


iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 80 -m limit --limit 50/second --limit-burst 100 -j ACCEPTiptables -A INPUT -p tcp --dport 80 -j DROP
复制代码


上面这两条规则的含义是:对于端口为 80 的新连接,每秒限制 50 个连接,即流量上限为 50,每次可以出现短时的流量爆发,但每秒最多只能达到 50 条;如果流量超出限制,则拒绝连接。


综上所述,以上的两条命令可以实现对指定 socket 的限速及连接数限制。


相关技术视频教程:c/c++ linux服务器开发/后台架构师免费学习地址

c/c++后端技术交流群:579733396

用户头像

还未添加个人签名 2020-11-26 加入

C/C++linux服务器开发群 812855908

评论

发布
暂无评论
使用tc+iptables对指定的socket进行限速_TCP_linux大本营_InfoQ写作社区