首页 > 编程语言 >iptables流量整形教程

iptables流量整形教程

来源:互联网 2026-07-16 07:03:04

利用iptables与tc工具组合实现Linux流量整形:先创建HTB队列规则和带宽类,再用iptables在mangle表中标记数据包,最后通过tc过滤器将标记流量绑定到指定类。可基于端口或源IP限速,需root权限并建议测试环境验证。

在Linux系统中,流量整形通常借助iptables与tc两大工具实现。iptables负责为数据包添加标签,tc则依据标签执行具体的流量控制。若需组合使用二者,可按以下步骤操作。

iptables流量整形教程

长期稳定更新的攒劲资源: >>>点此立即查看<<<

1. 安装必要的软件包

首先确认系统是否已安装这两个工具。多数Linux发行版默认预装,若未安装,可通过包管理器快速完成:

sudo apt-get install iproute2 iptables   # Debian/Ubuntu
sudo yum install iproute iptables        # CentOS/RHEL

2. 配置网络接口

明确需要管控的网卡,例如常见的eth0,确保其处于激活状态:

ip link set eth0 up

3. 创建队列规则

使用tc命令在目标网卡上挂载队列规则,搭建流量调度的基础框架:

sudo tc qdisc add dev eth0 root handle 1: htb default 30

此处选用HTB(分层令牌桶)算法,适用于带宽限制与优先级管理。

4. 创建类

框架建立后,需划分不同通道以处理不同类型流量。例如为HTTP流量设置专用子通道:

sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 2mbit
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit ceil 1mbit

父类保证至少1Mbps,最高可至2Mbps;子类保障带宽512Kbps,上限1Mbps。参数rateceil分别代表基础带宽与最大突发带宽。

5. 使用iptables标记流量

接下来由iptables为指定数据包添加标记,告知tc需特殊处理:

sudo iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 10

该规则将所有目标端口为80的TCP流量标记为“10”。mangle表专用于修改数据包,PREROUTING链确保数据包在路由前即被标记。

6. 将标记的流量绑定到类

最后一步将标记与已创建的类关联,使标记为“10”的流量进入1:10子通道:

sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 10 fw flowid 1:10

7. 监控和调整

配置完成后,需验证效果。使用tc命令可实时查看队列与类的运行状态:

sudo tc -s qdisc ls dev eth0
sudo tc -s class ls dev eth0

输出中包含发送字节数、丢包、超时等统计信息,便于判断整形策略是否生效,或进行针对性调整。

示例:限制特定IP的带宽

例如,若需限制办公网络中某设备(IP: 192.168.1.100)的下载带宽,操作流程与前述类似,仅将标记依据由端口改为源IP:

  1. 创建队列规则:

    sudo tc qdisc add dev eth0 root handle 1: htb default 30
  2. 创建类,为该IP分配较低带宽的子类:

    sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 2mbit
    sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 256kbit ceil 512kbit

    子类带宽压缩至256Kbps,上限512Kbps。

  3. 使用iptables根据源IP打标记:

    sudo iptables -t mangle -A PREROUTING -s 192.168.1.100 -j MARK --set-mark 10
  4. 绑定标记到类:

    sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 10 fw flowid 1:10

注意事项

  • 流量整形本质是排队机制,高负载下必然引入一定延迟或丢包,属于不可避免的居间效应。
  • 请勿在线上环境直接执行上述命令。建议先在测试环境验证,评估对应用体验的影响。
  • 所有操作均需root权限,普通用户无法执行。

以上为基础用法。实际环境中可进一步考虑多队列、集成SFQ公平调度,或借助connmark实现更精细的连接跟踪。基于此框架,多数场景均可覆盖。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。