DHCP-сервер не запускается. Дает "Не настроен на прослушивание на любых интерфейсах!" даже когда настроено

Я только что настроил 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

В чем может быть проблема?

9 ответов

Я получил ту же проблему, и она была решена после назначения IP-адреса моему интерфейсу

лайк,

ifconfig eth0 192.168.1.100

Ваш /etc/default/isc-dhcp-server файл должен иметь

INTERFACES="eth0"

У меня была такая же проблема. Для Ubuntu 20.04 1 LTS. У меня было два сетевых адаптера, и я хотел использовать только один из них для продажи 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"

  1. Установите статический IP-адрес сервера...

            ifconfig (yourinterface)  (your static IP)/(mask number) example 
    sudo ifconfig enp4s0 10.8.0.2/24
    
  2. Запустите DHCP-сервер...

            sudo systemctl start isc-dhcp-server
    
  3. И восстановить его статус...

            sudo systemctl status isc-dhcp-server
    

Есть два способа начать сеть

  1. через /etc/network/interfaces

  2. через NetworkManager

    1. начать рано
    2. начать поздно

DHCPD попробуй запустить после 1) но до 2)

Если dhcpd не может обнаружить сеть, попробуйте способ 1)

Я также получал ту же ошибку. Я обнаружил, что запускаю isc-dhcp-server6.service(IPV6) вместо isc-dhcp-server.service(IPV4). Мои файлы конфигурации были определены только для ipv4. Следовательно, я получал «Не настроен для прослушивания на любом интерфейсе», когда пытался выполнить «systemctl start isc-dhcp-server6.service».

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.

У меня также была эта проблема, но, несмотря на все вышесказанное, мне нужно было объявить область действия для подсети, к которой был непосредственно подключен мой сетевой адаптер. Это позволило службе запускаться без ошибок.

У меня тоже была эта проблема. Dhcpd запускался до того, как сетевой интерфейс был готов. Вы можете добавить это в свой файл /etc/init/isc-dhcp-server.conf (для IPv4).

В нижней части файла вы увидите строку вроде этой ("exec" - это то, что вы ищете):

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
Другие вопросы по тегам