Linux отключить dhcp клиент

Обновлено: 04.07.2024

Ubuntu поставляется с набором графических утилит для настройки ваших сетевых устройств. Этот документ предназначен для серверных администраторов и сфокусирован на управлении вашей сетью через командную строку.

Интерфейсы Ethernet

Интерфейсы Ethernet идентифицируются системой с использованием имен ethX, где X является числовым значением. Первый интерфейс обычно обозначается как eth0, второй как eth1, и все последующие с увеличивающимися номерами по порядку.

Определение Ethernet интерфейсов

Для быстрого определения всех доступных сетевых интерфейсов вы можете использовать команду ifconfig как показано ниже.

Другое приложение, которое может помочь идентифицировать все доступные вашей системе сетевые интерфейсы, это команда lshw. В примере ниже lshw показывает один Ethernet интерфейс с логическим именем eth0 вместе с информацией по шине, деталями драйвера и всеми поддерживаемыми возможностями.

Логические имена интерфейсов Ethernet

Настройки интерфейса Ethernet

ethtool - это программа, которая показывает и изменяет настройки сетевых карт, такие как автоопределение, скорость порта, режим дуплекса и функция Wake-on-LAN (пробуждение системы через сеть). Эта программа не устанавливается по умолчанию, но доступна к установке из репозиториев.

Ниже приведен пример как посмотреть возможности карты и настроить параметры интерфейса Ethernet.

Изменения, сделанные с использованием команды ethtool, временные и будут утеряны после перезагрузки. Если вы хотите сохранить настройки, просто добавьте требуемую команду ethtool в строку pre-up в файле /etc/network/interfaces.

Ниже приведен пример как интерфейс, определенный как eth0, может быть постоянно настроен на скорость порта 1000Мб/с в режиме полного дуплекса.

Несмотря на то, что пример выше показывает интерфейс, настроенный статично, это работает и с другими методами, такими как DHCP . Этот пример слишком примитивен, чтобы продемонстрировать всю важность и возможности использования строки pre-up по отношению к настройке интерфейсов.

Адресация IP

Следующая секция описывает процесс настройки IP адреса вашей системы и шлюза по умолчанию, необходимые для подключения к локальной сети и интернету.

Временное назначение IP адреса

Для временной настройки сети вы можете использовать стандартные команды, такие как ip, ifconfig и route, которые присутствуют также и в других системах на базе GNU/Linux. Эти команды позволят изменить настройки, которые будут применены мгновенно, но они не будут постоянными и будут утеряны после перезагрузки.

Для временной настройки IP адреса вы можете использовать команду ifconfig следующим образом. Только замените IP адрес и маску подсети на соответствующие требованиям вашей сети.

Для проверки настройки IP адреса eth0 вы можете использовать команду ifconfig таким образом:

Для настройки шлюза по умолчанию вы можете использовать команду route следующим образом. Измените адрес шлюза по умолчанию на требуемый для вашей сети.

Для проверки настройки шлюза по умолчанию используйте команду route таким образом:

Если вам больше не требуется эта конфигурация и вы хотите отменить все IP настройки интерфейса, вы можете использовать команду ip с опцией flush как показано ниже:

Сброс IP настроек с использованием команды ip не очистит содержимое /etc/resolv.conf. Вам придется удалять или менять эти значения вручную.

Динамическое присвоение IP адреса (клиент DHCP)

Добавив настройку интерфейса как показано выше, вы можете вручную включить интерфейс командой ifup, которая активизирует процесс DHCP через dhclient.

Для отключения интерфейса вручную вы можете воспользоваться командой ifdown, которая запустит процесс освобождения DHCP и остановки интерфейса.

Статическое присвоение IP адреса

Для настройки вашей системы под использование статического присвоения IP адреса добавьте метод static в секцию inet для соответствующего интерфейса в файле /etc/network/interfaces. Пример ниже предполагает, что вы настраиваете ваш первый интерфейс Ethernet, обозначенный как eth0. Измените значения адреса, маски сети и шлюза для соответствия требованиям вашей сети.

Добавив настройку интерфейса как показано выше, вы можете вручную включить интерфейс командой ifup.

Для отключения интерфейса вручную вы можете воспользоваться командой ifdown.

Интерфейс Loopback (обратной петли)

Интерфейс loopback определяется системой как lo и по умолчанию задает адрес 127.0.0.1. Он может быть выведен командой ifconfig.

