温馨提示×

debian dhcp怎样限速

小樊
47
2026-10-07 18:35:15
栏目: 智能运维

在 Debian 上通过 DHCP 本身并不能直接“限速”,因为 DHCP 只负责分配 IP,不控制流量。
通常的做法是:DHCP 分配固定 IP / 根据 MAC 绑定 → 再用 tc、iptables、nftables 或专业网关软件限速。

下面按常见场景给你几种方案。


一、DHCP + tc(按 IP 限速,最常用)

1. 先让 DHCP 给客户端固定 IP(可选但推荐)

编辑 /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

2. 使用 tc 对 IP 限速(例如限制 1M)

# 清除旧规则
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

✅ 适合:

  • 单网卡出口
  • 简单带宽限制

二、DHCP + iptables + tc(按 MAC 更稳)

有些用户会换 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

三、用 dnsmasq 的 dhcp-host + tc(轻量方案)

如果你用的是 dnsmasq 而不是 isc-dhcp:

dhcp-host=00:11:22:33:44:55,192.168.1.100

然后同样用 tc 对 192.168.1.100 限速。


四、企业级方案(推荐)

如果你是想做真正网关级限速:

  • OpenWrt / LEDE
  • VyOS
  • pfSense
  • FreeRouter / MikroTik

这些系统都支持:

DHCP + 每 IP / 每 MAC 限速


五、总结

方式 是否推荐 说明
DHCP 直接限速 ❌ 不支持
DHCP + tc ✅ 简单实用
DHCP + iptables + tc ✅✅ 更稳定
专业网关 ✅✅✅ 最省心

如果你愿意,我可以:

  • 给你写 一键限速脚本
  • 按 上传 / 下载分别限速
  • 按 每用户自动限速(不用手动加 IP)

你现在的 Debian 是 做路由器还是服务器?

0 踩