У меня есть просто установка isc-dhcp на моем сервере. Я даже устанавливаю корректный интерфейс. Но тем не менее dhcp сервер не загрузится. Говорит Not configured to listen on any interfaces!
в системном журнале. И когда я пробую dhcpd -t /etc/dhcp/dhcpd.conf
это дает эту ошибку: /etc/dhcp/dhcpd.conf: interface name too long (is 20
Вот мой dhcpd.conf:
ddns-update-style none;
option domain-name "thpi";
option domain-name-servers 208.67.222.222, 208.67.220.220;
default-lease-time 86400;
max-lease-time 604800;
authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
subnet 10.0.0.0 netmask 255.255.255.0 {
## dhcp start and end IP range ##
range 10.0.0.20 10.0.0.90;
option subnet-mask 255.255.255.0; ## subnet
option broadcast-address 10.0.0.255; ## broadcast
option routers 10.0.0.1; ## router IP
host pc1 {
hardware ethernet 60:a4:4c:3d:76:fa;
fixed-address 10.0.0.100;
}
host lap1 {
hardware ethernet 6c:71:d9:1e:f3:4f;
fixed-address 10.0.0.150;
}
host thnote {
hardware ethernet d0:22:be:d3:be:e1;
fixed-address 10.0.0.200;
}
}
/etc/default/isc-dhcp-server
файл:
# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer scripts
#
# This is a POSIX shell fragment
#
# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
#DHCPD_CONF=/etc/dhcp/dhcpd.conf
# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPD_PID=/var/run/dhcpd.pid
# Additional options to start dhcpd with.
# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0:0"
Файл интерфейсов:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
auto eth0:0
iface eth0:0 inet static
name Lan
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
Какова могла бы быть проблема?
Ваш /etc/default/isc-dhcp-server
файл должен иметь
INTERFACES="eth0"
У меня была эта проблема также. Dhcpd запускался, прежде чем сетевой интерфейс был готов. Можно добавить это к Вашему/etc/init/isc-dhcp-server.conf файл (для IPv4).
Близость нижняя часть файла Вы будете видеть строку как это ("должностное лицо" - то, что Вы ищете):
exec dhcpd -user dhcpd -group dhcpd -f -q -4 -pf /run/dhcp-server/dhcpd.pid -cf $CONFIG_FILE $INTERFACES
Добавляют это к строке выше его
sleep 30
, Это задержит запуск Вашего dhcpd сервера. Это не замедлит остальную часть Вашего процесса начальной загрузки.
нижняя часть того файла теперь похожа на это:
respawn
script
if [ -f /etc/ltsp/dhcpd.conf ]; then
CONFIG_FILE=/etc/ltsp/dhcpd.conf
else
CONFIG_FILE=/etc/dhcp/dhcpd.conf
fi
. /etc/default/isc-dhcp-server
# Allow dhcp server to write lease and pid file as 'dhcpd' user
mkdir -p /var/run/dhcp-server
chown dhcpd:dhcpd /var/run/dhcp-server
# The leases files need to be root:root even when dropping privileges
[ -e /var/lib/dhcp/dhcpd.leases ] || touch /var/lib/dhcp/dhcpd.leases
chown root:root /var/lib/dhcp /var/lib/dhcp/dhcpd.leases
if [ -e /var/lib/dhcp/dhcpd.leases~ ]; then
chown root:root /var/lib/dhcp/dhcpd.leases~
fi
sleep 30
exec dhcpd -user dhcpd -group dhcpd -f -q -4 -pf /run/dhcp-server/dhcpd.pid -cf $CONFIG_FILE $INTERFACES
end script
У меня была эта проблема также, но несмотря на все вышеупомянутое, я должен был объявить объем для подсети, с которой был непосредственно подключен мой NIC. Это позволило сервису запускаться без ошибки.
Существует два способа начать объединяться в сеть
через/etc/network/interfaces
через NetworkManager
DHCPD пытаются запуститься после 1), но прежде 2)
Если dhcpd не может обнаружить сеть, попробуйте метод 1)
http://www.braindisconnect.com/wiki/index.php?title=Linux_DHCP_Server
Это сообщение не имеет никакого отношения к Вашему dhcpd.conf файлу или конфигурации. Ошибка состоит в том, потому что dhcpd интерпретирует/etc/dhcp/dhcpd.conf как интерфейс. Эти 20 являются счетчиком символов "/etc/dhcp/dhcpd.conf" а не содержания файла.
Добавьте-cf к своему синтаксису и так, чтобы файл конфигурации на самом деле стал протестированным, или просто используйте dhcpd-t.
Я получил ту же проблему, и она была решена после присвоения IP-адреса к моему интерфейсу
как,
ifconfig eth0 192.168.1.100
У меня была такая же проблема. Для Ubuntu 20.04 1 ЛТС. У меня было два сетевых адаптера, и я хотел использовать только один из них для передачи IP-адресов через DHCP клиентам в локальной сети.
Мое исправление было комбинацией вещей, как показано ниже. Однако я считаю, что настоящим исправлением было добавление интерфейса в /etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd.conf
was (broken):
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.99;
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 1.1.1.1, 1.0.0.1, 8.8.8.8;
}
changed to (added interface and it worked):
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
subnet 192.168.0.0 netmask 255.255.255.0 {
interface enp6s0;
range 192.168.0.2 192.168.0.99;
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 1.1.1.1, 1.0.0.1, 8.8.8.8;
}
При хакинге я также изменил следующее, но не уверен, что теперь мне это нужно. Показано для полноты.
/etc/default/isc-dhcp-server
was:
INTERFACESv4=""
INTERFACESv6=""
changed to (the interface I want dhcp to use):
INTERFACESv4="enp6s0"
INTERFACESv6="enp6s0"