凌峰创科服务平台

CentOS DHCP服务器配置步骤详解?

摘要

本指南将引导您在 CentOS 系统上安装、配置和启动一个 DHCP 服务器,我们将涵盖:

CentOS DHCP服务器配置步骤详解?-图1
(图片来源网络,侵删)
  1. 环境准备:安装软件包和配置防火墙。
  2. 核心配置:编辑 /etc/dhcp/dhcpd.conf 文件,定义 IP 地址池、网关、DNS 等关键信息。
  3. 启动服务:启用并启动 DHCP 服务。
  4. 客户端测试:从另一台设备获取 IP 地址以验证配置。
  5. 排错与进阶:查看日志文件和配置高级选项。

第一步:环境准备

在开始之前,请确保您已经:

  • 一台安装好的 CentOS 7/8/9 系统。
  • 具有管理员 (root) 权限。
  • 明确规划好要分配的 IP 地址范围、子网掩码、网关和 DNS 服务器地址。

安装 DHCP 服务器软件包

打开终端,使用 yum (CentOS 7/8) 或 dnf (CentOS 8/9) 包管理器安装 dhcp 包。

# 对于 CentOS 7 和 8
sudo yum install dhcp -y
# 对于 CentOS 9
sudo dnf install dhcp -y

安装完成后,DHCP 服务的主配置文件 /etc/dhcp/dhcpd.conf 可能是一个示例文件或一个空文件,我们需要对其进行编辑。

配置防火墙

DHCP 服务使用 UDP 端口 67 (服务器) 和 68 (客户端),为了能让客户端正常获取 IP,您需要防火墙允许这些端口的流量。

CentOS DHCP服务器配置步骤详解?-图2
(图片来源网络,侵删)
# 添加 dhcp 服务到防火墙规则集 (推荐)
sudo firewall-cmd --permanent --add-service=dhcp
# 重新加载防火墙使规则生效
sudo firewall-cmd --reload

或者,如果您想直接开放端口:

# 开放 UDP 67 和 68 端口
sudo firewall-cmd --permanent --add-port=67/udp
sudo firewall-cmd --permanent --add-port=68/udp
# 重新加载防火墙
sudo firewall-cmd --reload

第二步:核心配置 (/etc/dhcp/dhcpd.conf)

这是整个配置过程的核心,我们需要编辑 /etc/dhcp/dhcpd.conf 文件。

sudo vi /etc/dhcp/dhcpd.conf

注意:如果该文件内容很多,可以先清空它,然后从下面开始添加配置。

一个典型的配置文件结构如下,请根据您的网络环境修改 subnet 部分的值。

# /etc/dhcp/dhcpd.conf
# 设置默认租约时间(单位:秒)
default-lease-time 600;
# 设置最大租约时间(单位:秒)
max-lease-time 7200;
# 日志记录配置(可选,但强烈推荐)
# 将日志发送到系统日志,并记录级别为 'info' 和 'notice'
log-facility local7;
# 定义一个子网,为这个子网内的客户端提供服务
subnet 192.168.1.0 netmask 255.255.255.0 {
    # --- 关键网络参数 ---
    # 分配给客户端的网关地址
    option routers 192.168.1.1;
    # 分配给客户端的 DNS 服务器地址
    # 可以是您的路由器地址或公共 DNS,如 8.8.8.8
    option domain-name-servers 8.8.8.8, 1.1.1.1;
    # --- IP 地址池 ---
    # 定义可分配的 IP 地址范围
    # 从 192.168.1.100 到 192.168.1.200
    # 排除的地址:192.168.1.1 到 192.168.1.99 (通常用于静态分配的服务器)
    range 192.168.1.100 192.168.1.200;
    # --- 可选高级配置 ---
    # 为特定客户端分配固定 IP 地址(通过客户端的 MAC 地址)
    # host my-printer {
    #     hardware ethernet 00:1A:2B:3C:4D:5E;
    #     fixed-address 192.168.1.10;
    # }
    # 为特定客户端分配特定域名和 DNS
    # host my-server {
    #     hardware ethernet 00:AB:CD:EF:12:34;
    #     fixed-address 192.168.1.20;
    #     option domain-name-servers 192.168.1.20;
    # }
}

