简短结论:Linux 上“DHCP 本身不能限速”,但可以通过 DHCP + 其他机制配合 实现“按 DHCP 分配情况做限速”。
下面分情况说明。
DHCP 只负责:
DHCP 协议里没有“带宽限制”字段(不像某些厂商私有扩展)。
思路:
示例(tc + htb):
# 限制 192.168.1.100 上行 1M,下行 5M
tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:10 htb rate 1mbit
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip src 192.168.1.100 flowid 1:10
✅ 适合:
如果你用的是 isc-dhcp-server,可以:
dhcpd.conf 中使用 on committc / iptables 规则示例(伪逻辑):
on commit {
execute("/usr/local/bin/limit.sh", leased-address);
}
脚本里:
✅ 适合:
⚠️ 配置复杂,需谨慎
如果你用 dnsmasq:
例如:
tc qdisc add dev br0 root tbf rate 10mbit burst 32kbit latency 400ms
✅ 简单但不能精确到用户
这些本质上也是:
DHCP 只是“识别用户”,限速由网络层完成
Linux 的 DHCP 不能限速,但 Linux 可以“在 DHCP 分配 IP 后限速”。
如果你愿意,可以告诉我:
我可以直接给你可抄的配置。