По умолчанию может присутствовать две строки в /etc/network/interfaces отвечающих за автоматическую настройку интерфейса loopback. Рекомендуется оставить эти настройки без изменений пока не возникнет специфической причины для их изменения. Пример этих двух строк приведен ниже.

Разрешение имен

Под разрешением имени по отношению к IP сетям подразумевается процесс определения IP адреса по имени хоста, упрощающий идентификацию ресурса в сети. Данная секция раскрывает как правильно настроить вашу систему для разрешения имен с помощью DNS и статических записей имен хостов.

Настройка клиента DNS

Если у вас несколько доменов, в которых вы собираетесь искать, ваша конфигурация может выглядеть так:

Если вы попытаетесь проверить хост с именем server1, ваша система автоматически запросит DNS по их полным доменным именам (FQDN) в следующем порядке:

Статические имена хостов

Далее приведен пример файла hosts, где ряд локальных серверов определены обычными именами хостов, алиасами и их эквивалентами полных имен (FQDN).

В примере выше обратите внимание, что каждый сервер имеет алиас в добавок к их правильным коротким и полным именам. server1 соотносится с именем vpn, server2 определен как mail, server3 как www и server4 как file.

Настройка переключения сервиса имен

Последовательность, в которой ваша система выбирает метод разрешения имен по IP адресам управляется настроечным файлом переключателя сервиса имен (NSS) /etc/nsswitch.conf. Как отмечено в предыдущей секции, обычно статические имена хостов, определенные в системном файле /etc/hosts, имеют приоритет перед разрешением имен через DNS . Далее пример строки, отвечающей за этот порядок перебора имен хостов в файле /etc/nsswitch.conf.

files сперва пытается разрешить статическое имя хоста в /etc/hosts.

mdns4_minimal пытается разрешить имя с использованием параллельного (multicast) DNS .

[NOTFOUND=return] означает, что любой ответ notfound, предшествующий процессу mdns4_minimal, должен считаться значимым (авторитетным) и что система не будет пытаться продолжать искать ответ.

dns представляет собой наследуемый последовательный (legacy unicast) DNS запрос.

mdns4 представляет параллельный (multicast) DNS запрос.

Для изменения последовательности вышеупомянутых методов разрешения имен вы можете просто заменить строку hosts: на значение по вашему выбору. Например, если вы предпочитаете использовать последовательный DNS до параллельного DNS , вы можете изменить строку в /etc/nsswitch.conf как показано ниже:

Строительство мостов :)

Соединение нескольких интерфейсов - наиболее продвинутая настройка, но очень полезная во множестве сценариев. Один вариант - установка взаимодействия между несколькими сетевыми интерфейсами и затем использование защитного экрана (firewall) для фильтрования трафика между двумя сегментами сети. Другой сценарий - использование связывания на системе с одним интерфейсом для разрешения виртуальным машинам иметь прямой доступ во внешнюю сеть. Следующий пример раскрывает последний сценарий.

Перед настойкой взаимодействия вам потребуется установить пакет bridge-utils. Для установки пакета введите в терминале:

Далее настройте взаимодействие, отредактировав /etc/network/interfaces:

Введите значения соответствующие вашим физическому интерфейсу и сети.

Теперь перезапустите сеть для разрешения взаимодействия интерфейсов:

Теперь новый мост между интерфейсами поднят и работает. Утилита brctl предоставит полезную информацию о статусе моста, определяет какие интерфейсы участвуют во взаимодействии и т.д. Смотрите man brctl для дополнительной информации.

Ссылки

Для дополнительной информации по сетевому связыванию смотрите страницу brctl man и страницу Net:Bridge от Linux Foundation.

Как настроить DHCP-клиент Ubuntu

Советы и хитрости

Протокол динамической конфигурации хоста, сокращенно DHCP, представляет собой протокол клиент-сервер, который позволяет DHCP-серверу назначать IP-адрес и другие связанные параметры конфигурации, такие как шлюз по умолчанию и маска подсети, DHCP-клиенту в сети.

Протокол DHCP необходим, поскольку он не позволяет сетевым или системным администраторам вручную настраивать IP-адреса для новых машин, добавленных в сеть или компьютерную систему, которые перемещаются из одной подсети в другую.

Посредством аренды DHCP-сервер выделяет IP-адреса DHCP-клиентам. Срок аренды зависит от того, как долго клиентская система требует подключения или конфигурации DHCP.

