当前位置:首页 > Centos > 正文

CentOS 网络流量整形实战指南(手把手教你用 tc 命令实现带宽控制与限速)

在企业或家庭网络环境中,合理分配带宽资源、防止个别用户或应用占用过多网络资源是非常重要的。CentOS 作为一款稳定的企业级 Linux 发行版,提供了强大的网络流量整形(Traffic Shaping)功能。本文将从零开始,详细讲解如何在 CentOS 系统中使用 tc(Traffic Control)命令进行 CentOS流量整形,帮助你轻松实现 网络带宽控制CentOS限速教程 中的核心操作。

什么是网络流量整形?

网络流量整形是一种通过限制、排队或调度数据包来控制网络带宽使用的技术。它可以帮助你:

  • 限制特定 IP 或端口的上传/下载速度
  • 保障关键业务(如 VoIP、视频会议)的带宽
  • 避免 P2P 下载等高带宽应用拖慢整个网络
CentOS 网络流量整形实战指南(手把手教你用 tc 命令实现带宽控制与限速) CentOS流量整形 网络带宽控制 CentOS限速教程 tc命令使用 第1张

准备工作:安装必要工具

在 CentOS 7/8/Stream 中,tc 命令通常包含在 iproute 软件包中。大多数系统默认已安装,若未安装,请执行以下命令:

# 检查是否已安装 tcwhich tc# 若未安装,执行以下命令sudo yum install -y iproute# CentOS 8 / Stream 用户可使用 dnfsudo dnf install -y iproute  

基础概念:qdisc、class 与 filter

在使用 tc 时,你需要理解三个核心概念:

  • qdisc(Queueing Discipline):队列规则,决定数据包如何排队和发送。常用 HTB(Hierarchical Token Bucket)。
  • class:分类,用于定义不同优先级或带宽限制的流量类别。
  • filter:过滤器,用于将特定流量(如某个 IP)匹配到对应的 class。

实战案例:限制某 IP 的下载速度为 1Mbps

假设你的服务器外网接口是 eth0,你想限制 IP 地址 192.168.1.100 的下载速度不超过 1Mbps(即 1000kbps)。

步骤 1:添加根 qdisc

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

步骤 2:创建一个 class 限制带宽

sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1000kbit ceil 1000kbit  

步骤 3:添加 filter 将目标 IP 匹配到该 class

sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.1.100 flowid 1:1  

以上命令完成了对 192.168.1.100 的下载限速。注意:dst 表示目标地址(即本机接收的数据),因此这是限制“下载”速度;若要限制“上传”,应使用 src 并作用于内网接口(如 eth2)。

查看与清除规则

你可以随时查看当前的流量控制规则:

tc qdisc show dev eth0tc class show dev eth0tc filter show dev eth0  

若要清除所有规则,执行:

sudo tc qdisc del dev eth0 root  

持久化配置(开机生效)

上述命令重启后会失效。建议将命令写入启动脚本,例如 /etc/rc.local(CentOS 7)或 systemd 服务(CentOS 8+)。

# 编辑 rc.local(确保有执行权限)echo 'tc qdisc add dev eth0 root handle 1: htb default 30' >> /etc/rc.d/rc.localecho 'tc class add dev eth0 parent 1: classid 1:1 htb rate 1000kbit ceil 1000kbit' >> /etc/rc.d/rc.localecho 'tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.1.100 flowid 1:1' >> /etc/rc.d/rc.localchmod +x /etc/rc.d/rc.local  

总结

通过本文,你已经掌握了在 CentOS 系统中使用 tc 命令进行 CentOS流量整形 的基本方法。无论是做 网络带宽控制、限制 P2P 下载,还是保障关键业务,tc 都是一个强大而灵活的工具。虽然初学者可能觉得 tc 命令复杂,但只要理解了 qdisc、class 和 filter 的关系,配合本文的 CentOS限速教程,就能快速上手。同时,掌握 tc命令使用 技巧,将极大提升你在 Linux 网络管理方面的专业能力。

提示:实际部署前请在测试环境验证,避免影响生产网络。如有疑问,可结合 man tc 查阅官方文档。