在 Debian 上通过 DHCP 本身并不能直接“限速”,因为 DHCP 只负责分配 IP,不控制流量。
通常的做法是:DHCP 分配固定 IP / 根据 MAC 绑定 → 再用 tc、iptables、nftables 或专业网关软件限速。
下面按常见场景给你几种方案。
编辑 /etc/dhcp/dhcpd.conf:
host pc1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.100;
}
重启 DHCP:
systemctl restart isc-dhcp-server
# 清除旧规则
tc qdisc del dev eth0 root
# 根队列
tc qdisc add dev eth0 root handle 1: htb default 10
# 总带宽
tc class add dev eth0 parent 1: classid 1:1 htb rate 1000mbit
# 限速类(1M)
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit ceil 1mbit
# 过滤:对 192.168.1.100 限速
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
match ip dst 192.168.1.100 flowid 1:10
✅ 适合:
有些用户会换 IP,用 MAC 更可靠。
# 标记 MAC
iptables -t mangle -A PREROUTING -m mac --mac-source 00:11:22:33:44:55 -j MARK --set-mark 10
# tc 使用 fw 过滤
tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 10 fw flowid 1:10
dhcp-host + tc(轻量方案)如果你用的是 dnsmasq 而不是 isc-dhcp:
dhcp-host=00:11:22:33:44:55,192.168.1.100
然后同样用 tc 对 192.168.1.100 限速。
如果你是想做真正网关级限速:
这些系统都支持:
DHCP + 每 IP / 每 MAC 限速
| 方式 | 是否推荐 | 说明 |
|---|---|---|
| DHCP 直接限速 | ❌ | 不支持 |
| DHCP + tc | ✅ | 简单实用 |
| DHCP + iptables + tc | ✅✅ | 更稳定 |
| 专业网关 | ✅✅✅ | 最省心 |
如果你愿意,我可以:
你现在的 Debian 是 做路由器还是服务器?