dhcpcd vs /etc /network /interfaces

У меня есть эта конфигурация в /etc /network /interfaces :

auto lo
iface lo inet loopback

allow-hotplug wlan0
Руководство пользователя iface wlan0 inet
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
руководство пользователя iface wlan1
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan0
#iface wlan0 inet dhcp
        iface wlan0 inet static
        адрес 192.168.0.110
        netmask 255.255.255.0
        сеть 192.168.0.1
        шлюз 192.168.0.1
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp


iface eth0 inet static
    адрес 192.168.0.115
    netmask 255.255.255.0
    сеть 192.168.0.1
    шлюз 192.168.0.1

Работает беспроводной статический IP-адрес, но eth0 этого не сделал.

Итак, я попытался выполнить конфигурацию в /etc/dhcpcd.conf :

interface eth0
статический ip_address = 192.168.0.115 /24
статические маршрутизаторы = 192.168.0.1
static domain_name_servers = 192.168.0.1

И это сработало. Я смущен и задаю несколько вопросов:

  1. Когда использовать какой файл?

  2. Почему Wi-Fi работал с /etc /network /interfaces , но eth0 этого не сделал?

  3. Имеет ли dhcpcd приоритет над /etc /network /interface ?

  4. Как проверить, какая услуга имеет приоритет или когда-нибудь? И который служба использует /etc /network /interface ?

48 голосов | спросил CuriousGuy 20 SunEurope/Moscow2015-12-20T17:01:39+03:00Europe/Moscow12bEurope/MoscowSun, 20 Dec 2015 17:01:39 +0300 2015, 17:01:39

6 ответов


52

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

  
  1. Когда использовать файл?
  2.   

Я сделаю предположение, что вы страдаете от общей степени замешательства, которое происходит на данный момент (в более широком сообществе малины Pi) с введением Debian ' Джесси вместо Debian 'Wheezy'. Это изменение сделало большое количество учебников в худшем случае устаревшим и, в лучшем случае, запутанным.

Ответ на вопрос: при использовании Wheezy было нормально вносить изменения в файл /etc /network /interfaces для настройки сетевых интерфейсов (рисунок). При использовании Jessie необходимо будет внести изменения в '/etc/dhcpcd.conf'. Однако, если вы вносите изменения в беспроводное соединение (wlan0), вам также необходимо внести изменения в /etc/wpa_supplicant/wpa_supplicant.conf, где вы добавляете сеть ssid и пароль.

  
  1. Почему Wi-Fi работал с /etc /network /interfaces, но eth0 не делал?
  2.   

Я не уверен, как Wi-Fi соединение могло бы работать, так как есть некоторая информация, отсутствующая в ваших файлах (ssid по крайней мере). Как отметил дьянос, приоритет в деталях этой связи, появившийся после деталей wlan0, вероятно, заставил их действовать (так как они были замечены последним процессом, просматривающим файл).

  
  1. Есть ли у dhcpcd какой-то приоритет над /etc /network /interface?
  2.   

Нет, они разные и предназначены для разных целей под Джесси. В целях использования Jessie довольно просто вы можете в значительной степени игнорировать файл interfaces и работать с dhcpcd.conf и wpa_supplicant.conf .

  
  1. Как проверить, какая услуга имеет приоритет или когда-нибудь? И какая служба использует /etc /network /interface?
  2.   

Снова я собираюсь сделать предположение, что вопрос больше связан с , какой файл я использую, и если я должен использовать тот, который имеет приоритет? '. Ответ заключается в том, что с изменением от Визея до Джесси (и в более широком смысле с принятием systemd ) конфигурация` dhcpcd.conf 'и' wpa_supplicant.conf 'будет нормой, а файл' interfaces 'будет оставлен к его собственным устройствам.

Что это значит для вас?

Хорошо (опять же), предполагая, что вы пытаетесь настроить проводные (eth0) и беспроводные (wlan0) соединения со статическими IP-адресами, вам нужен ваш interfaces файл по умолчанию, поскольку он был первоначально установлен;

# Обратите внимание, что этот файл написан для использования с dhcpcd
# Для статического IP-адреса обратитесь к /etc/dhcpcd.conf и 'man dhcpcd.conf'

# Включить файлы из /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

руководство пользователя iface eth0 inet

allow-hotplug wlan0
Руководство пользователя iface wlan0 inet
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
руководство пользователя iface wlan1
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Вы хотите, чтобы ваш файл dhcpcd.conf содержал сведения о соединении в конце файла для обоих интерфейсов, а дополнительные записи, вероятно, выглядели бы примерно так:

# Пользовательский статический IP-адрес для eth0.
интерфейс eth0
статический ip_address = 192.168.0.115 /24
статические маршрутизаторы = 192.168.0.1
static domain_name_servers = 192.168.0.1

# Пользовательский статический IP-адрес для wlan0.
интерфейс wlan0
статический ip_address = 192.168.0.115 /24
статические маршрутизаторы = 192.168.0.1
static domain_name_servers = 192.168.0.1

Наконец, вы хотели бы отредактировать wpa_supplicant .conf , чтобы он включал ssid для сети Wi-Fi и пароль. Вероятно, это выглядит примерно так:

