温馨提示×

Debian DHCP如何设置路由

小樊
40
2026-07-02 07:21:13
栏目: 智能运维

Debian 使用 ISC DHCP 服务器(isc-dhcp-server) 时,可以通过 DHCP 选项向客户端下发 默认路由(网关)。下面按常见场景说明。


一、修改 DHCP 配置文件

Debian 的 DHCP 服务器配置文件通常是:

/etc/dhcp/dhcpd.conf

使用 root 编辑:

sudo nano /etc/dhcp/dhcpd.conf

二、设置默认路由(网关)

1️⃣ 全局设置(对所有子网生效)

option routers 192.168.1.1;

表示所有客户端默认网关为 192.168.1.1


2️⃣ 针对某个子网设置(推荐)

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option routers 192.168.1.1;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
}

✅ 这是最常见、最清晰的方式。


三、设置静态路由(进阶)

如果客户端需要 非默认路由(如访问特定网段走特定网关),可以使用:

1️⃣ 使用 rfc3442-classless-static-routes

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option ms-classless-static-routes code 249 = array of unsigned integer 8;

option rfc3442-classless-static-routes 24, 192,168,2, 192,168,1,1;
option ms-classless-static-routes 24, 192,168,2, 192,168,1,1;

含义:

  • 访问 192.168.2.0/24
  • 网关为 192.168.1.1

⚠️ 注意:

  • Windows 常用 ms-classless-static-routes
  • Linux 常用 rfc3442-classless-static-routes
  • 有些旧客户端不支持

四、重启 DHCP 服务

修改完成后重启服务:

sudo systemctl restart isc-dhcp-server

检查状态:

sudo systemctl status isc-dhcp-server

五、验证客户端是否获得路由

Linux 客户端

ip route

应看到类似:

default via 192.168.1.1 dev eth0

Windows 客户端

route print

六、常见问题

❌ 客户端没拿到网关?

  • 确认 option routerssubnet 内
  • 确认 DHCP 服务监听正确网卡
  • 查看日志:
journalctl -u isc-dhcp-server

❌ 多网卡环境

/etc/default/isc-dhcp-server 中指定接口:

INTERFACESv4="eth0"

七、总结

需求 配置方式
默认网关 option routers
子网级路由 subnet 中配置
静态路由 rfc3442-classless-static-routes
多网卡 /etc/default/isc-dhcp-server

如果你愿意,可以告诉我:

  • Debian 版本
  • DHCP 客户端类型(Linux / Windows / 路由器)
  • 是否需要多网关或策略路由

我可以给你一份 可直接使用的完整 dhcpd.conf 示例

0