В этой статье мы поговорим о настройке DHCP-клиента в дистрибутиве Ubuntu Linux. В этой статье мы предположили, что DHCP-сервер уже настроен на другом вашем компьютере, или вы также можете установить его с этого URL-адреса.

Конфигурация DHCP-клиента в Ubuntu

Чтобы настроить DHCP-клиент в вашей системе Ubuntu, сначала проверьте имя сетевого интерфейса, выполнив следующую команду:

Чтобы настроить DHCP-клиент в вашей системе Ubuntu

После определения имени сетевого интерфейса необходимо внести некоторые изменения в файл сетевых интерфейсов для настройки DHCP-клиента. Итак, откройте файл / etc / network / interfaces в вашем любимом текстовом редакторе с помощью следующей команды:

$ sudo nano / etc / network / interfaces

Теперь используйте следующий синтаксис для настройки клиента DHCP:

auto < interface-name >

iface < interface-name > inet dhcp

Здесь имя сетевого интерфейса — enp1s0; мы изменили приведенные выше строки в следующий формат:

auto enp1s0

iface enp1s0 inet dhcp

Здесь имя сетевого интерфейса — enp1s0

Сохраните и закройте указанный выше файл конфигурации. Теперь перезапустите службы диспетчера сети, выполнив следующую команду:

$ sudo systemctl restart NetworkManager.service

$ sudo systemctl restart networking

Проверьте состояние работы службы NetworkManager, выполнив следующую команду:

$ sudo systemctl status NetworkManager.service

Проверьте состояние работы службы NetworkManager

Во время процесса загрузки эта система должна запрашивать сетевые параметры у DHCP-сервера.

Чтобы вручную выполнить процесс DHCP, можно использовать команду dhclient. Если DHCP-сервер не назначает IP-адрес DHCP-клиенту, используйте следующую команду, чтобы обновить или освободить IP-адрес. Немного подождать; DHCP-сервер автоматически назначит IP-адреса клиентской машине.

Используя команду ifconfig, можно просмотреть имя интерфейса.

Настроить DHCP через netplan

В большинстве дистрибутивов Ubuntu управление сетью или управление ею осуществляется с помощью программы netplan. Следовательно, в этой ситуации вам необходимо отредактировать файлы конфигурации netplan. Чтобы отредактировать соответствующую конфигурацию файла, перейдите в каталог ’/ etc / netplan’ и откройте этот файл.

$ sudo nano / etc / netplan / 01-netcfg.yaml

Добавьте в этот файл следующие строки:

Сохраните указанную выше конфигурацию, используя Ctrl + O в этом файле, и выйдите из этого окна, нажав Ctrl + x.

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

Настроить DHCP-клиент через среду рабочего стола Ubuntu

Вы также можете использовать другую виртуальную машину с Ubuntu 20.04 Desktop в качестве DHCP-клиента. В Ubuntu метод конфигурации по умолчанию установлен как DHCP. Если он не берет IP-директор от DHCP-сервера, измените настройку IPV4 в вашей сети. Нажмите, перейдите в «Настройки» и перейдите в настройки проводной или беспроводной сети. В вашей системе должно появиться следующее окно:

Вы также можете использовать другую виртуальную машину с

Установите всю конфигурацию IPV4, как показано на скриншоте выше.

Теперь отобразите сведения о сети, щелкнув вкладку «Подробности» следующим образом:

Теперь отобразите сведения о сети, щелкнув вкладку

Проверьте конфигурацию, выполнив следующую команду:

Вы увидите, что IP-адрес назначен сетевому интерфейсу.

Вы также можете использовать хост-компьютер в своей системе в качестве DHCP-клиента. Однако, чтобы получить IP-адрес, не перезагружайте хост-компьютер, потому что в этом случае Virtualbox будет отключен, поэтому в системе не будет запущен DHCP.

Важно отметить, что если вы используете мобильные устройства или хост-машины в качестве DHCP-клиента, скорее всего, они уже подключены к этой сети. Однако они будут запрашивать у DHCP-сервера тот же IP-адрес, который был выделен ранее. Однако, если IP-адрес не попадает в указанный вами диапазон, тогда маршрутизатору будет отправлен запрос.

Заключение

В этой статье мы видели, как настроить DHCP-клиент различными способами в дистрибутиве Ubuntu. Все команды мы реализовали в среде Ubuntu 20.04. Настройка DHCP-клиента очень проста. Таким образом, всего за несколько минут вы можете легко настроить DHCP-клиент в своей системе, выполнив описанные выше действия.

