凌峰创科服务平台

CentOS DHCP服务器如何正确配置?

我们将使用 dhcpd (ISC DHCP Server) 这个最经典、最稳定的 DHCP 服务器软件。

CentOS DHCP服务器如何正确配置?-图1
(图片来源网络,侵删)

第一步:安装 DHCP 服务器软件包

确保您的系统已经更新,然后安装 dhcp 包。

  1. 更新系统软件包:

    sudo yum update -y
  2. 安装 dhcp 服务器:

    sudo yum install -y dhcp

安装完成后,主要的配置文件位于 /etc/dhcp/dhcpd.conf,在首次安装时,这个文件可能只包含一些注释和示例,我们需要自己编写配置内容。

CentOS DHCP服务器如何正确配置?-图2
(图片来源网络,侵删)

第二步:配置 DHCP 服务器

这是最关键的一步,我们需要编辑 /etc/dhcp/dhcpd.conf 文件来定义我们网络的 DHCP 范围、网关、DNS 等信息。

  1. 备份原始配置文件(好习惯):

    sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
  2. 编辑配置文件:

    sudo vi /etc/dhcp/dhcpd.conf

    清空文件中的所有内容(或者以 开头的注释行),然后添加以下配置。请务必根据您的实际网络环境修改参数。

    CentOS DHCP服务器如何正确配置?-图3
    (图片来源网络,侵删)
    # dhcpd.conf 配置文件示例
    # 定义一个默认的租约时间(秒),86400 秒 = 24 小时
    default-lease-time 86400;
    # 定义一个最大租约时间(秒),604800 秒 = 7 天
    max-lease-time 604800;
    # 声明我们正在为哪个网络提供服务。
    # subnet 网络地址 netmask 子网掩码
    subnet 192.168.1.0 netmask 255.255.255.0 {
        # 声明网关(路由器)地址
        option routers 192.168.1.1;
        # 声明 DNS 服务器地址
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        # 声明 DNS 搜索域(可选)
        option domain-name "localdomain";
        # 定义 IP 地址池(地址范围)
        # range 起始IP 结束IP;
        range 192.168.1.100 192.168.1.200;
        # 可选:为特定设备(如 MAC 地址为 aa:bb:cc:dd:ee:ff 的服务器)分配固定 IP
        # host my-server {
        #     hardware ethernet aa:bb:cc:dd:ee:ff;
        #     fixed-address 192.168.1.10;
        # }
    }

    配置参数详解:

    • default-lease-time: 客户端获取到的 IP 地址默认租期。
    • max-lease-time: 客户端可以请求的最长租期。
    • subnet: 定义一个子网,您需要填入您自己的网络地址和子网掩码。
      • 您的网络是 168.1.0/24,那么网络地址就是 168.1.0,子网掩码就是 255.255.0
    • option routers: 指定客户端的默认网关。
    • option domain-name-servers: 指定客户端使用的 DNS 服务器,可以指定多个,用逗号隔开。
    • range: 定义 DHCP 服务器可以动态分配的 IP 地址范围。
    • host ... { ... }: 用于为特定主机分配一个固定的 IP 地址,通常用于服务器、打印机等设备。

第三步:指定 DHCP 服务监听的网络接口

DHCP 服务器需要知道应该在哪个网络接口上服务请求,这通过 /etc/sysconfig/dhcpd 文件来配置。

  1. 编辑配置文件:

    sudo vi /etc/sysconfig/dhcpd
  2. 添加或修改 DHCPDARGS 变量: 如果您的服务器有多个网卡(eth0 是外网,eth1 是内网),DHCP 服务只在 eth1 上提供,那么您需要指定接口名称。

    # 在文件中添加以下行,指定 DHCP 服务器要监听的接口
    DHCPDARGS=eth1

    如果不确定或者想让服务器在所有可用接口上监听,可以将其留空或注释掉:

    # DHCPDARGS=

    对于新手,建议先留空,让系统自动处理。


第四步:启动并设置开机自启

配置完成后,启动 DHCP 服务并设置为开机自启。

  1. 启动 DHCP 服务:

    sudo systemctl start dhcpd
  2. 设置开机自启:

    sudo systemctl enable dhcpd
  3. 检查服务状态:

    sudo systemctl status dhcpd

    如果看到绿色的 active (running),说明服务已成功启动。


第五步:配置防火墙(非常重要!)

CentOS 默认使用 firewalld 防火墙,DHCP 服务使用 UDP 端口 67 (服务器) 和 68 (客户端),必须允许这些流量通过。

  1. 永久允许 DHCP 服务流量:

    sudo firewall-cmd --permanent --add-service=dhcp
  2. 重新加载防火墙使配置生效:

    sudo firewall-cmd --reload
  3. 验证防火墙规则:

    sudo firewall-cmd --list-all

    您应该能在输出中看到 dhcp 服务已经在允许列表中。


第六步:排查常见问题

如果客户端无法获取到 IP 地址,请按以下步骤排查:

  1. 检查 DHCP 服务状态:

    sudo systemctl status dhcpd

    如果服务没有运行,查看错误日志:journalctl -u dhcpd

  2. 检查配置文件语法: 在重启服务前,可以使用以下命令检查配置文件是否有语法错误:

    sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf

    如果输出 No subnet declaration for ... 等错误,说明配置文件有误,请返回第二步仔细检查。

  3. 检查日志文件: DHCP 服务的日志通常记录在 /var/log/messages 中,使用 grep 过滤 DHCP 相关信息:

    sudo grep dhcpd /var/log/messages

    日志会显示是否有客户端请求、IP 是否分配成功、是否有配置错误等信息。

  4. 检查网络接口配置: 确保您在 /etc/sysconfig/dhcpd 中指定的接口是存在的并且已经启动。

    ip a
  5. 检查 IP 地址池是否冲突: 确保 range 中定义的 IP 地址没有被网络中的其他设备(如静态 IP 的服务器、路由器等)占用。


回顾一下整个流程:

  1. 安装: sudo yum install -y dhcp
  2. 配置: 编辑 /etc/dhcp/dhcpd.conf,定义 subnetrangeoption routers 等。
  3. 指定接口: 编辑 /etc/sysconfig/dhcpd,设置 DHCPDARGS
  4. 启动服务: sudo systemctl start dhcpd && sudo systemctl enable dhcpd
  5. 防火墙: sudo firewall-cmd --permanent --add-service=dhcp && sudo firewall-cmd --reload

按照以上步骤,您应该就能在 CentOS 上成功搭建一个功能完善的 DHCP 服务器了。

分享:
扫描分享到社交APP
上一篇
下一篇