iptables限制网速

1、使用hashlimit来限速

#从eth0网卡进入INPUT链数据,使用模块hashlimit 限制网速为100kb/s或2mb/s,超过限制的数据包会被DROP。OUTPUT链同理,mode为srcip,有4个mode选项:

  1. srcip(默认匹配每个源地址IP,配置指定源地址IP,使用-s参数)
  2. dstip(默认匹配每个目的地址IP,配置指定目的地址IP,使用-d参数)
  3. srcport(默认匹配每个源端口,配置指定源端口,使用-sport参数)
  4. dstport(默认匹配目的端口,配置指定目的端口,使用-dport参数)

2、限制从eth0网卡到IP地址网速

2.1 限制从eth0网卡到所有IP地址INPUT/OPUTPU数据网速为100kb/s:

[root@localhost ~]# iptables -A INPUT -i eth0 -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode srcip --hashlimit-name in -j DROP

[root@localhost ~]# iptables -A OUTPUT -o eth0 -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode dstip --hashlimit-name out -j DROP

[root@localhost ~]# iptables -L -n --line-numbers #查看添加的iptables规则

Linux系统中,`tc` (Traffic Control) 是一个强大的网络流量控制工具,它允许对网络数据流进行细致的管理和调度。如果你想限制某个特定线程或端口的网速,你可以使用 `tc qdisc`(queuing discipline)功能,配合 `qdisc` 子系统里的 `htb`(Hierarchical Token Bucket)或 `pfifo`(Priority FIFO)队列。 以下是一个基本步骤: 1. **确定目标**: - 对于端口,你需要先找出对应的网络设备,通常它是`eth0`, `enp0s3`等,你可以使用 `ifconfig` 或 `ip addr show` 查看。 - 对于线程,你需要了解它的PID和网络套接字关联的接口。这可以通过 `lsof` 或 `netstat` 查找。 2. **创建htb qdisc**: - 为指定接口添加一个htb qdisc,例如: ``` sudo tc qdisc add dev <interface_name> root handle 1: htb default 1 ``` 3. **设置速率限制**: - 使用 `parent` 指定你要限制的带宽,`rate` 设置最大速率(单位 bps)。比如限制到1Mbps: ``` sudo tc class add dev <interface_name> parent 1: classid 1:1 htb rate 1000kbps ceil 1000kbps burst 1mb ``` - 将需要限速的应用分配到这个class里,通常是基于PID或端口号: ``` sudo tc filter add dev <interface_name> protocol ip parent 1:0 u32 match ip dst <IP_address> or sport <port_number> flowid 1:1 ``` 4. **应用到线程或进程**: - 如果你知道线程的PID,可以使用 `iptables` 的 MARK 标记,然后将标记与htb class关联起来。然后通过`iptables -t mangle -A PREROUTING`来标记流量。 5. **检查并监控**: - 可以使用 `tc stats` 和 `iftop` 等工具监控实际的流量限制效果。 请注意,这只是一个基本示例,实际操作可能会更复杂,因为可能涉及内核模块加载、防火墙配置等因素。在操作之前,建议查阅具体的Linux文档和在线教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哝小鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值