配置参数详解

  • default-lease-time: 客户端在没有请求特定租期的情况下,获得的默认租约时长(秒)。
  • max-lease-time: 客户端可以请求的最长租约时长(秒)。
  • log-facility: 指定 DHCP 服务的日志输出位置。local7 是一个常见的日志设施,日志通常会写入 /var/log/messages/var/log/secure
  • subnet: 定义一个 IP 子网,您必须提供 netmask
  • option routers: 指定客户端的默认网关。
  • option domain-name-servers: 指定客户端的 DNS 服务器,可以指定多个,用逗号隔开。
  • range: 定义 DHCP 服务器可以动态分配的 IP 地址池。
  • host: 块用于为特定客户端(通过其 MAC 地址 hardware ethernet)分配一个固定的 IP 地址(fixed-address)。

第三步:启动和启用 DHCP 服务

配置文件保存后,现在可以启动 DHCP 服务了。

启动服务

# 启动 dhcpd 服务
sudo systemctl start dhcpd

如果这是您第一次启动,并且服务器有多个网络接口,系统可能会报错,因为它不知道应该在哪个接口上监听,我们需要指定主网卡。

# 假设您的服务器主网卡是 ens33
sudo systemctl start dhcpd --no-block -c DHCPDARGS=ens33

或者,更推荐的方法是修改服务配置文件:

sudo vi /etc/sysconfig/dhcpd

在文件中添加或修改一行:

DHCPDARGS=ens33  # 将 ens33 替换为您的主网卡名称

然后再次尝试启动。

设置开机自启

为了让 DHCP 服务在系统重启后自动启动,请执行:

sudo systemctl enable dhcpd

检查服务状态

检查服务是否正在运行并查看启动状态。

# 查看当前运行状态
sudo systemctl status dhcpd
# 查看启动状态
sudo systemctl is-enabled dhcpd

如果服务状态正常,您应该会看到绿色的 active (running) 字样。


第四步:客户端测试

这是验证配置是否成功的最后一步。

  1. 将另一台设备(如笔记本电脑、手机或另一台虚拟机)连接到与 DHCP 服务器相同的局域网中。
  2. 将该设备的网络设置为“自动获取 IP 地址”(DHCP)。
  3. 在该设备上,通过命令行查看获取到的 IP 信息:
    • 在 Windows 上: 打开命令提示符,输入 ipconfig
    • 在 Linux/macOS 上: 打开终端,输入 ip aifconfig

您应该能看到该设备从您配置的地址池(168.1.100200)中获取到了一个 IP 地址,网关和 DNS 也与您在 dhcpd.conf 中设置的一致。


第五步:排错与进阶

查看日志文件

如果客户端无法获取 IP,日志是您最好的朋友。

# 实时查看 DHCP 服务的日志
sudo tail -f /var/log/messages
# 或者根据您在 dhcpd.conf 中设置的 log-facility 来查看
sudo tail -f /var/log/secure | grep dhcpd

常见的错误信息包括:

  • No subnet declaration for ...: 您的 subnet 块配置不正确或缺失,或者 network 参数与接口 IP 不匹配。
  • No free leases on ...: 地址池中的所有 IP 地址都已被分配出去。
  • Permission denied: SELinux 或防火墙阻止了服务。

SELinux 问题

如果遇到权限问题,可以临时禁用 SELinux 进行测试(不推荐在生产环境长期使用):

# 临时禁用(重启后恢复)
sudo setenforce 0
# 永久禁用(需要重启)
sudo vi /etc/selinux/config
# 将 SELINUX=enforcing 改为 SELINUX=disabled

如果禁用 SELinux 后问题解决,说明是 SELinux 策略导致的,您可以尝试安装相应的策略模块,或者调整 SELinux 布尔值。

多网卡配置

如果服务器有多个网卡,并且您只想让 DHCP 服务在其中一个上监听,请务必在 /etc/sysconfig/dhcpd 文件中指定 DHCPDARGS,如第三步所示。

备份配置

在修改配置前,养成备份的好习惯。

sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak

通过以上步骤,您应该已经成功地在 CentOS 服务器上搭建了一个功能完备的 DHCP 服务器,您可以随时通过编辑 /etc/dhcp/dhcpd.conf 文件来调整 IP 地址池、租期或添加固定 IP 映射,修改后只需重启 dhcpd 服务即可使新配置生效。

sudo systemctl restart dhcpd
分享:
扫描分享到社交APP
上一篇
下一篇