Как работает DHCP?

  • После загрузки подключенный к сети клиент (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER.
  • Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает пакетом DHCPOFFER.
  • Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете.
  • Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса.

В данном руководстве мы рассмотрим настройку DHCP-сервера в Ubuntu/Debian Linux, но большенство настроек будет работать и в других дистрибутивах. Для получения административных привилегий все команды будут выполняться через sudo.

Шаг 1: Установка DHCP-сервера

1. Для установки пакета DCHP-сервера, ранее известного как dhcp3-server, нужно выполнить следующую команду:

2. После завершения установки отредактируйте файл /etc/default/isc-dhcp-server для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции INTERFACES.

Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задайте следующее значение:

Для этого сетевого интерфейса нужно настроить статический IP-адрес.

Шаг 2: Настройка DHCP-сервера

  • параметры – указывают, как выполнять задание (например, на какое время выделять адрес), выполнять ли его вообще (например, выделять ли адреса неизвестным клиентам) или какие параметры сетевой конфигурации отправлять DHCP-клиенту.
  • декларации – определяют топологию сети, описывают клиентов и предоставляемые им адреса, или применяют группу параметров к группе деклараций.

4. Для определения настроек DHCP-сервера откроем и отредактируем файл конфигурации:

5. Теперь нужно указать подсеть, в нашем примере мы будем использовать DHCP в локальной сети 192.168.10.0/24.

Здесь мы использовали следующие параметры:

Шаг 3: Настройка статических IP-адресов для машин клиентов

6. Для выделения конкретным клиентам фиксированного (статического) IP-адреса нужно добавить в файл конфигурации секции следующего вида, где явно указаны MAC-адрес и статически выделяемый IP-адрес:

7. Запустим службу DHCP и установим ее автоматический запуск при загрузке:

8. Далее нужно создать правило для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67):

Шаг 4: Настройка машин клиентов

9. Теперь можно настроить клиентские компьютеры в сети для автоматического получения IP-адресов от DHCP-сервера.

Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса):

Укажите следующие опции:

Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему:

Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера.

Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

На данный момент есть три различных клиентских DHCP программы для Linux, dhcpcd , pump и dhclient . Этот mini-HOWTO рассматривает главным образом dhcpcd .

Получение клиентского демона ( dhcpcd )

В зависимости от вашего дистрибутива, возможно, вам придется загрузить клиентский DHCP демон. Если вы хотите скомпилировать его из исходных кодов, необходимый вам пакет называется dhcpcd , его текущая версия 1.3.18. Он поддерживается Sergei Viznyuk и, на сегодняшний день, поставляется в большинстве дистрибутивов в виде бинарного пакета.

Исходный код dhcpcd может быть загружен со следующих мест:

Затем следуйте ниже приведенным инструкциям. Они должны быть таковы.

Slackware

Вы можете загрузить последнюю версию DHCPcd с любого зеркала Metalab или отсюда:

Загрузите последнюю версию dhcpcd.tar.gz .

  • Распакуйте его

    tar -zxvf dhcpcd-1.3.18pl1.tar.gz
  • Войдите в каталог и выполните make dhcpcd

    cd dhcpcd-1.3.18pl1

Будет создан каталог /etc/dhcpc , где DHCPcd будет размещать DHCP информацию, а также будет скопирован в /usr/sbin файл dhcpcd .

Для инициализации системы во время загрузки с помощью DHCP наберите:

cd /etc/rc.d

mv rc.inet1 rc.inet1.OLD

Сохраните его и перезагрузите компьютер.

Когда закончите, переходите к следующему шагу.

RedHat 6.x и Mandrake 6.x

Настройка DHCPcd под RedHat 6.0+ достаточно проста. Все что от вас требуется — запустить панель управления, набрав control-panel .

  • Выбрать Network Configuration
  • Щелкнуть на Interfaces
  • Щелкнуть на Add
  • Выбрать Ethernet
  • В Edit Ethernet/Bus Interface выбрать Activate interface at boot time, а также выбрать DHCP как Interface configuration protocol

Заметьте, что в RedHat 6.x, вместо вышеупомянутого dhcpcd , Redhat по умолчанию включила DHCP клиент называемый pump . Установочный CD-ROM также содержит и dhcpcd RPM, так что если вы не удовлетворены pump , попробуйте вместо него dhcpcd . После установки dhcpcd (т.е. rpm -i dhcpcd-1.3.17pl2-1.i386.rpm ) вам следует сделать несколько изменений.

