Як пропустити DHCP, якщо до Debian не підключено кабель до Ethernet


12

Мій бананський Linux витрачає час на вхід, намагаючись отримати DHCP в оренду для інтерфейсу eth0, який не підключений. Що ж, до нього підключений подовжувальний кабель, але нічого не буває на іншому кінці.

я маю

auto eth0
iface eth0 inet dhcp 

встановити в моєму, /etc/network/interfacesоскільки я хочу, щоб він забрав Ethernet у випадку, якщо він підключений, але я, безумовно, не хочу сповільнювати запуск системи, якщо кабель не підключений до Ethernet. Я припускав, що система знатиме це автоматично і не намагатиметься отримати оренду DHCP для інтерфейсу.

Ось що я бачу під час завантаження (див. Три останні рядки):

введіть тут опис зображення

Якщо зрозуміє, що оренда не надходить, він продовжує завантаження.

Чи є спосіб, щоб я міг сказати це не DHCP, якщо немає підключеного кабелю?

Відповіді:


16

Якщо ви вкажете

allow-hotplug eth0

замість

auto eth0

в /etc/network/interfaces, тоді з'єднання буде ініційовано лише udevтоді, коли щось запускає його, а не при кожному завантаженні.

Це може бути достатньо для вирішення вашої справи, але не обов'язково; сторінка керівництва згадує , щоinterfaces

(Інтерфейси з позначкою "enable-hotplug" відображаються, коли udev їх виявляє. Це може бути під час завантаження, якщо інтерфейс вже присутній, або в більш пізній час, наприклад, під час підключення мережевої карти USB. Зверніть увагу, що це робить не має нічого спільного з виявленням підключеного мережевого кабелю.)

Ви , можливо , буде потрібно використовувати /etc/network/if-up.d/00check-network-cableз в ifupdown-extraпакет , щоб пропустити інтерфейс , якщо кабель не підключений.


Що робити, якщо кабель вже підключений перед завантаженням? Чи udevподія спровокує з'єднання під час завантаження у такому випадку? Іншими словами, чи udevперевіряє, які пристрої вже підключені до портів машини?
Джозеф Р.

0

Завжди існує більше ніж одне рішення проблеми.

Якщо ви знаходитесь з цією машиною завжди в одному місці, як удома, тоді найпростішим способом було б позбутися пакету dhcp-client та встановити статичну IP-адресу, маску, шлюз. Припустимо, що вам це не потрібно, ви б зробили щось подібне

apt-get remove isc-dhcp-client

Це вам спочатку скаже, чи є залежності. Після того, як ви видалили пакет, вам більше не доведеться чекати під час завантаження.

Це приклад того, що ви встановили б у своєму /etc/network/interfaces

iface eth0 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    gateway 192.168.0.254

Джерело: https://wiki.debian.org/DHCP_Client


Як було сказано у запитанні, я хочу використовувати DHCP, якщо підключений кабель Ethernet. Тож видалення клієнта DHCP мені не допоможе.
Павлов Максим Вікторович

0

Подивіться на ifplugd:

ifplugd - демон Linux, який автоматично налаштує ваш мережевий пристрій під час підключення кабелю та автоматично відключить його, якщо кабель підтягнуто. Це корисно на ноутбуках із вбудованими мережевими адаптерами, оскільки він налаштує інтерфейс лише тоді, коли кабель справді підключений.

ifplugd ifplugd інтерфейсує з утилітами конфігурації рідної мережі вашого дистрибутива.

Деякі функції:

  • Використовується нативна програма ifup / ifdown вашого дистрибутива.
  • Коли кабель від'єднаний, підключений до мережі, звуковий сигнал вдався чи не вдався.
  • Підтримує Linux SIOCETHTOOL (новіший, він же, API ettool), SIOCGMIIREG (старіший, aka mii-diag / mii-tool API) та SIOCDEVPRIVATE (найдавніший, aka mii-tool API) ioctl () s для отримання статусу посилання. У випуску 0.24 представлена ​​підтримка виявлення посилань із прапором інтерфейсу IFF_RUNNING.
  • Підтримка Syslog
  • Невелика програма - двійковий файл становить всього 25 КБ (плюс 16 Кб для лібдемона).
  • Підтримка декількох інтерфейсів Ethernet
  • Можна налаштувати на ігнорування коротких періодів "відключення" (опція -d) або коротких "підключених" періодів (опція -у)
  • Підтримка бездротових мереж. Щоразу, коли виявляється асоціація з AP, мережа налаштована. Погляньте на waproamd, якщо вам потрібна установка для налаштування ключів WEP, перш ніж асоціації AP будуть успішними.
  • Режим сумісності для мережевих пристроїв, які не підтримують виявлення кабелю (опція -F)

Пакет Debian Пошук пакетів Сторінка: ifplugd .
Офіційний сайт ifplugd

А apt-get update && apt-get-install ifpludповинен зробити трюк. Зі сторони, автор пакету підтримує цей пакет.


2
Я б кваліфікував це як "... використовується для підтримки цього пакету", оскільки останній реліз був десять років тому ;-). Сьогодні Lennart, напевно, порекомендує systemd-networkd... ifplugdПісля встановлення вам також потрібно налаштувати свій пристрій (вказати allow-ifplugdв /etc/network/interfaces).
Стівен Кітт

@StephenKitt ви використовували allow-ifplugdчи бачили код? Під час пошуку я виявив лише bugs.debian.org/cgi-bin/bugreport.cgi?bug=468896 , який говорить про те, що allow-ifplugdфункцію не прийнято.
sourcejedi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.