Служба isc-dhcp-server не удается запуститься

Вопрос или проблема

В настоящее время я работаю над проектом создания высокозащищенного маршрутизатора с помощью моего RaspberryPi для анонимного серфинга в интернете. Однако я не могу правильно настроить демона, чтобы завершить подключение wifi к новому серверу:

Действительно, когда я выполняю:

:~ $ sudo service isc-dhcp-server start

Я получаю:

Работа для isc-dhcp-server.service завершилась неудачей. См. 'systemctl status isc-dhcp-server.service' и 'journalctl -xn' для получения информации.

Вот мои настройки /etc/dhcp/dhcpd.conf

авторитетный;

#добавлено

подсеть 192.168.42.0 маска_подсети 255.255.255.0{
        диапазон 192.168.42.10 192.168.42.50;
        опция широковещательный_адрес 192.168.42.255;
        опция маршрутизаторы 192.168.42.1;
        время_аренды_по_умолчанию 600;
        максимальное_время_аренды 7200;
        опция доменное_имя "local";
        опция доменные_имена-серверов 8.8.8.8, 8.8.4.4;
}

И вот мои настройки /etc/network/interfaces:

source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback
iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet static
адрес 192.168.42.1
маска_подсети 255.255.255.0

iface wlan0 inet dhcp

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet static
адрес 192.168.42.1
маска_подсети 255.255.255.0

iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

up iptables-restore < /etc/iptables.ipv4.nat

Мой RaspberryPi подключен через провод, но имеет Wi-Fi адаптер.

Вот systemctl status isc-dhcp-server.service

:~ $ systemctl status isc-dhcp-server.service
● isc-dhcp-server.service - LSB: DHCP сервер
   Загружено: загружено (/etc/init.d/isc-dhcp-server)
   Активно: неудачно (Результат: код выхода) с Вт 2016-06-07 00:13:45 CEST; 53с назад
  Процесс: 18098 ExecStart=/etc/init.d/isc-dhcp-server start (код=вышел, статус=1/НЕУДАЧА)

Некоторые части отображаются с пугающим красным цветом...

А вот journalctl

-- Журналы начинаются с пн 2016-06-06 21:17:01 CEST, заканчиваются во вт 2016-06-07 00:18:32 CEST. --
07-июн 00:13:45 raspberrypi isc-dhcp-server[18098]: проблеме с конфигурацией пожалуйста прочтите раздел о подаче
07-июн 00:13:45 raspberrypi isc-dhcp-server[18098]: ошибок как на нашем веб-сайте www.isc.org, так и в файле README
07-июн 00:13:45 raspberrypi isc-dhcp-server[18098]: перед подачей ошибки. Эти страницы объясняют правильный
07-июн 00:13:45 raspberrypi isc-dhcp-server[18098]: процесс и информацию, которую мы считаем полезной для отладки..
07-июн 00:13:45 raspberrypi isc-dhcp-server[18098]: выход.
07-июн 00:17:01 raspberrypi CRON[18118]: pam_unix(cron:session): сессия открыта для пользователя root (uid=0)
07-июн 00:17:01 raspberrypi CRON[18122]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
07-июн 00:17:01 raspberrypi CRON[18118]: pam_unix(cron:session): сессия закрыта для пользователя root
07-июн 00:18:32 raspberrypi sudo[18139]: pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/bin/journalctl -xn
07-июн 00:18:32 raspberrypi sudo[18139]: pam_unix(sudo:session): сессия открыта для пользователя root пользователем pi(uid=0)

Было две вещи:

Самая очевидная заключалась в том, чтобы написать адрес с двумя "d" здесь:

подсеть 192.168.42.0 маска_подсети 255.255.255.0{
        диапазон 192.168.42.10 192.168.42.50;
        опция широковещательный_адрес 192.168.42.255;
        опция маршрутизаторы 192.168.42.1;
        время_аренды_по_умолчанию 600;
        максимальное_время_аренды 7200;
        опция доменное_имя "local";
        опция доменные_имена-серверов 8.8.8.8, 8.8.4.4;
}

Вторая заключалась в том, чтобы запустить беспроводную сеть, выполнив:

sudo ifup wlan0

И я смог бы запустить service isc-dhcp-server, я сделал это благодаря этому руководству raspberrypihq по превращению RPi в маршрутизатор.

