流量统计及限制

本文介绍了如何利用Linux中的iptables工具对特定端口进行流量统计,并展示了如何设置规则进行流量控制,包括限制特定IP的连接速度。通过监控INPUT和OUTPUT链,可以查看端口的接收和发送流量。此外,通过limit模块可以实现对超出限制速率的流量进行限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、流量的统计

在不修改源代码的情况下对程序暴露端口流量进行监控统计,可以利用Linux中自带的Iptable添加简单的规则让其起到端口流量统计的作用。

 

添加需要统计的端口

1、输入监控

iptables -A INPUT -p tcp --dport 8080

2、输出监控

iptables -A OUTPUT -p tcp --sport 8080

 

查看统计数据

iptables -L -v -n -x

 

示例结果:

8080端口接收的流量为2885字节,发送的流量是8240字节

 

Chain INPUT (policy ACCEPT 202 packets, 25187 bytes)

  pkts   bytes target   prot opt in   out   source        destination    

   18   2885      tcp -- *   *    0.0.0.0/0      0.0.0.0/0      tcp dpt:8080

 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

  pkts   bytes target   prot opt in   out   source        destination    

 

Chain OUTPUT (policy ACCEPT 184 packets, 45774 bytes)

  pkts   bytes target   prot opt in   out   source        destination    

   12   8240      tcp -- *   *    0.0.0.0/0      0.0.0.0/0      tcp spt:8080

 

重置统计数据

移除统计端口

1、移除输入端口

iptables -D INPUT -p tcp --dport 8080

 

2、移除输出端口

iptables -D OUTPUT -p tcp --sport 8080

 

二、流量控制

可以使用iptables的limit模块对原IP或网段等进行限速,Iptables限制包的流速。

 由-m limit --limit <[!]limitnum> --limit-burst <burstnum>

--limit: 速率限制/sec /minute /hour

--limit-burst: 最大的连接数。这个是用来限制最大可用数的。因为:

1、如果当前包速超过limit限定的值的时,超速部分将直接跳过当前规则,进入下一条规则的匹配。

2、如果当前没有包来,则limit会将该单位时间内的剩余量累计入下个单位时间,但最大值不超过--limit-burst指定的值。

 

如下例子:

iptables -A INPUT -p tcp -s 192.168.80.15 -m limit --limit 5/sec --limit-burst 3 -j ACCEPT

iptables -A INPUT -p tcp -s 192.168.80.15 -j DROP

iptables -A OUTPUT -p tcp -s 192.168.80.15 -m limit --limit 5/sec --limit-burst 3 -j ACCEPT

iptables -A OUTPUT -p tcp -s 192.168.80.15 -j DROP

 

 

测试实例:

服务器端添加限制:

iptables -A INPUT -p icmp -s 192.168.1.236 -m limit --limit 6/m --limit-burst 5 -j ACCEPT
iptables -P INPUT DROP

客户端ping包测试结果:

前四个包的回应都非常正常,然后从第五个包开始,我们每10秒能收到一个正常的回应。这是因为我们设定了单位时间(在这里是每分钟)内允许通过的数据包的个数是每分钟6个,也即每10秒钟一个;其次我们又设定了事件触发阀值为5,所以我们的前四个包都是正常的,只是从第五个包开始,限制规则开始生效,故只能每10秒收到一个正常回应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值