我正在跟进这 在没有 CD 读取器或 USB 引导功能的系统中安装 Linux 的教程。最终,我到达了必须安装的地步isc-dhcp-server
,我确实做到了。
Apt
告诉我有一个部分安装的软件包。我运行sudo apt-get install -f
并得到以下信息:
Job for isc-dhcp-server.service failed. See 'systemctl status isc-dhcp server.service' and 'journalctl -xn' for details.
invoke-rc.d: initscript isc-dhcp-server, action "start" failed.
dpkg: error processing package isc-dhcp-server (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
isc-dhcp-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
如果我这样做,/etc/init.d/isc-dhcp-server start
提示将包含同一消息的前两行。
输出来自sudo systemctl status isc-dhcp-server
:
● isc-dhcp-server.service - LSB: DHCP server
Loaded: loaded (/etc/init.d/isc-dhcp-server)
Active: failed (Result: exit-code) since Fri 2014-12-12 13:19:25 CST; 2min 43s ago
Process: 1677 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=1/FAILURE)
Dec 12 13:19:23 semplice dhcpd[1684]: you want, please write a subnet declaration
Dec 12 13:19:23 semplice dhcpd[1684]: in your dhcpd.conf file for the network segment
Dec 12 13:19:23 semplice dhcpd[1684]: to which interface eth0 is attached. **
Dec 12 13:19:23 semplice dhcpd[1684]:
Dec 12 13:19:23 semplice dhcpd[1684]:
Dec 12 13:19:25 semplice isc-dhcp-server[1677]: Starting ISC DHCP server: dhcpdcheck syslog for diagnostics. ... failed!
Dec 12 13:19:25 semplice isc-dhcp-server[1677]: failed!
Dec 12 13:19:25 semplice systemd[1]: isc-dhcp-server.service: control process exited, code=exited status=1
Dec 12 13:19:25 semplice systemd[1]: Failed to start LSB: DHCP server.
Dec 12 13:19:25 semplice systemd[1]: Unit isc-dhcp-server.service entered failed state.
输出来自sudo journalctl -xn
:
-- Logs begin at Fri 2014-12-12 12:57:16 CST, end at Fri 2014-12-12 13:32:01 CST. --
Dec 12 13:31:58 semplice NetworkManager[505]: <info> lease time 86400
Dec 12 13:31:58 semplice NetworkManager[505]: <info> nameserver '192.168.1.254'
Dec 12 13:31:58 semplice NetworkManager[505]: <info> domain name 'lan'
Dec 12 13:31:58 semplice dbus[518]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.ser
Dec 12 13:31:58 semplice dbus[518]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Dec 12 13:31:58 semplice nm-dispatcher[2194]: Dispatching action 'dhcp4-change' for wlan0
Dec 12 13:31:58 semplice dhclient[616]: bound to 192.168.1.65 -- renewal in 45 seconds.
Dec 12 13:31:58 semplice NetworkManager[505]: bound to 192.168.1.65 -- renewal in 45 seconds.
Dec 12 13:32:01 semplice sudo[2197]: alejandro : TTY=pts/0 ; PWD=/home/alejandro ; USER=root ; COMMAND=/bin/journalctl -xn
Dec 12 13:32:01 semplice sudo[2197]: pam_unix(sudo:session): session opened for user root by alejandro(uid=0)
这是我的/etc/dhcp/dhcpd.config
文件,它只是上述教程中示例的副本。
/var/log/syslog
运行后立即读取输出apt-get install -f
Dec 12 16:42:40 localhost dhclient: DHCPREQUEST on wlan0 to 192.168.1.254 port 67
Dec 12 16:42:40 localhost NetworkManager[505]: DHCPREQUEST on wlan0 to 192.168.1.254 port 67
Dec 12 16:42:40 localhost dhclient: DHCPACK from 192.168.1.254
Dec 12 16:42:40 localhost NetworkManager[505]: DHCPACK from 192.168.1.254
Dec 12 16:42:40 localhost NetworkManager[505]: <info> (wlan0): DHCPv4 state changed renew -> renew
Dec 12 16:42:40 localhost NetworkManager[505]: <info> address 192.168.1.65
Dec 12 16:42:40 localhost NetworkManager[505]: <info> plen 24 (255.255.255.0)
Dec 12 16:42:40 localhost NetworkManager[505]: <info> gateway 192.168.1.254
Dec 12 16:42:40 localhost NetworkManager[505]: <info> server identifier 192.168.1.254
Dec 12 16:42:40 localhost NetworkManager[505]: <info> lease time 86400
Dec 12 16:42:40 localhost NetworkManager[505]: <info> nameserver '192.168.1.254'
Dec 12 16:42:40 localhost NetworkManager[505]: <info> domain name 'lan'
Dec 12 16:42:40 localhost dbus[518]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service'
Dec 12 16:42:40 localhost dbus[518]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Dec 12 16:42:40 localhost nm-dispatcher: Dispatching action 'dhcp4-change' for wlan0
Dec 12 16:42:41 localhost dhclient: bound to 192.168.1.65 -- renewal in 52 seconds.
Dec 12 16:42:41 localhost NetworkManager[505]: bound to 192.168.1.65 -- renewal in 52 seconds.
Dec 12 16:43:32 localhost dhclient: DHCPREQUEST on wlan0 to 192.168.1.254 port 67
Dec 12 16:43:32 localhost NetworkManager[505]: DHCPREQUEST on wlan0 to 192.168.1.254 port 67
Dec 12 16:43:32 localhost dhclient: DHCPACK from 192.168.1.254
Dec 12 16:43:32 localhost NetworkManager[505]: DHCPACK from 192.168.1.254
Dec 12 16:43:32 localhost NetworkManager[505]: <info> (wlan0): DHCPv4 state changed renew -> renew
Dec 12 16:43:32 localhost NetworkManager[505]: <info> address 192.168.1.65
Dec 12 16:43:32 localhost NetworkManager[505]: <info> plen 24 (255.255.255.0)
Dec 12 16:43:32 localhost NetworkManager[505]: <info> gateway 192.168.1.254
Dec 12 16:43:32 localhost NetworkManager[505]: <info> server identifier 192.168.1.254
Dec 12 16:43:32 localhost NetworkManager[505]: <info> lease time 86400
Dec 12 16:43:32 localhost NetworkManager[505]: <info> nameserver '192.168.1.254'
Dec 12 16:43:32 localhost NetworkManager[505]: <info> domain name 'lan'
Dec 12 16:43:32 localhost dbus[518]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service'
Dec 12 16:43:32 localhost dbus[518]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Dec 12 16:43:32 localhost nm-dispatcher: Dispatching action 'dhcp4-change' for wlan0
Dec 12 16:43:33 localhost dhclient: bound to 192.168.1.65 -- renewal in 54 seconds.
Dec 12 16:43:33 localhost NetworkManager[505]: bound to 192.168.1.65 -- renewal in 54 seconds.
Dec 12 16:43:40 localhost dhcpd: Internet Systems Consortium DHCP Server 4.3.1
Dec 12 16:43:40 localhost dhcpd: Copyright 2004-2014 Internet Systems Consortium.
Dec 12 16:43:40 localhost dhcpd: All rights reserved.
Dec 12 16:43:40 localhost dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Dec 12 16:43:40 localhost dhcpd: Internet Systems Consortium DHCP Server 4.3.1
Dec 12 16:43:40 localhost dhcpd: Copyright 2004-2014 Internet Systems Consortium.
Dec 12 16:43:40 localhost dhcpd: All rights reserved.
Dec 12 16:43:40 localhost dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Dec 12 16:43:40 localhost dhcpd: Wrote 0 deleted host decls to leases file.
Dec 12 16:43:40 localhost dhcpd: Wrote 0 new dynamic host decls to leases file.
Dec 12 16:43:40 localhost dhcpd: Wrote 0 leases to leases file.
Dec 12 16:43:40 localhost dhcpd:
Dec 12 16:43:40 localhost dhcpd: No subnet declaration for eth0 (no IPv4 addresses).
Dec 12 16:43:40 localhost dhcpd: ** Ignoring requests on eth0. If this is not what
Dec 12 16:43:40 localhost dhcpd: you want, please write a subnet declaration
Dec 12 16:43:40 localhost dhcpd: in your dhcpd.conf file for the network segment
Dec 12 16:43:40 localhost dhcpd: to which interface eth0 is attached. **
Dec 12 16:43:40 localhost dhcpd:
Dec 12 16:43:40 localhost dhcpd:
Dec 12 16:43:40 localhost dhcpd: Not configured to listen on any interfaces!
Dec 12 16:43:40 localhost dhcpd:
Dec 12 16:43:40 localhost dhcpd: If you think you have received this message due to a bug rather
Dec 12 16:43:40 localhost dhcpd: than a configuration issue please read the section on submitting
Dec 12 16:43:40 localhost dhcpd: bugs on either our web page at www.isc.org or in the README file
Dec 12 16:43:40 localhost dhcpd: before submitting a bug. These pages explain the proper
Dec 12 16:43:40 localhost dhcpd: process and the information we find helpful for debugging..
Dec 12 16:43:40 localhost dhcpd:
Dec 12 16:43:40 localhost dhcpd: exiting.
Dec 12 16:43:42 localhost isc-dhcp-server[5729]: Starting ISC DHCP server: dhcpdcheck syslog for diagnostics. ... failed!
Dec 12 16:43:42 localhost isc-dhcp-server[5729]: failed!
Dec 12 16:43:42 localhost systemd[1]: isc-dhcp-server.service: control process exited, code=exited status=1
Dec 12 16:43:42 localhost systemd[1]: Failed to start LSB: DHCP server.
Dec 12 16:43:42 localhost systemd[1]: Unit isc-dhcp-server.service entered failed state.
我应该隐藏我的 IP 地址吗?
答案1
您的网络配置似乎与 dhcp.conf 中的子网声明不匹配。确保您配置了 10.10.1.0/24 子网的 IP 地址。您可以使用以下方法检查:
ip a
如果您没有看到这样的 IP 地址,请尝试将其添加到例如 eth0:
ip a a 10.10.1.200/24 dev eth0
之后再次尝试修复包:
apt-get install -f
如果我是正确的,它应该安装该软件包并启动 DHCP 守护进程,并且您可能希望将此 IP 地址保留在 /etc/network/interfaces 中
答案2
你的问题在这里:
Dec 12 16:43:40 localhost dhcpd: No subnet declaration for eth0 (no IPv4 addresses). Dec 12 16:43:40 localhost dhcpd: ** Ignoring requests on eth0. If this is not what Dec 12 16:43:40 localhost dhcpd: you want, please write a subnet declaration Dec 12 16:43:40 localhost dhcpd: in your dhcpd.conf file for the network segment Dec 12 16:43:40 localhost dhcpd: to which interface eth0 is attached. ** Dec 12 16:43:40 localhost dhcpd: Dec 12 16:43:40 localhost dhcpd: Dec 12 16:43:40 localhost dhcpd: Not configured to listen on any interfaces! Dec 12 16:43:40 localhost dhcpd: Dec 12 16:43:40 localhost dhcpd: If you think you have received this message due to a bug rather Dec 12 16:43:40 localhost dhcpd: than a configuration issue please read the section on submitting Dec 12 16:43:40 localhost dhcpd: bugs on either our web page at www.isc.org or in the README file Dec 12 16:43:40 localhost dhcpd: before submitting a bug. These pages explain the proper Dec 12 16:43:40 localhost dhcpd: process and the information we find helpful for debugging.. Dec 12 16:43:40 localhost dhcpd: Dec 12 16:43:40 localhost dhcpd: exiting.
您应该能够通过运行来重现错误消息dhcpd -t -cf /etc/dhcp/dhcpd.conf
。
我猜您想与以太网上的其他主机共享无线互联网连接,如下面的拓扑图所示。
↑
│ Uplink
│
┌────────────┴────────────┐
│ wlan0 │
│ 192.168.1.65/24 │
│ │
│ semplice │
│ │
│ 10.10.1.1/24 │
│ eth0 │
└────────────┬────────────┘
│
┌──────────────┬───────┴────────┬──────────────┐
│ │ │ │
Host 1 Host 2 Host 3 Host 4
10.10.1.21 10.10.1.22 10.10.1.23 10.10.1.24
我假设您的服务器地址eth0
是 10.10.1.1。通过运行来验证这一点ip addr show dev eth0
。
那么你必须配置 /etc/dhcp/dhcpd.conf
在接口上分发地址eth0
。开箱即用,dhcpd
配置为不响应任何内容,因为无意中运行的恶意 DHCP 服务器会向任何需要地址的主机分发地址,从而对网络造成严重破坏。
在 中/etc/dhcp/dhcpd.conf
,您需要如下所示的节:
subnet 10.10.1.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 10.10.1.255;
option routers 10.10.1.1;
pool {
range 10.10.1.21 10.10.1.254;
}
}
…除了诸如authoritative
、domain-name
、domain-name-servers
和 之类的声明之外default-lease-time
。 (根据需要进行调整。只有您知道您想要的网络设置。)
另外,对于 Debian,您需要编辑/etc/default/isc-dhcp-server
来设置
INTERFACES="eth0"
这样服务器就会监听以太网端口。 (您不想监听wlan0
;您的无线接入点将负责向无线客户端分发地址。)