当前位置:首页 > 服务器技术 > 正文

掌控你的网络带宽(Linux流量控制入门教程)

在日常使用 Linux 系统时,你是否遇到过某个程序占用大量带宽,导致其他应用卡顿?或者你想限制某个用户或服务的网络速度?这时候,Linux 流量控制就派上用场了!本教程将带你从零开始,轻松掌握 Linux 下的网络流量控制方法,即使你是小白也能看懂。

什么是 Linux 流量控制?

Linux 流量控制(Traffic Control,简称 TC)是 Linux 内核提供的一套机制,用于管理网络数据包的发送和接收顺序、速率和延迟。通过它,你可以实现带宽限制、优先级调度、模拟网络延迟等高级功能。

掌控你的网络带宽(Linux流量控制入门教程) Linux流量控制 tc命令 网络带宽限制 流量整形 第1张

核心工具:tc 命令

Linux 中用于流量控制的主要命令是 tc(traffic control),它是 iproute2 工具包的一部分。大多数现代 Linux 发行版默认已安装该工具。

要查看当前系统的流量控制规则,可以运行:

tc qdisc show

实战:限制某个网络接口的上传带宽

假设你的网卡是 eth0,你想将其上传带宽限制为 1Mbps(即 1000kbps)。可以使用以下命令:

sudo tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms

参数说明:

  • dev eth0:指定操作的网络设备
  • root:在根队列规则上添加
  • tbf:使用令牌桶过滤器(Token Bucket Filter)
  • rate 1mbit:限制速率为 1 Mbps
  • burst 32kbit:允许突发流量大小
  • latency 400ms:最大延迟

如何取消限制?

执行以下命令即可删除刚才设置的规则:

sudo tc qdisc del dev eth0 root

进阶:基于 IP 地址限速

如果你只想限制某个特定 IP 的流量(例如 192.168.1.100),可以结合 htb(分层令牌桶)和 filter 实现:

# 创建根队列sudo tc qdisc add dev eth0 root handle 1: htb default 30# 设置总带宽上限sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit# 为特定 IP 设置子类,限速 1mbitsudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit# 添加过滤器,匹配目标 IPsudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.1.100 flowid 1:10

注意事项

  • 流量控制通常只对出站流量(上传)有效,入站流量(下载)较难直接控制
  • 操作前建议备份当前规则: tc qdisc show > tc_backup.txt
  • 重启网络服务或系统后,tc 规则会丢失,如需持久化,可写入启动脚本

总结

通过本教程,你已经掌握了 Linux 流量控制的基本概念和常用命令。无论是为了测试网络应用、公平分配带宽,还是防止某个进程“吃光”你的网络资源,tc 命令都是一个强大而灵活的工具。记住关键词:Linux流量控制tc命令网络带宽限制流量整形,它们将帮助你在搜索引擎中快速找到相关资料。

现在,快去试试吧!用 tc 命令打造属于你的智能网络环境。