tc

当然可以!下面是一张简洁明了的 tc 命令速查表,包含常见用法、关键参数、说明和典型示例,适合日常排障、测试、模拟网络故障使用。


🧾 tc 命令速查表(常用参数+说明)

类型 命令/参数 说明 示例
✅ 基本结构 tc qdisc add dev eth0 root netem ... 在指定网卡上添加模拟规则
✅ 清除规则 tc qdisc del dev eth0 root 清除所有流控规则
✅ 查看规则 tc qdisc show dev eth0 显示当前配置

1 🎛️ netem 模拟网络行为

参数 说明 示例
delay <x>ms 添加固定延迟 delay 100ms
delay <x>ms <jitter>ms 添加延迟和抖动 delay 100ms 20ms
delay ... distribution normal 使用正态分布延迟 delay 100ms 10ms distribution normal
loss <x>% 丢包率 loss 5%
duplicate <x>% 包重复率 duplicate 1%
corrupt <x>% 数据包损坏率 corrupt 0.1%
reorder <x>% 数据包乱序率 reorder 25%

组合使用示例:

tc qdisc add dev eth0 root netem delay 100ms 20ms distribution normal loss 2% duplicate 1%

2 ⏳ tbf 控制带宽(令牌桶过滤器)

参数 说明 示例
rate 最大速率 rate 1mbit
burst 突发容量 burst 32kbit
latency 最大排队时间 latency 300ms

限速示例:

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

3 🔧 组合使用示例(模拟 PostgreSQL 主备延迟+限速)

# 添加延迟 + 丢包
tc qdisc add dev eth0 root netem delay 300ms loss 3%

# 添加带宽限制(更真实)
tc qdisc replace dev eth0 root handle 1: tbf rate 2mbit burst 32kbit latency 400ms

4 📌 常用命令小抄

功能 命令
添加延迟 100ms tc qdisc add dev eth0 root netem delay 100ms
添加延迟 + 丢包 tc qdisc add dev eth0 root netem delay 100ms loss 5%
限制带宽为 1Mbps tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
查看规则 tc qdisc show dev eth0
删除规则 tc qdisc del dev eth0 root

5 💡 附加技巧

说明 命令
只影响下行 配置在设备:如 eth0
只影响上行 配置在对端回环接口,如 ifb0(需启用 ifb
查看支持的调度器 tc qdisc list
延迟分布帮助 man tc-netem

如果你有具体的使用场景,比如只对某个 IP 限速、只对端口限速,也可以基于 tc filter 做更高级配置,我也可以帮你写。是否需要带 ip 或端口过滤的示例?