Обходной путь Debian 838871: конфигурация сети DHCP без блокировки загрузки процесс

Вы можете использовать Vim в режиме Ex:

ex -sc '%!git stripspace' -cx project/code.m
  1. % выберите все строки

  2. ! запустить команду

  3. x сохранить и закрыть

3
23.05.2019, 16:16
2 ответа

До network-managerхорошо -известным способом "автоматически ifupсетевого интерфейса при подключении кабеля" был ifplugd. (Обратите внимание на автора :-P ). ifplugdвсе еще доступен в Debian. У меня нет никакого недавнего опыта с этим.

Во-первых, вы должны удалить строку auto eth0или allow hotplug eth0из /etc/network/interfaces. Вам все равно понадобится ваша строка iface eth0 inet dhcp. (Эта строка зависит от имени вашего сетевого интерфейса, а также от того, хотите ли вы добавить поддержку ipv6 и т. д. ).

Чтобы настроить ifplugdдля вызова интерфейса, отредактируйте /etc/default/ifplugdтак, чтобы INTERFACES=включало имя вашего сетевого интерфейса. В качестве альтернативы предлагается использовать значение auto. Я не знаю, насколько хорошо autoработает на любой из последних систем :-).

https://manpages.debian.org/buster/ifplugd/ifplugd.conf.5.en.html


Эта функция никогда не предоставляласьallow-hotplug:

Note that the check for the link state has not always been there, and in any case was only done at boot time. It never supported the case where there was no cable connected at boot, and where you plugged in the cable at a later time. -- Message #20

Источники, противоречащие этому, просто неверны. Если вам нужна эта функция, вам нужно запустить демон, ожидающий событий «netlink». [ *] Пакет Debian ifupdownне включает никакого демона. allow-hotplugполагается на демона udev, который не считывает необходимые события netlink.

Демон udev читает только события udev "hotplug" ("uevent" ). Когда Ethernet-устройство обнаруживает изменение состояния канала, не происходит никакого события. Вы можете проверить это, используя udevadm monitor.

Разработчики ядра Linux приняли преднамеренное решение не предоставлять для этого «uevent». См.:Re :Q :netdev :генерировать kobject uevent при сетевых событиях .


[ *] Pedant :технически ifplugdработает, опрашивая состояние канала через регулярные промежутки времени. Таким образом, он не обязательно зависит от событий «netlink». На это различие указывает netplug, который действительно использует события "netlink". netplugне имеет всех тех же функций, что и ifplugd.

6
27.01.2020, 21:20

В Debian также есть пакет для ConnMan, на который не влияет упомянутая вами проблема с NetworkManager. Тем не менее, вам может быть полезно проверитьобщие проблемы раздел «Советы и рекомендации» на странице Arch Wiki.

В системах, отличных от вашей, где доступно policykit-1, вышестоящий ConnMan может использовать его для выборочного предоставления доступа непривилегированным пользователям. Однако пакет Debian ConnMan даже не связан динамически с библиотекой policykit. Поэтому я не уверен, как контролируется доступ непривилегированных пользователей.

Если вы действительно хотите использовать NetworkManager, мне кажется, что пакет Debian должен работать без необходимости установки демона policykit-1и, следовательно, libpam -systemd и т.д.. Вам просто нужно будет управлять своими интерфейсами с помощью sudo nmcli. Другие пакеты, например. udisksне зависят от policykit-1, они только рекомендуют его. Это может быть не очень распространенным желанием, но если кому-то еще это нужно, они могут отправить Debian сообщение об ошибке «список желаний».

0
27.01.2020, 21:20

Теги

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