- Включить / отключить запуск службы DHCP с помощью командной строки Linux
- 2 ответа 2
- Как отключить работу DHCP
- Есть ли способ отключить DHCP-клиент в Raspbian Linux на Rasperry Pi?
- 6 ответов
- Linux: получение адреса по DHCP и работа с dhclient
- Полезные опции dhclient
- Примеры работы с dhclient
- Пример файла dhclient.conf
Включить / отключить запуск службы DHCP с помощью командной строки Linux
Я хотел бы отключить запуск службы DHCP с помощью командной строки Linux, чтобы использовать собственный DHCP-клиент или установить статические IP-адреса.
Я знаю, что, как уже упоминалось в этом посте, установив статический тип интерфейса вместо dhcp в /etc /network /interfaces, DHCP отключается для соответствующего интерфейса.
Но я хотел бы сделать сценарий оболочки, который использует командные строки, чтобы сделать это и наоборот.
2 ответа 2
Предполагая, что вы уже деактивировали NetworkManager для нужных интерфейсов, вы можете использовать команду «ip».
Назначение вручную (скажем, ваш интерфейс — eth0):
Команда ip addr принимает подкоманды replace и change и вы можете использовать label SOMETHING чтобы назвать ваше устройство в удобочитаемой форме. Так что это должно помочь сделать скрипт оболочки таким, как вам нужно.
Манипулируя IP-адресом интерфейса, в то время как он настроен на использование dhcp, существует риск того, что ваш статический ip будет регулярно переопределяться.
Затем вам нужно убить dchclient, связанный с вашим интерфейсом (htop и kill). Однако, похоже, что dhclient хранит pid своего экземпляра в каталоге по умолчанию: /var/run/dhclient.
и снова включить dhcp:
РЕДАКТИРОВАТЬ
Кажется, что сетевой менеджер контролирует экземпляры dhclient. Затем вы можете предоставить другую конфигурацию менеджеру.
удалите все ссылки на ваш интерфейс в /etc /network /interfaces
добавьте следующую строку в конец /etc /network /interfaces
создайте каталог /etc/network/interfaces.d если он не существует, и следующие два файла:
Источник
Как отключить работу DHCP
Други, вроде простой вопрос — как отключить работу DHCP?
Установил CentOS из netinstall в варианте Minimal, и оказалось, что по дефолту сервис DHCP работает.
Но по команде chkconfig он отсутствует! Где же он прячется и как его отключить?
Потому что удалять его как пакет OpenDHCP все-таки не хочется, пусть бы себе был в нерабочем состоянии, чтобы когда понадобится, быстренько включить.
Запущена служба, которая раздаёт ip адреса в сеть с вашего CentOS или автоматически запускаются DHCP клиенты на интерфейсах ?
Ах, да — имеется в виду клиентский DHCP, который получает IP-адрес.
Я думаю вас заинтересуют параметры:
Документация дремучая, там то сих пор Kudzu упоминается 🙂
Но суть не в этом, насколько понял, для отключения DHCP-клиента нужно править /etc/sysconfig/network-scripts/ifcfg-eth0 ?
Пока правда не знаю как именно, но опять-таки суть не в этом — почему по команде chkconfig не вижу DHCP среди других сервисов и соответственно не могу отключить его автозагрузку удобной командой
chkconfig —level 345 dhcpd off
и остановить простой командой вида
service dhcpd stop ?
Ах, да — имеется в виду клиентский DHCP, который получает IP-адрес.
dhcp-клиент это не сервис. Если локальный интерфейс настроен на получение IP по DHCP, то в процессах будет висеть демон dhclient.
почему по команде chkconfig не вижу DHCP среди других сервисов
Потому что у тебя не установлено DHCP-сервера. Покажи вывод pgrep -l dhc
dhcp-клиент это не сервис. Если локальный интерфейс настроен на получение IP по DHCP, то в процессах будет висеть демон dhclient.
Ну это dhcp-клиент это я обозвал условно, не помню его точное название, поскольку в сервисах его не видно.
Хорошо, пусть правильное название клиента dhclient.
И он, как оказалось, действительно висит в памяти —
# pgrep -l dhc
974 dhclient
Так почему же его не видно по команде chkconfig? И откуда он тогда берется :-O
Так почему же его не видно по команде chkconfig?
Мда, вы читать и понимать то что написано когда уже научитесь ?
Ещё раз, dhclient — это клиент к dhcp серверу для получения IP адреса интерфейсом, в случае, если у вас выставлено получение параметров сети динамически. Как конфигурировать сетевой интерфейс указывается в конфигурационном файле /etc/sysconfig/network-scripts/ifcfg- , в частности в параметре BOOTPROTO= сервиса network. Сервис network запускает dhcpclient для каждого интерфейса, для которого указано получать параметры динамически и указано, что его нужно поднимать при старте системы, параметр ONBOOT=
Команда chkconfig управляет сервисами.
Действительно, не понимаю, почему этот dhclient сделали по управлению не такой, как другие сервисы, было удобнее, имхо, ну да ладно, это мои проблемы.
Объясните, пожалуйста, тогда такую вещь: как отключить этот dhclient, чтобы не мешал? Поскольку мне нужно перевести eth0 на статику.
Действительно, не понимаю, почему этот dhclient сделали по управлению не такой, как другие сервисы,
Потому что он не сервис и управлять им в отрыве от фреймворка настройки сети нет смысла.
У вас все так гармонично и картинка и ник и вопросы.
Действительно, не понимаю, почему этот dhclient сделали по управлению не такой, как другие сервисы,
Потому, что это не сервис. dhcpclient запускает сервис network, в зависимости от настроек интерфейсов, который вы указали в конфигурационном файле /etc/sysconfig/network-scripts/ifcfg- .
Объясните, пожалуйста, тогда такую вещь: как отключить этот dhclient, чтобы не мешал? Поскольку мне нужно перевести eth0 на статику.
почему этот dhclient сделали по управлению не такой, как другие сервисы
Потому что это не демон, как уже сказали выше. Не всякий процесс, запускающийся в фоновом режиме является демоном.
Чего ж его тогда не сделали демоном? Ну да ладно.
В-общем, решил проблему настройки eth0 следующим образом:
Установил утилиту system-config-network-tui-1.6.0.el6.2-1.el6.noarch, с помощью которого быстро отключил клиента dhcp и настроил адреса eth0.
Хоть утилита потянула за собой 8 пакетов (libnl-1.1-14.el6.i686 iw-0.9.17-4.el6.i686 crda-1.1.1_2010.11.22-1.el6.i686 wireless-tools-29-5.1.1.el6.i686 python-iwlib-0.1-1.2.el6.i686 python-ethtool-0.6-3.el6.i686 pciutils-3.1.10-2.el6.i686 dbus-python-0.83.0-6.1.el6.i686 tui-1.6.0.el6.2-1.el6.noarch), но зато с ней все наглядно, понятно и не требует ковыряться в конфигах.
Уж извините, но мне так оказалось проще.
Чего ж его тогда не сделали демоном? Ну да ладно.
Потому что смысла его делать демоном нет. Это клиент для DHCP сервера запускается для каждого интерфейса, который должен получать параметры работы сети. Как конфигурировать интерфейс указывается в параметрах сервиса network, что бы при его запуске у вас выставлялись статические ip адреса или он запускал для интерфейса dhclient .
Установил утилиту system-c27onfig-network-tui-1.6.0.el [/quote6.2-1.el6.noarch, с помощью которого быстро отключил клиента dhcp и настроил адреса eth0. Хоть утилита потянула за собой 8 пакетов (libnl-1.1-14.el6.i686 iw-0.9.17-4.el6.i686 crda-1.1.1_2010.11.22-1.el6.i686 wireless-tools-29-5.1.1.el6.i686 python-iwlib-0.1-1.2.el6.i686 python-ethtool-0.6-3.el6.i686 pciutils-3.1.10-2.el6.i686 dbus-python-0.83.0-6.1.el6.i686 tui-1.6.0.el6.2-1.el6.noarch), но зато с ней все наглядно, понятно и не требует ковыряться в конфигах.
Ну т.е. открыть в текстовом редакторе файл /etc/sysconfig/network-scripts/ifcfg- , т.е. например
Источник
Есть ли способ отключить DHCP-клиент в Raspbian Linux на Rasperry Pi?
у меня есть сервер Linux (Rasperry Pi с использованием Raspbian в качестве ОС), который должен использовать только статический IP.
однако я заметил, что он также получил IP от DHCP сервера (IP выданный DHCP 192.168.111.2 ). В соответствии с сетевыми настройками сервер должен использовать только статический IP ( 192.168.111.100 ).
несмотря на использование статической конфигурации я могу SSH на устройство также с помощью IP, заданного DHCP. Также кажется, что ntpd использует неправильный IP, а также правильный.
по данным ifconfig IP 192.168.111.2 не используется:
ps -ef | grep dhcp показывает, что у меня работает демон DHCP:
Как отключить DHCP демон от запуска и убедитесь, что мой сервер использует только статический?
6 ответов
этот сценарий звучит очень странно, потому что ваша установка должна работать так, как вы описываете-и надеюсь, что она будет работать-если есть статический IP, установленный в /etc/network/interfaces . Тем не менее,это обсуждение на официальном сайте Raspberry Pi фокусируется на проблеме с пользователем «rpdom», заявив об этом на посту от «чт 28 мая 2015 6:21 am»:
это происходит в последних обновлениях. Это вызвано новым dhcp клиент игнорирует действия и действия файлов интерфейсов свое собственное дело кроме того. мне это кажется безумием. Я бы посмотрел, как перенастроить dhcp-клиент (не могу вспомнить, что это такое или как это сделать, я все еще на старый, который работает для меня), отключив его или удалив (если вероятный.)
глубже в потоке пользователь » KLL » предлагает следующий пост в своем ответе от «Пн Авг 10, 2015 12:59 вечера.»По данным «КНТЭУ»:
Источник
Linux: получение адреса по DHCP и работа с dhclient
Для управления адресом интерфейса по протоколу DHCP ( Dynamic Host Configuration Protocol — протокол динамической настройки узла) используется утилита dhclient .
Полезные опции dhclient
-q — не выводить данные в консоли и в лог, кроме ошибок;
-1 — отправить запрос только один раз; в случае ошибки будет exit 2 ;
-r — освободить текущий адрес;
-lf — файл базы данных аренды; если не указан будет использован файл по-умолчанию /var/lib/dhclient/dhclient.leases ;
-pf
— PID-файл процесса; если не указан — будет использован /var/run/dhclient.pid ;
-cf — файл конфигурации dhcp -клиента; если не указан — будет использоваться /etc/dhcp/dhclient.conf (в CentOS его всё-же надо создавать вручную);
-s — указать сервер DHCP для отправки запроса; если не указан — запрос отправляет по всей сети 255.255.255.255 ;
-I — указание dhcp -идентификатора клиента;
-H — указание опции host-name в запросе к DHCP-серверу; строка host-name должна содержать только префикс имени хсота клиента, к которому сервер добавит ddns или dns имя для полчения полного FQDN-имени; нельзя использовать с опцией -F ;
-F — указать опцию fqdn.fqdn для отправки серверу; нельзя использовать с опцией -H ; опция fqdn.fqdn определяет полное имя хоста клиента, которое сервер будет использовать для оновления DDNS;
-R [, . ] — указать список опций, которые клиент хочет получить от сервера; список по умолчанию содержит такие опции:
subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, nis-domain, nis-servers, ntp-servers, interface-mtu
опция -R не добавляет список запросов к запросу по-умолчанию, а перезаписывает его;
-timeout — указать timeout запроса вручную;
-v — подробный режим;
Полный список опций dhclient можно посмотреть тут>>> (русс), тут>>> (eng) и тут>>> (eng).
Примеры работы с dhclient
Сбросить текущий адрес:
Файл списка базы данных адресов:
Указать другой файл:
Указать имя клиента:
После чего в логе DHCP-сервера:
testbox | LAN | 192.168.1.104 | 08:00:27:38:F0:04 |
Без указания опции -H — клиент вообще не отправляет своё имя, и идентифицировать его можно только по MAC-адресу:
LAN | 192.168.1.104 | 08:00:27:38:F0:04 |
Вариант номер 1 — добавить строку:
в файл /etc/sysconfig/network-scripts/ifcfg-eth0 .
Пример файла dhclient.conf
Другой вариант — настроить конфигурацию dhcp -клиента с помощью файла /etc/dhcp/dhclient.conf .
Создаём файл с такой строкой:
testbox-3 | LAN | 192.168.1.104 | 08:00:27:38:F0:04 |
В данном случае пример выполняется на:
Возможны и другие места размещения файла:
Немного усложним файл:
timeout — timeout для получения ответа; в случае ошибки — будет повторная попытка после retry секунд;
retry — время до повторной попытки запроса, если предыдущая не прошла по timeout ;
reboot — после перезапуска dhclient сначала попытается использовать тот же адрес, который у него был ранее; если это не получится — он отправит новый запрос после reboot секунд;
reject — отклонять запросы от DHCP-сервера с указанным IP;
interface — указание, для какого интерфейса применять данные правила;
send — оператор, указыаеющий список параметров, которые клиент будет передавать серверу;
require — оператор, указывающий список требуемых клиенту опций;
Источник