Jak pominąć DHCP, jeśli w Debianie nie ma kabla podłączonego do Ethernetu


12

Mój banański Linux marnuje czas przy logowaniu, próbując uzyskać dzierżawę DHCP dla interfejsu eth0, który nie jest podłączony. Cóż, kabel przedłużacza jest do niego podłączony, ale nic nie ma na drugim końcu.

mam

auto eth0
iface eth0 inet dhcp 

ustawiony w moim, /etc/network/interfacesponieważ chcę, aby podnosił Ethernet w przypadku, gdy jest podłączony, ale na pewno nie chcę spowalniać uruchamiania systemu, jeśli kabel nie jest podłączony do sieci Ethernet. Zakładałem, że system rozpozna to automatycznie i nie będzie próbował uzyskać dzierżawy DHCP dla interfejsu.

Oto, co widzę w czasie ładowania (patrz trzy ostatnie wiersze):

wprowadź opis zdjęcia tutaj

Po zrozumieniu, że dzierżawa nie nadchodzi, następuje rozruch.

Czy istnieje sposób, aby powiedzieć mu, aby nie korzystał z DHCP, jeśli nie ma podłączonego kabla?

Odpowiedzi:


16

Jeśli podasz

allow-hotplug eth0

zamiast

auto eth0

w /etc/network/interfaces, wtedy połączenie zostanie zainicjowane tylko udevwtedy, gdy coś je wyzwoli, a nie przy każdym rozruchu.

To może wystarczyć do załatwienia sprawy, ale niekoniecznie; podręcznika wspomina, żeinterfaces

(Interfejsy oznaczone jako „hot-plugpl” są wywoływane, gdy udev je wykryje. Może to być albo podczas rozruchu, jeśli interfejs jest już obecny, albo w późniejszym czasie, na przykład po podłączeniu karty sieciowej USB. Należy pamiętać, że tak nie ma nic wspólnego z wykrywaniem podłączonego kabla sieciowego.)

Może trzeba użyć /etc/network/if-up.d/00check-network-cablez tym ifupdown-extrapakiecie , aby przejść do interfejsu, jeśli nie jest podłączony kabel.


Co jeśli kabel jest już podłączony przed uruchomieniem? Czy w takim udevprzypadku zdarzenie wyzwoli połączenie w czasie uruchamiania? Innymi słowy, czy udevsprawdza, które urządzenia są już podłączone do portów urządzenia?
Joseph R.

0

Zawsze istnieje więcej niż jedno rozwiązanie problemu.

Jeśli korzystasz z tego komputera zawsze w jednym miejscu, np. W domu, najłatwiejszym sposobem jest pozbycie się pakietu klienta dhcp i ustawienie statycznego adresu IP, maski, bramy. Załóżmy, że nie potrzebujesz tego, zrobiłbyś coś takiego

apt-get remove isc-dhcp-client

To powie ci najpierw, czy są jakieś zależności. Po odinstalowaniu pakietu nie będziesz już musiał czekać na uruchomienie.

To jest przykład tego, co chciałbyś ustawić w swoim /etc/network/interfaces

iface eth0 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    gateway 192.168.0.254

Źródło: https://wiki.debian.org/DHCP_Client


Jak wspomniano w pytaniu, chcę używać DHCP, jeśli kabel Ethernet jest podłączony. Dlatego usunięcie klienta DHCP mi nie pomoże.
Maxim V. Pavlov,

0

Spójrz na ifplugd:

ifplugd to demon systemu Linux, który automatycznie skonfiguruje urządzenie ethernetowe po podłączeniu kabla i automatycznie zdekonfiguruje je po wyciągnięciu kabla. Jest to przydatne na laptopach z wbudowanymi kartami sieciowymi, ponieważ konfiguruje interfejs tylko wtedy, gdy kabel jest naprawdę podłączony.

ifplugd ifplugd współpracuje z natywnymi narzędziami do konfiguracji sieci twojej dystrybucji.

Niektóre funkcje:

  • Używa natywnych programów ifup / ifdown Twojej dystrybucji.
  • Może emitować sygnał dźwiękowy, gdy kabel jest odłączony, podłączony, konfiguracja interfejsu zakończyła się powodzeniem lub niepowodzeniem.
  • Obsługuje Linux SIOCETHTOOL (nowszy, znany również jako API ettool), SIOCGMIIREG (starszy, znany również jako API mii-diag / mii-tool) i SIOCDEVPRIVATE (najstarszy, znany również jako API mii-tool) ioctl () w celu uzyskania statusu łącza. Wersja 0.24 wprowadza obsługę wykrywania linków z flagą interfejsu IFF_RUNNING.
  • Obsługa Syslog
  • Mały program - plik binarny ma tylko 25 KB (plus 16 KB dla libdaemon).
  • Obsługa wielu interfejsów Ethernet
  • Może być skonfigurowany tak, aby ignorował krótkie okresy „odłączone” (opcja -d) lub krótkie okresy „odłączone” (opcja -u)
  • Obsługa sieci bezprzewodowej. Po wykryciu powiązania z punktem dostępu sieć jest konfigurowana. Spójrz na waproamd, jeśli potrzebujesz narzędzia do konfiguracji kluczy WEP, zanim skojarzenia AP powiodą się.
  • Tryb zgodności dla urządzeń sieciowych, które nie obsługują wykrywania kabli (opcja -F)

Pakiet Strona wyszukiwania pakietów Debiana: ifplugd .
Oficjalna strona ifplugd

apt-get update && apt-get-install ifpludPowinno załatwić sprawę. Na marginesie, twórca systemd utrzymuje ten pakiet.


2
Zakwalifikowałbym to jako „... używane do utrzymania tego pakietu” od czasu ostatniego wydania dziesięć lat temu ;-). W dzisiejszych czasach Lennart prawdopodobnie poleciłby systemd-networkd... ifplugdPo instalacji należy również skonfigurować urządzenie (podać allow-ifplugdw /etc/network/interfaces).
Stephen Kitt,

@StephenKitt używałeś allow-ifplugdlub widziałeś kod? Podczas wyszukiwania znalazłem tylko bugs.debian.org/cgi-bin/bugreport.cgi?bug=468896 , co oznacza, że allow-ifplugdfunkcja nie została zaakceptowana.
sourcejedi
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.