在日常运维或家庭网络管理中,我们经常需要对网络流量进行控制,比如限制某个应用的带宽、保障关键服务的网络优先级,或者模拟慢速网络环境进行测试。在Ubuntu系统中,可以使用强大的tc(Traffic Control)命令配合netem模块实现精细的网络流量整形。
网络流量整形(Traffic Shaping)是一种主动调整网络数据流速率的技术,用于优化或保证网络性能。通过限制出站(或入站)带宽、增加延迟、引入丢包等方式,可以模拟真实网络环境或防止某类流量占用过多资源。
在开始之前,请确保你的Ubuntu系统已安装iproute2工具包(通常默认已安装)。打开终端,输入以下命令验证:
tc -V 如果看到版本信息,说明工具已就绪。
htb(分层令牌桶)、netem(网络仿真)。假设你的网卡是eth0,你想将其出口带宽限制为10Mbps。执行以下命令:
sudo tc qdisc add dev eth0 root handle 1: htb default 30sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbitsudo tc class add dev eth0 parent 1: classid 1:2 htb rate 10mbit 第一条命令创建一个HTB根队列;第二、三条为所有流量分配10Mbps带宽。
如果你想只限制访问192.168.1.100的流量不超过2Mbps,可以这样做:
# 创建根qdiscsudo tc qdisc add dev eth0 root handle 1: htb# 创建主类(总带宽)sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit# 创建子类(限速2Mbps)sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 2mbit ceil 2mbit# 添加过滤器,匹配目标IPsudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \ match ip dst 192.168.1.100 flowid 1:10 使用netem模块可以轻松模拟不良网络环境:
# 增加100ms延迟 + 5%丢包率sudo tc qdisc add dev eth0 root netem delay 100ms loss 5% 调试完成后,记得清除规则以免影响正常使用:
sudo tc qdisc del dev eth0 root ifb虚拟设备配合重定向,较为复杂。tc -s qdisc show dev eth0可查看当前规则状态。通过本文,你已经掌握了在Ubuntu系统中使用tc命令进行Linux流量控制的基本方法。无论是做QoS策略、网络测试还是带宽管理,这些技巧都非常实用。记住,网络带宽限制只是流量整形的一部分,结合netem还能实现更复杂的网络仿真场景。
希望这篇TC命令教程能帮助你轻松上手Ubuntu网络流量整形!如有疑问,欢迎在评论区交流。
本文由主机测评网于2025-12-06发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025123754.html