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 - 在启动后台程序时,请勿打印完整的版权消息。