Дополнительные заметки от Alexander Stevenson :

Я не доволен DHCPcd. Что привело меня к работе с pump , который поставляется с Linux Mandrake 6.0 (и, я полагаю, он также включен в RedHat). Я использую команду:

pump -i eth0 -h hostname

Не имеет значение, какой был указан hostname , но без него сервер не отвечал бы.

Затем, для отражения изменений я меняю строку в моем скрипте /sbin/ifup ; версия по умолчанию не содержит ключ -h , и поэтому она у меня не работала.

По существу, если вы используете linuxconf , и после настройки адаптера на использование DHCP он все еще не работает, попробуйте добавить -h hostname в строку с pump в скрипте /sbin/ifup . Теперь мой скрипт выглядит так:

.
if [ -n "$PUMP" ]; then
echo -n "Determining IP information for $DEVICE. "
if /sbin/pump -i $DEVICE -h hostname; then
echo " done."
else
echo " failed."
exit 1
fi
else .

Другой, более элегантный путь добавления поля hostname предоставлен Aad van der Klaauw:

Сейчас дома я настраиваю шлюзовую систему, требуется установить MAC адрес и использовать -h hostname . Поэтому я решил не изменять скрипт, а использовать конфигурационный файл. В моем /etc/sysconfig/network-scripts/ifcfg-eth0 я добавил следующее:

DEVICE="eth0"
MACADDR="00:11:22:33:44:55"
DHCP_HOSTNAME="trigger_for_terayon"

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

Перезагрузите вашу машину или наберите в командной строке /sbin/ifup eth0 .

RedHat 5.x

Настройка DHCPcd под RedHat 5.0+ достаточно проста. Все что вам нужно — запустить панель управления, набрав control-panel :

  • Выбрать Network Configuration
  • Щелкнуть на Interfaces
  • Щелкнуть на Add
  • Выбрать Ethernet
  • В Edit Ethernet/Bus Interface выбрать Activate interface at boot time, а также выбрать DHCP как Interface configuration protocol

Когда закончите, переходите к следующему шагу.

RedHat 4.x и Caldera OpenLinux 1.1/1.2

DHCPcd включен в дистрибутив RedHat в виде RPM, и вы можете его найти на CD-ROM в каталоге RPMS или скачать его с:

Установите его с помощью rpm -i dhcpcd-0.6-2.i386.rpm .

Или же вы можете скомпилировать вашу собственную версию следуя шагам описанным в Slackware.

Следующая информация поступила ко мне от nothing .

Я удалил мой статический ip и имя из /etc/resolv.conf . Однако я оставил строку search и две моих nameserver строки (по некоторой причине мой dhcpcd никогда не создает /etc/dhcpc/resolv.conf , так что я использую статический файл /etc/resolv.conf ).

В /etc/sysconfig/network я удалил элементы HOSTNAME и GATEWAY . Я оставил другие элементы, такие как NETWORKING , DOMAINNAME , GATEWAYDEV .

В /etc/sysconfig/network-scripts/ifcfg-eth0 я удалил элементы IPADDR , NETMASK , NETWORK , и BROADCAST . Я оставил в исходном виде DEVICE и ONBOOT . Я изменил строку BOOTPROTO на BOOTPROTO=dhcp .

Сохраняем файл. Перезагружаем ваш компьютер.

Если вы закончили, переходите к следующему шагу.

Debian

Существует deb пакет DHCPcd (проверьте, чтобы он начинался с dhcpcd ).

Либо, следуйте инструкциям по установке Slackware.

Для распаковки deb пакета наберите dpkg -i /where/ever/your/debian/packages/are/dhcpcd*deb .

Кажется, что больше не требуется никаких настроек для DHCPcd, потому как:

Пакет dhcpcd устанавливает свой стартовый скрипт как обычно для debian пакетов в /etc/init.d/package_name , то есть /etc/init.d/dhcpcd , и создает ссылки на него из различных /etc/rc?.d/ каталогов.

--From: Heiko Schlittermann

Содержимое каталогов /etc/rc?.d/ в дальнейшем исполняется при загрузке.

Если вы не перегружались после установки, вы можете запустить демон вручную: /etc/init.d/dhcpcd start .

