温馨提示×

linux dhcp怎么限速

小樊
38
2026-09-09 18:17:59
栏目: 智能运维

在 Linux 上“DHCP 限速”通常有两种理解,下面分别说明,并给出常见做法。


一、DHCP 本身不能限速(先说清楚)

DHCP 协议只负责分配 IP,不控制流量速率
所以:

  • ISC DHCP / dnsmasq 无法直接限制客户端网速
  • 限速必须在 三层/二层(iptables、tc、交换机)

二、常见“DHCP 限速”实现方式

方式 1:DHCP + iptables + TC(最常见)

思路:

  1. DHCP 分配固定 IP(或按 MAC)
  2. iptables 打标记
  3. tc 限速

示例:限制某个 IP 为 1Mbps

# 给 192.168.1.100 打标记
iptables -t mangle -A FORWARD -s 192.168.1.100 -j MARK --set-mark 10
iptables -t mangle -A FORWARD -d 192.168.1.100 -j MARK --set-mark 10

# 使用 tc 限速(假设出口 eth0)
tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:10 htb rate 1mbit ceil 1mbit
tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 10 fw classid 1:10

✅ 适合:路由器 / 网关服务器


方式 2:DHCP 固定 IP + 按 IP 限速(脚本化)

dhcpd.conf 中:

host pc1 {
    hardware ethernet 00:11:22:33:44:55;
    fixed-address 192.168.1.100;
}

然后写脚本,在 DHCP 分配后自动加 tc 规则(可用 on commit 或外部脚本)


方式 3:用 dnsmasq + iptables(轻量方案)

dnsmasq 本身不能限速,但可:

  • 分配固定 IP
  • 配合 iptables + tc
dhcp-host=00:11:22:33:44:55,192.168.1.100

方式 4:交换机 / AP 限速(最推荐)

如果环境允许:

  • 交换机端口
  • AP(如 OpenWrt)
  • 企业路由器

per-IP / per-MAC 限速

✅ 性能最好,不占用 Linux CPU


三、OpenWrt 用户(最简单)

如果你用的是 OpenWrt

  • LuCI → 网络 → DHCP
  • 配合 SQM / nft-qos
  • 可按 IP / MAC 限速

四、总结建议

场景 推荐方式
Linux 网关 iptables + tc
软路由 OpenWrt + SQM
企业网络 交换机/AC 限速
只想简单控制 固定 IP + tc

如果你能告诉我:

  • 用的是 CentOS / Ubuntu / OpenWrt
  • DHCP 是 isc-dhcp / dnsmasq
  • 单网卡还是网关

我可以直接给你一份可复制的配置

0