Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

14.2.3. 启动和停止服务器

重要
当首次启动 DHCP 服务器时,它将失败,除非 dhcpd.leases 文件存在。如果文件不存在,您可以使用 touch /var/lib/dhcpd/dhcpd.leases 命令创建该文件。如果同一服务器也将 BIND 作为 DNS 服务器运行,则不需要这一步,因为启动命名服务会自动检查 dhcpd.leases 文件。
不要在之前运行的系统中创建新的租用文件。如果您这样做,所有旧租期都会丢失,从而导致很多问题。正确的解决方案是将 dhcpd.leases~ 备份文件重命名为 dhcpd.leases,然后启动守护进程。
要启动 DHCP 服务,请使用以下命令:
systemctl start dhcpd.service
要停止 DHCP 服务器,请输入:
systemctl stop dhcpd.service
默认情况下,DHCP 服务在引导时不启动。有关如何将守护进程配置为在引导时自动启动的详情,请参考 Red Hat Enterprise Linux 系统管理员指南
如果有多个网络接口附加到系统,但 DHCP 服务器应仅在其中一个接口上侦听 DHCP 请求,请将 DHCP 服务器配置为仅侦听该设备。DHCP 守护进程将仅侦听在 /etc/dhcp/dhcpd.conf 文件中找到子网声明的接口。
这对于具有两个网卡的防火墙计算机非常有用。个网卡可以配置为 DHCP 客户端,以检索到互联网的 IP 地址。其他网卡可用作防火墙后面的内部网络的 DHCP 服务器。仅指定连接到内部网络的网卡可以使系统更安全,因为用户无法通过互联网连接到守护进程。
要指定命令行选项,请以 root 用户身份复制并编辑 dhcpd.service 文件。例如,如下所示:
~]# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
~]# vi /etc/systemd/system/dhcpd.service
root 用户身份编辑 [Service]:
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid your_interface_name(s)
部分下的行,重启该服务:
~]# systemctl --system daemon-reload
~]# systemctl restart dhcpd
在 [Service] 部分下的 /etc/systemd/system/dhcpd 中,可以将命令行选项附加到ExecStart=/usr/sbin /dhcpd.dhcpd。它们包括:
  • -p portnum - 指定 dhcpd 应侦听的 UDP 端口号。默认值为 port 的值。DHCP 服务器通过端口号传输到 DHCP 客户端的响应,其端口号大于指定的 UDP 端口。例如,如果使用默认端口 67,服务器侦听端口 67 中的请求并在端口 67 上响应客户端。如果此处指定了端口并使用 DHCP 中继代理,则必须指定 DHCP 中继代理应侦听的同一端口。详情请查看 第 14.3 节 “DHCP 转发代理”
  • -f - 将守护进程作为前台进程运行。这主要用于调试。
  • -d - 将 DHCP 服务器守护进程记录到标准错误描述符。这主要用于调试。如果未指定,日志将写入 /var/log/messages
  • -cf filename - 指定配置文件的位置。默认位置为 /etc/dhcp/dhcpd.conf
  • -lf 文件名 - 指定租期数据库文件的位置。如果租期数据库文件已存在,每次启动 DHCP 服务器时使用相同的文件非常重要。强烈建议仅将此选项用于非生产计算机上的调试目的。默认位置为 /var/lib/dhcpd/dhcpd.leases
  • -Q - 在启动后台程序时,请勿打印完整的版权消息。