温馨提示×

Linux DHCP如何配置网关

小樊
59
2026-08-06 04:16:08
栏目: 智能运维

在 Linux 中配置 DHCP 服务器(通常是 ISC DHCP)时,可以通过 option routers 来指定客户端获取的默认网关。下面按常见场景说明。


一、使用 ISC DHCP Server(最常见)

1. 安装 DHCP 服务

# Debian / Ubuntu
sudo apt install isc-dhcp-server

# RHEL / CentOS / Rocky
sudo yum install dhcp
# 或
sudo dnf install dhcp-server

2. 配置 DHCP 网关(核心)

编辑配置文件:

sudo vim /etc/dhcp/dhcpd.conf

示例:指定网关

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, 114.114.114.114;
    default-lease-time 600;
    max-lease-time 7200;
}

关键点

  • option routers → 客户端默认网关
  • 可配置多个网关(不推荐,除非做冗余)

二、为不同客户端指定不同网关

1. 按 MAC 地址分配

host server1 {
    hardware ethernet 00:11:22:33:44:55;
    fixed-address 192.168.1.50;
    option routers 192.168.1.254;
}

三、多子网 / 多网关(常见企业场景)

shared-network my-network {
    subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers 192.168.1.1;
        range 192.168.1.100 192.168.1.200;
    }

    subnet 192.168.2.0 netmask 255.255.255.0 {
        option routers 192.168.2.1;
        range 192.168.2.100 192.168.2.200;
    }
}

四、DHCP 中继场景(跨网段)

如果 DHCP 服务器不在客户端网段:

# 在网关/路由器上配置 DHCP 中继
sudo apt install isc-dhcp-relay

配置:

# /etc/default/isc-dhcp-relay
SERVERS="192.168.1.10"
INTERFACES="eth0"

五、验证客户端是否获取到网关

Linux 客户端

ip route

应看到:

default via 192.168.1.1 dev eth0

Windows 客户端

ipconfig

六、常见问题

1️⃣ 客户端没拿到网关?

  • 确认 option routers 存在
  • dhcpd.conf 语法是否正确
  • 重启 DHCP 服务:
sudo systemctl restart isc-dhcp-server

2️⃣ 网关和 DHCP 不在同一网段?

✅ 可以,但必须保证:

  • DHCP 中继配置正确
  • 路由可达

七、总结

功能 配置项
默认网关 option routers
DNS option domain-name-servers
子网掩码 option subnet-mask
固定网关 host + fixed-address

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

  • ✅ 你的 Linux 发行版
  • ✅ 是否跨网段 / 使用路由器
  • ✅ 是服务器还是家用网络

我可以给你一份完全贴合你环境的配置示例

0