ctrl_interface = DIR = /var /run /wpa_supplicant GROUP = netdev
update_config = 1

Сеть = {
    = SSID "домовая сеть"
    PSK = "h0mepassw0rd"
}

Я надеюсь, что это скроет. Существует реальная возможность того, что мои предположения неверны, но поскольку я недавно прошел аналогичную кривую обучения, я надеюсь, что данные будут полезны.

Я на самом деле написал это, и вы можете получить информацию в бесплатной электронной книге достаточно малины Pi от Leanpub.

ответил d3noob 16 Jam1000000amSat, 16 Jan 2016 08:37:56 +030016 2016, 08:37:56
5

Приоритет относится к вашей конфигурации init или systemd. Что касается dhcp: если у вас есть статический или настраиваемый вручную интерфейс, и dhcp начинает запрашивать адрес после этого, он переопределит то, что у вас уже есть. В Debian запускается dhcp для интерфейсов, для которых вы указываете dhcp, а не только волшебным образом. Если у вас неожиданное поведение, у вас может быть другая система, работающая в фоновом режиме, например NetworkManager.

За точку:

  1. вообще не использовать dhcpcd.conf, оставьте это.
  2. У вас нет строки hotplug для eth0.
  3. Если dhcpcd запускается после работы в сети, и вы настроили его на использование интерфейса, он будет.
  4. Проверьте порядок запуска этих служб.
ответил John Keates 20 SunEurope/Moscow2015-12-20T20:08:43+03:00Europe/Moscow12bEurope/MoscowSun, 20 Dec 2015 20:08:43 +0300 2015, 20:08:43
4
  

Работает беспроводной статический IP-адрес, но eth0 этого не делает.

Интерфейс eth0, вероятно, не был загружен при загрузке системы, потому что он не указан в строке auto. Из интерфейсов man:

  

Строки, начинающиеся со слова «auto», используются для идентификации физических интерфейсов, которые будут отображаться, если if выполняется с параметром -a. (Эта опция используется сценариями загрузки системы.) Имена физических интерфейсов должны следовать за словом «авто» в той же строке. Могут быть несколько «авто» строф. ifup приводит именованные интерфейсы в указанном порядке.

Измените эту строку:

auto lo

Для этого:

auto lo eth0

И тогда он должен работать.

Другие ответы затронули ваши другие вопросы. Надеюсь, это поможет.

ответил janos 21 MonEurope/Moscow2015-12-21T03:07:47+03:00Europe/Moscow12bEurope/MoscowMon, 21 Dec 2015 03:07:47 +0300 2015, 03:07:47
2

См. Как настроить сеть /WiFi /статический IP для получения подробной информации о том, как настроить сеть.

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

Если вы действительно хотите использовать /etc /network /interfaces (кроме его по умолчанию), вам необходимо отключить dhcpcd.

Объяснение dhcpcd слишком сложно для этого форума, но ссылка https://wiki.archlinux.org/index.php/dhcpcd обеспечивает хорошее резюме.

ответил Milliways 21 MonEurope/Moscow2015-12-21T01:25:08+03:00Europe/Moscow12bEurope/MoscowMon, 21 Dec 2015 01:25:08 +0300 2015, 01:25:08
1

Сначала верните файл /etc /network /interfaces в его исходную версию ...

интерфейсы (5) файл, используемый ifup (8) и ifdown (8)

Обратите внимание, что этот файл записывается для использования с dhcpcd

Для статического IP-адреса обратитесь к /etc/dhcpcd.conf и man dhcpcd.conf

Включить файлы из /etc/network/interfaces.d:

source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

руководство пользователя iface eth0 inet

allow-hotplug wlan0
Руководство пользователя iface wlan0 inet
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
руководство пользователя iface wlan1
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Затем сохраните свои изменения в файле /etc/dhcpcd.conf просто и просто для беспроводной связи ...

(внизу файла ...)

nohook lookup-hostname

интерфейс wlan0
    статический ip_address = 192.168.0.53 /24
    статические маршрутизаторы = 192.168.0.1
    static domain_name_servers = 8.8.8.8

/etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface = DIR = /var /run /wpa_supplicant GROUP = netdev
update_config = 1
страна =

Сеть = {
    ssid = "SSID вашего маршрутизатора"
    PSK = "daPassword"
    scan_ssid = 1
    key_mgmt = WPA-PSK
}
ответил Greg Oij 29 22016vEurope/Moscow11bEurope/MoscowTue, 29 Nov 2016 07:34:46 +0300 2016, 07:34:46
0

Помните, что последняя версия Raspbian Jessie (12/30/2016) содержит недостатки во второй строке файла интерфейсов. Во второй строке отсутствует символ # для обозначения строки в качестве комментария. Эта проблема заставляет файл интерфейсов быть нечитаемым системой. Я потратил много часов, пытаясь заставить мой Wi-Fi работать до того, как я нашел эту ошибку.

Чтобы исправить это, просто добавьте символ # в начало строки.

ответил EVictory 16 Jam1000000amMon, 16 Jan 2017 08:53:43 +030017 2017, 08:53:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132