Когда вы закончили переходите к следующему шагу.

LinuxPPC и MkLinux

Следующая секция была написана R. Shapiro

С выпуска "1999" (R5) release, Linuxppc почти полностью совместим с Redhat 6, с одной оговоркой (смотрите ниже). В общем, инструкции точно такие же, как и для текущего выпуска RedHat 6.x и Mandrake 6.x.

Остается та проблема, что Redhat 6 по умолчанию использует pump клиент для dhcp , а pump не надежно работает на Linuxppc. Чтобы это обойти, вам следует установить последнюю версию dhcpcd от Sergei Viznyuk, и отредактировать /sbin/ifup для использования dhcpcd вместо pump .

Измените

if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
PUMP=true
fi

if [ -n "$PUMP" ]; then

на

if [ "$BOOTPROTO" = bootp ]; then
echo " done."
else
echo " failed."
exit 1
fi
elif [ "$BOOTPROTO" = dhcp ]; then
echo -n "Determining IP information for $DEVICE. "
if /sbin/dhcpcd -d $DEVICE ; then
if [ -f /etc/dhcpc/dhcpcd-$.exe ]; then
/etc/dhcpc/dhcpcd-$.exe
fi

и внесите соответствующие изменения для ifdown . Измените

if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
.
fi

на

if [ "$BOOTPROTO" = bootp ]; then
fi

if [ "$BOOTPROTO" = dhcp ]; then
if [ -f /var/run/dhcpcd-$.pid ]; then
kill `cat /var/run/dhcpcd-$.pid`
rm -f /var/run/dhcpcd-$.pid
fi
fi

Пытаемся все совместить

После перезагрузки вашей машины ваш сетевой интерфейс должен быть настроен. Наберите: ifconfig .

Вы должны получить нечто подобное:

lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:302 errors:0 dropped:0 overruns:0 frame:0
TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0

eth0 Link encap:Ethernet HWaddr 00:20:AF:EE:05:45
inet addr:24.128.53.102 Bcast:24.128.53.255 Mask:255.255.254.0
^^^^^^^^^^^^^^^^^^^^^^^
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24783 errors:1 dropped:1 overruns:0 frame:1
TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96
Interrupt:10 Base address:0x300

Еще одно заключение. Вам следует указать ваш сервер имен. Есть два способа это сделать, вы можете либо попросить вашего провайдера дать вам адреса ваших серверов имен и затем поместить их в /etc/resolv.conf , либо DHCPcd будет получать список с DHCP сервера и будет создавать файл resolv.conf в /etc/dhcpc .

Я решаю использовать DHCPcd resolv.conf и выполняю следующее:

Сохраните ваш старый /etc/resolv.conf :

mv /etc/resolv.conf /etc/resolv.conf.OLD

Если каталог /etc/dhcpc не существует — создайте его:

mkdir /etc/dhcpc

Создайте ссылку с /etc/dhcpc/resolv.conf на /etc/resolv.conf :

ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf

Если это не помогает, попробуйте это (решение предоставлено с небольшими поправками от Henrik Stoerner):

Этот последний шаг я выполнил только из-за того, что мой dhcpcd не создает /etc/dhcpc/resolv.conf . Я сделал следующие изменения в /etc/sysconfig/network-scripts/ifup (это очень грубый взлом, но так у меня все работает):

elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
echo -n "Using DHCP for $. "
/sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done $
echo "echo \$$ > /var/run/dhcp-wait-$.pid; exec sleep 30" | sh

if [ -f /var/run/dhcp-wait-$.pid ]; then
^^^^
echo "failed."
exit 1

Я изменил на:

elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
echo -n "Using DHCP for $. "
/sbin/dhcpcd
echo "echo \$$ > /var/run/dhcp-wait-$.pid; exec sleep 30" | sh

if [ ! -f /var/run/dhcp-wait-$.pid ]; then
^^^^^^
echo "failed."
exit 1

Обратите внимание на ! (восклицательный знак) в if [ ! -f /var/run/dhcp-wait-$.pid ];

Теперь откиньтесь на спинку и наслаждайтесь :-).

Различные заметки

Следующие шаги не необходимы, но могут быть полезны некоторым людям:

  1. Если сеть вам нужна только время от времени, вы можете запускать dhcpcd из командной строки (для этого вам нужно быть root ) командой: /usr/sbin/dhcpcd .
  2. Когда вам нужно отключить сеть наберите /usr/sbin/dhcpcd -k .

