凌峰创科服务平台

Linux安装DHCP服务器步骤有哪些?

DHCP 服务器简介

DHCP (Dynamic Host Configuration Protocol,动态主机配置协议) 是一个网络协议,用于自动为网络中的客户端设备(如电脑、手机、打印机等)分配 IP 地址、子网掩码、网关、DNS 服务器等网络配置信息,这极大地简化了网络管理。

Linux安装DHCP服务器步骤有哪些?-图1
(图片来源网络,侵删)

第一步:选择并安装 DHCP 服务器软件

在 Linux 世界中,最常用和经典的 DHCP 服务器软件是 ISC DHCP Server,我们将以此为例进行安装。

对于 Ubuntu/Debian 系统

使用 apt 包管理器进行安装。

  1. 更新软件包列表

    sudo apt update
  2. 安装 isc-dhcp-server

    Linux安装DHCP服务器步骤有哪些?-图2
    (图片来源网络,侵删)
    sudo apt install isc-dhcp-server -y

    安装过程中,系统可能会提示你选择一个网络接口来监听 DHCP 请求,此时可以先不选,我们将在后续配置文件中精确指定,所以可以直接按 EscEnter 跳过。

对于 CentOS/RHEL/Rocky Linux 系统

使用 dnfyum 包管理器进行安装。

  1. 安装 dhcp-server
    sudo dnf install dhcp-server -y

    (对于旧版的 CentOS 7,请使用 sudo yum install dhcp-server -y


第二步:配置 DHCP 服务器

这是最关键的一步,配置文件的主要作用是定义 DHCP 服务将哪个网段(IP 地址范围)分配给客户端。

Linux安装DHCP服务器步骤有哪些?-图3
(图片来源网络,侵删)

主配置文件路径

  • Ubuntu/Debian: /etc/dhcp/dhcpd.conf
  • CentOS/RHEL/Rocky Linux: /etc/dhcp/dhcpd.conf

在开始编辑前,强烈建议先备份原始配置文件

# Ubuntu/Debian
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
# CentOS/RHEL/Rocky Linux
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak

默认的 dhcpd.conf 文件里有很多注释和示例,可能会干扰我们的配置,我们可以将其清空,然后添加我们自己的配置。

示例配置

以下是一个典型的家庭或小型办公室网络配置示例,请根据你的网络环境修改以下参数:

  • network: 你的局域网网段,168.1.0
  • netmask: 子网掩码,255.255.0
  • range: 你要分配的 IP 地址范围。
  • option routers: 默认网关地址。
  • option domain-name-servers: DNS 服务器地址(可以是你路由器的地址或公共 DNS,如 8.8.8)。

使用你喜欢的文本编辑器打开配置文件,nano

sudo nano /etc/dhcp/dhcpd.conf

粘贴到文件中,并根据你的实际情况进行修改:

# 标准的 DHCP 配置文件
# 默认租约时间(秒),客户端在未续约前可以使用的 IP 时间
default-lease-time 600;
# 最大租约时间(秒),客户端可以请求的最长使用 IP 时间
max-lease-time 7200;
# 指定要提供 DHCP 服务的网络
# 'subnet' 后面是网络地址,'netmask' 后面是子网掩码
subnet 192.168.1.0 netmask 255.255.255.0 {
  # 分配给客户端的 IP 地址池
  range 192.168.1.100 192.168.1.200;
  # 默认网关
  option routers 192.168.1.1;
  # DNS 服务器地址
  # 可以设置多个,用逗号隔开
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  # (可选)为特定客户端分配固定 IP 地址
  # host my-printer {
  #   hardware ethernet 00:1A:2B:3C:4D:5E;  # 打印机的 MAC 地址
  #   fixed-address 192.168.1.10;            # 分配给它的固定 IP
  # }
}

配置说明:

  • subnet 声明:这是核心部分,告诉 DHCP 服务器哪个网段需要管理。
  • range:定义了可以动态分配的 IP 地址范围。
  • option routers:告诉客户端,当需要访问其他网络时,数据包应该发送到哪里(通常是你的路由器)。
  • option domain-name-servers:告诉客户端应该使用哪个 DNS 服务器来解析域名。
  • host ... fixed-address ...:这是一个非常有用的功能,可以通过客户端的 MAC 地址为其分配一个固定的 IP 地址,便于管理服务器、NAS 等设备。

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

你需要告诉 DHCP 服务应该在哪个网络接口上(eth0, ens33, wlan0)监听客户端的请求。

对于 Ubuntu/Debian

编辑 isc-dhcp-server 的配置文件:

sudo nano /etc/default/isc-dhcp-server

找到 INTERFACESv4 这一行,取消注释并修改为你希望监听的接口名称(ens33)。

# 默认是 INTERFACESv4=""
# 修改为你的网络接口,ens33
INTERFACESv4="ens33"

对于 CentOS/RHEL/Rocky Linux

编辑 dhcpd 的服务配置文件:

sudo nano /etc/sysconfig/dhcpd

找到 DHCPDARGS 这一行,修改为你的网络接口名称,如果需要监听多个接口,用空格隔开。

# 默认可能是 DHCPDARGS=eth0
# 修改为你的网络接口,ens33
DHCPDARGS="ens33"

注意:如果你的服务器有多个网络卡,并且想让 DHCP 服务在所有接口上监听,可以设置为 DHCPDARGS="all"


第四步:启动并启用 DHCP 服务

现在配置已经完成,我们需要启动服务并设置为开机自启。

对于 Ubuntu/Debian

# 启动服务
sudo systemctl start isc-dhcp-server
# 设置开机自启
sudo systemctl enable isc-dhcp-server
# 查看服务状态,确保没有错误
sudo systemctl status isc-dhcp-server

对于 CentOS/RHEL/Rocky Linux

# 启动服务
sudo systemctl start dhcpd
# 设置开机自启
sudo systemctl enable dhcpd
# 查看服务状态
sudo systemctl status dhcpd

如果启动失败,请仔细检查前面的配置步骤,特别是 /etc/dhcp/dhcpd.conf 文件的语法是否正确,可以使用 sudo dhcpd -t 命令来测试配置文件的语法。


第五步:验证配置

  1. 在客户端上测试 将一台电脑或手机连接到同一局域网,并设置为“自动获取 IP 地址”,在命令行中运行 ipconfig /all (Windows) 或 ifconfig / ip a (Linux/macOS),你应该能看到从你的 DHCP 服务器获取到的 IP 地址、网关和 DNS 信息。

  2. 在服务器上查看租约信息 你可以查看 DHCP 服务器当前的租约记录,以确认分配是否成功。

    • Ubuntu/Debian: /var/lib/dhcp/dhcpd.leases
    • CentOS/RHEL/Rocky Linux: /var/lib/dhcpd/dhcpd.leases
    # 实时查看租约分配情况
    sudo tail -f /var/lib/dhcp/dhcpd.leases

    你会看到类似 lease 192.168.1.101 { ... } 的记录,这表示 IP 地址已经被成功分配。

常见问题排查

  • 服务启动失败:首先检查 journalctl -u isc-dhcp-server (Ubuntu) 或 journalctl -u dhcpd (CentOS) 的日志,找出具体错误,最常见的原因是配置文件语法错误或 IP 地址冲突。
  • 客户端获取不到 IP
    • 确认客户端和服务器在同一个网段。
    • 检查防火墙设置,默认情况下,DHCP 使用 UDP 端口 6768,确保服务器的防火墙没有阻止这些端口。
      • Ubuntu (UFW): sudo ufw allow 67/udp
      • CentOS (Firewalld): sudo firewall-cmd --permanent --add-service=dhcp && sudo firewall-cmd --reload
    • 检查你指定的网络接口是否正确且已启动。

如何停止或删除 DHCP 服务器

如果你想停止或卸载 DHCP 服务器:

停止并禁用服务

# Ubuntu/Debian
sudo systemctl stop isc-dhcp-server
sudo systemctl disable isc-dhcp-server
# CentOS/RHEL/Rocky Linux
sudo systemctl stop dhcpd
sudo systemctl disable dhcpd

卸载软件

# Ubuntu/Debian
sudo apt remove --purge isc-dhcp-server -y
# CentOS/RHEL/Rocky Linux
sudo dnf remove dhcp-server -y

希望这份详细的指南能帮助你成功安装和配置 DHCP 服务器!

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