Тем не менее, у меня сейчас проблемы с выполнением sudo update-rc.d isc-dhcpd-server enable. Любая помощь будет тепленько принята!

Если это поможет кому-то, я только что прошел через эту раздражающую проблему на DietPi (Debian Buster) на Pi Zero W и нашел решение проблемы.

isc-dhcp-server отличный, но у него есть эта проблема, о которой упомянул оригинальный задающий вопрос выше. Я нашел решение проблемы — это не ошибка — и вот детали причины:

isc-dhcp-server отказывается (выдает ошибку), если не может увидеть поднятую подсеть Ethernet во время запуска; он НЕ требует (в отличие от некоторых комментаторов) фактического подключения к Ethernet порту, к которому он связан.

Когда разрабатывается устройство WiFi точки доступа, обычно используется hostapd в качестве функций сервера AP (который перенастраивает WiFi оборудование для переключения в режим AP), и наряду с hostapd, вам нужен DHCP сервер, такой как isc-dhcp-server, для предоставления услуги аренды IP адресов.

Таким образом: обычно начальная точка — это WiFi устройство, которое при загрузке было настроено как клиентское устройство, но должно быть переключено в режим хоста, чтобы действовать как точка доступа. Таким образом, ранний шаг — установить wlan0 (или что-то подобное) вниз перед запуском hostapd.

НО эта ситуация, сразу же одна из тех, которые isc-dhcp-server не любит: если вы попытаетесь запустить его до hostapd, он завершится неудачей, жалуясь, что нет подсети, на которую он может слушать.

Так что вы можете невинно попробовать добавить новый IP адрес (для хоста) к вашему wlan0 (или эквиваленту) и попробовать снова: ЭТО НЕ СРАБОТАЕТ, потому что, хотя вы теперь имеете новый IP, прикреплённый к Ethernet порту, вы также обнаружите, что не можете установить его «ВВЕРХ» (ip link set wlan0 up завершится неудачей). Это происходит потому, что порт «испорчен» всё ещё активным устаревшим адресом и процессом wpa-supplicant, который его использовал.

КРАТКО: вам нужно убить wpa-supplicant, чтобы «освободить» старый адрес / ОЧИСТИТЬ настройки ip для порта / ЗАТЕМ добавить новый IP адрес для хоста; ДАЖЕ ТЕПЕРЬ, вы обнаружите, что isc-dhcp-server все равно не запускается, потому что вы не можете поднять интерфейс - пока. Наконец - запускайте hostapd теперь, перед isc, и он (в повторной настройке чипсета) также УСТАНОВИТ интерфейс wlan0 в ВВЕРХ. Так что теперь - наконец - вы МОЖЕТЕ запустить isc-dhcp-server, и он запустится без ошибок, и ваша точка доступа будет активна.

РЕШЕНИЕ ЭКСПЛУАТАЦИИ ISC-DHCP-SERVER наряду с HOSTAPD:

ВЫ ДОЛЖНЫ следовать ЭТОЙ СЕКВЕНЦИИ:

УБЕЙТЕ процесс wpa-supplicant (который поддерживает соединение клиента) следующим образом:

kill -2 $( cat /run/wpa_supplicant.wlan0.pid )

sleep 1

kill -9 $( cat /run/wpa_supplicant.wlan0.pid )

ОЧИСТИТЕ настройки WLAN IP, используя:

ip addr flush dev wlan0

ДОБАВЬТЕ новый IP-АДРЕС ХОСТА, используя:

ip addr add 10.1.1.1/24 dev wlan0

ЗАПУСТИТЕ hostapd, который также поставит wlan0 ВВЕРХ:

/usr/sbin/hostapd /etc/hostapd/hostapd.conf &

ЗАПУСТИТЕ isc-dhcp-server ( WLAN поднят, как хост теперь):

sudo service isc-dhcp-server restart

ТОГДА точка доступа должна быть ВВЕРХ и готова к принятию клиентов.

Это, конечно, мои адреса / отредактируйте под свои нужды.

ЕЩЁ ДВА СОВЕТА: Конфигурационные файлы hostapd.conf и dhcp.conf также могут свести вас с ума: - вот рабочие образцы. ВАЖНО: не переживайте из-за 'drivername' в hostapd.conf: это не нужно. 'Закомментировано' — нормально:

hostapd.conf

interface=wlan0
#driver=brcmfmac
ssid=THIS-IS-MY-AP
country_code=US
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1

dhcpd.conf

ЗАКОММЕНТИРУЙТЕ ОБЕ ЛИНИИ 'option domain..' И добавьте ЭТО ВНИЗУ:

подсеть 10.1.1.0 маска_подсети 255.255.255.0 { диапазон 10.1.1.100 10.1.1.109; опция широковещательный-адрес 10.1.1.255; опция маршрутизаторы 10.1.1.1; время_аренды_по_умолчанию 600; максимальное_время_аренды 7200; опция доменное_имя "mynetwork.org"; опция доменные_имена-серверов 8.8.8.8, 8.8.4.4; }

Хотя это работает на Pi, это было на DietPi, который является чистым Debian, так что этот же совет должен подойти для многих дистрибутивов Linux, включая Ubuntu различных версий.

Ответ или решение

Исправление ошибки запуска службы isc-dhcp-server на Raspberry Pi

Служба isc-dhcp-server, используемая для предоставления DHCP-услуг, может не запускаться по различным причинам. В этой статье мы рассмотрим основные шаги по диагностике и исправлению ошибок, возникающих при запуске данной службы на Raspberry Pi.

1. Проверка конфигурационных файлов

Первое, что необходимо сделать — это убедиться в отсутствии ошибок в конфигурационных файлах. Ваша конфигурация /etc/dhcp/dhcpd.conf имеет опечатку в строке с параметром option broadcast-address, где вместо broadcast-adress должно быть broadcast-address.

Исправленный фрагмент конфигурации:
authoritative;

subnet 192.168.42.0 netmask 255.255.255.0 {
    range 192.168.42.10 192.168.42.50;
    option broadcast-address 192.168.42.255;  # Исправлено
    option routers 192.168.42.1;
    default-lease-time 600;
    max-lease-time 7200;
    option domain-name "local";
    option domain-name-servers 8.8.8.8, 8.8.4.4;
}

2. Проверка настроек сети

Обратите внимание на /etc/network/interfaces. Вы определили интерфейс wlan0 как статический, что подходит для конфигурации точки доступа. Однако, не дублируйте одно и то же имя интерфейса с разными настройками, так как это может вызвать конфликты.

Исправленный фрагмент интерфейсов:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

allow-hotplug wlan0
iface wlan0 inet static
    address 192.168.42.1  # Исправлено
    netmask 255.255.255.0

3. Запуск и диагностика

После внесения изменений перезагрузите сетевой интерфейс, чтобы они вступили в силу:

sudo ifdown wlan0
sudo ifup wlan0

Теперь попробуйте перезапустить службу DHCP:

sudo service isc-dhcp-server start

Если служба не запускается, выполните следующую команду для получения детальной информации о статусе:

systemctl status isc-dhcp-server.service

Или просмотрите журналы для ошибок:

journalctl -xe

4. Удаление конфликтующих процессов

Если вы разрабатываете Wi-Fi точку доступа с использованием hostapd, убедитесь, что процессы, блокирующие интерфейсы, успешно завершены. В некоторых случаях wpa_supplicant может мешать запуску DHCP-сервера.

Чтобы остановить wpa_supplicant, выполните следующие команды:

sudo killall wpa_supplicant

Затем очистите настройки IP на интерфейсе:

sudo ip addr flush dev wlan0

И назначьте новый IP-адрес:

sudo ip addr add 192.168.42.1/24 dev wlan0

5. Запуск Hostapd перед DHCP-сервером

Запустите hostapd, который настрой код для вашей точки доступа в /etc/hostapd/hostapd.conf:

sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf &

После того как hostapd будет запущен и активирует интерфейс, теперь снова запустите isc-dhcp-server:

sudo service isc-dhcp-server start

Заключение

Следуя описанным шагам, вы сможете успешно запустить службу isc-dhcp-server на вашем Raspberry Pi и настроить Wi-Fi точку доступа. Помните, что правильная конфигурация сетевых интерфейсов и порядок запуска сервисов являются ключевыми факторами в успешной настройке. Если возникнут дополнительные проблемы, убедитесь, что все конфигурационные файлы находятся в порядке и отсутствуют конфликты между службами.

Оцените материал
Добавить комментарий

Капча загружается...