Поиск неисправностей

Если вы следовали вышеприведенным шагам и не можете получить доступ к вашей сети, этому есть еще несколько возможных объяснений:

Не правильно настроена Ваша сетевая карта

В процессе загрузки ваш Linux будет определять вашу сетевую карту и должен сказать что-то подобное:

eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov

Ваш DHCP сервер поддерживает RFC 1541/Мой DHCP сервер ‐ Windows NT

Попробуйте запустить dhcpcd , набрав dhcpcd -r .

Для проверки настроек вашего сетевого интерфейса используйте ifconfig (подождите несколько секунд для завершения процесса настройки, сначала она выдаст Inet.addr=0.0.0.0 )

Если это решит вашу проблему, добавьте ключ -r в загрузочный скрипт, т.е: вместо /sbin/dhcpcd вы получите /sbin/dhcpcd -r .

Например, под RedHat отредактируйте /etc/sysconfig/network-scripts/ifup и вставьте следующее:

IFNAME=$[ \
"/sbin/dhcpcd -r -c /etc/"- etc etc.

Моя сеть работает несколько минут, а затем прекращает отвечать

Некоторые люди сообщают, что gated (демон маршрутизации) искривляет маршрутизацию на Linux машинах, что приводит к описанной выше проблеме. Проверьте, запущен ли он у вас, запустив:

ps -auxww | grep gate

Если запущен, попробуйте удалить его с помощью RedHat RPM менеджера пакетов или удалить элемент в каталоге /etc/rc.d/ .

Вы должны проверить, что на вашей сетевой карте активирован 10BaseT порт (телефонный разъем). Лучше всего это узнать, проверив какой тип соединителя вашей сетевой карты настроен в процессе загрузки, т.е.

eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
^^^^^^^^^^^^
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov

Мне сообщали, что проблема такого рода встречается у пользователей ноутбуков из-за PCMCIA утилит (особенно ifport), которые хотят установить тип соединителя на 10Base2 (тонкий коаксиальный кабель). Вы должны проверить, что для вашего соединения вы используете 10BaseT. Если это не так, перенастройте карту и перезапустите компьютер.

Мой DHCP клиент посылает широковещательные запросы, но никто не отвечает (Предоставлено Peter Amstutz)

На некоторых системах, вам следует включить имя вашего компьютера как часть запроса. У dhcpcd , это делается с помощью dhcpcd -h foohost . Возможно, что требуемое имя компьютера — ваше имя пользователя в сети.

Я следовал всем шагам, но моя машина все еще не способна соединиться

Кабельные модемы обычно запоминают ethernet адрес вашей сетевой карты, так что если вы подключаете новый компьютер или переключаете сетевые карты, вы должны как-то научить ваш кабельный модем распознавать новый компьютер/карту. Обычно вы можете выключить и снова включить ваш модем при включенном компьютере или позвонить в службу технической поддержки и сказать им, что вы заменили сетевую карту в компьютере.

У вас есть правила firewall (правила ipfwadm), которые запрещают трафик по портам 67/68 , которые используются DHCP для распространения информации о настройках. Тщательно проверьте правила вашего firewall.

У меня есть служба MediaOne Express и я все еще не могу соединиться

Кажется, что MediaOne использует некоторые дополнения к DHCP, которых не должно быть. Вероятно, это не должно быть проблемой, но если ваш опыт говорит об обратном, проверьте это. Если вы (не)счастливый обладатель Windows NT, и если, входя в Просмотр Событий(Event Viewer) вы видите такого рода предостережение:

HCP получил неизвестную опцию 067 длиной 005. Необработанные данные опции даны ниже.
(DHCP received an unknown option 067 of length 005. The raw option data is given below.)

0000: 62 61 73 69 63 basic

В этом случае с загрузите бинарный файл, либо возьмите исходный код для замены.

Альтернативный DHCP клиент (ISC dhclient)

Если у вас не получилось успешно запустить dhcpcd на вашей Linux системе, попробуйте ISC dhclient . dhclient поставляется с DHCP дистрибутивом от ISC, который включает как DHCP клиента, так и DHCP сервер. Инструкции по получению и установке дистрибутива DHCP могут быть найдены здесь. Когда вы закончите, пожалуйста, вернитесь к этой секции для настройки клиента.

Следующая информация была предоставлена одним из авторов dhclient — Ted Lemon .

Читайте также: