Kein Netzwerk: eth0 konnte nicht aufgerufen werden

12

Der Netzwerkdienst kann beim Neustart nicht gestartet werden.

Restarting networking (via systemctl): networking.serviceJob for networking.service failed because the control process exited with error code.

Ich kann immer noch über eine Remote-Konsole auf den Server zugreifen, aber sonst nichts, da es ohne Netzwerk keinen Ausweg gibt.

systemctl status networking.service sagt:

● networking.service - Raise network interfaces
   Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor prese
t: enabled)
  Drop-In: /run/systemd/generator/networking.service.d
           └─50-insserv.conf-$network.conf
   Active: failed (Result: exit-code) since Mo 2016-04-18 06:53:11 UTC; 43s ago
     Docs: man:interfaces(5)
  Process: 3551 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=
1/FAILURE)
  Process: 3546 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [
 -n "$(ifquery --read-environment --list --exclude=lo)" ] && udevadm settle (cod
e=exited, status=0/SUCCESS)
 Main PID: 3551 (code=exited, status=1/FAILURE)

Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]: For info, please visit htt
ps://www.isc.org/software/dhcp/
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]: Usage: dhclient [-4|-6] [-
SNTP1dvrx] [-nw] [-p <port>] [-D LL|LLT]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]:                 [-s server
-addr] [-cf config-file] [-lf lease-file]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]:                 [-pf pid-f
ile] [--no-pid] [-e VAR=val]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]:                 [-sf scrip
t-file] [interface]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]: Failed to bring up eth0.
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: networking.service: Main p
rocess exited, code=exited, status=1/FAILURE
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: Failed to start Raise netw
ork interfaces.
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: networking.service: Unit e
ntered failed state.
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: networking.service: Failed
 with result 'exit-code'.

Meine / etc / network / interfaces sieht so aus:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Wo kann ich mit dem Debuggen beginnen?

Danke für jeden Hinweis! Grüße, K

# sudo ifup --verbose eth0
Configuring interface eth0=eth0 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/wireless-tools
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant

/sbin/dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0  
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Usage: dhclient <snip>
Failed to bring up eth0.
Katja Süss
quelle
1
Das System versucht, Ihre Netzwerkschnittstelle zu upaktivieren, indem es nacheinander die Skripts ausführt, die sich in befinden /etc/network/if-up.d. Eines davon enthält einen dhclientBefehl, der fehlschlägt. Also mach etwas wie grep -R dhclient /etc/network/if-up.d/*und schau was du bekommst.
Jos
Danke für diese Information. Es gibt keinen Befehl dhclient, weder in if-up.d noch darüber.
Katja Süss
Können Sie in einem Handbuch sudo ifup --verbose eth0nachlesen, wo etwas schief geht?
Jos
Ich habe die Ausgabe von # sudo ifup --verbose eth0 zu meiner Frage hinzugefügt.
Katja Süss
Durch das Vorhandensein der Zeilen "Usage: ..." sieht es so aus, als ob der Befehl dhclient fehlschlägt, weil ein Fehler in den Parametern vorliegt. Soweit ich das beurteilen kann, ist der Befehl jedoch korrekt. Außerdem habe ich die gleichen "Usage" -Zeilen in meinem /var/log/syslog. Sie können versuchen, den dhclientBefehl manuell auszuführen . Wenn keine Fehlermeldung folgt, liegt kein Problem mit vor dhclient.
Jos

Antworten:

7

Das ist mir gerade passiert. Der Grund war, dass es eine Paketabhängigkeitsinkonsistenz gab, die mein Upgrade von Trusty auf Xenial unterbrach, sodass einige Paketversionen inkonsistent waren. In meinem Fall wurde die Inkonsistenz durch squid3 und ca-certificates-java verursacht.

Ich stellte die Netzwerkverbindung wieder her, indem ich gerade lief dhclient eth0. Nachdem apt-get install -fich die Paketinkonsistenz durch Entfernen der fehlerhaften Pakete und Ausführen behoben hatte , führte ich apt-get dist-upgradeund aus apt-get install ubuntu-standard. Das hat mein Problem komplett gelöst.

Was mich zu dem Verdacht führte, dass die /sbin/ifupBinärdatei die veraltete dhclientBefehlszeile mit der nicht mehr unterstützten -IOption enthielt . Es muss sich um eine Inkonsistenz der Paketversion handeln.

Furstex
quelle
irgendwie blieb mein do-release-upgrade auch hängen, und das hat auch bei mir funktioniert, danke !.
Evert
6

Ich gehe davon aus, dass Sie gerade ein neueres Betriebssystem wie Ubuntu 16.04 installiert / aufgerüstet haben und aufgrund der Abweichung von den herkömmlichen Benennungsschemata für die Benutzeroberfläche wie eth0oder eth1das System Ihre Benutzeroberfläche nicht starten kann.

Versuchen Sie , Ihre Bearbeitung /etc/network/interfaceszu verwenden entweder ens32oder ens192statt eth0wie

# The loopback network interface
auto lo
iface lo inet loopback

# The Ethernet interface
auto ens192
iface ens192 inet dhcp

Das sollte einen Neustart der Netzwerkschnittstelle ermöglichen. Ich hoffe, es hilft. Einzelheiten zu den vorhersagenden Änderungen an der Netzwerkschnittstelle

https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

P. Ntende
quelle
Das Update
theINtoy
Was für ein Lebensretter. Dies ist genau der Grund, warum mein virtueller Linux-Host nicht mehr in das Netzwerk zurückkehren konnte, nachdem er ein erzwungenes Kernel-Update für den Meltdown durchgeführt hatte. meins war ens3 (tun ip link show und finden, welche ens für Sie gilt)
Patrick F
2

Ich bin mir nicht sicher, ob dies immer noch nützlich ist: Es scheint, dass der Dhclient nicht mehr die Option "-I" oder "-df" hat, was laut Manpage DDNS bewirkt:

-Ich verwende das Standard-DDNS-Schema aus RFCs 4701 und 4702.

Sobald ich diese Option von der Kommandozeile entferne, kann dhclient eth0 aufrufen.

[EDIT] : Nun, wenn ich herausfinden könnte, wo diese "-I" Option ist ...

Wei Wang
quelle
1
Ich versuche herauszufinden, wo der Befehl "dhclient" mit diesen Optionen aufgerufen wird. Ich habe das Netzwerk vorübergehend eingerichtet, indem ich den Befehl dhclient manuell ohne diese beiden Optionen ausgeführt habe. - Ich scheine nicht genug Reputation zu haben, um irgendwo anders zu kommentieren, also füge ich hier meine eigene Antwort hinzu.
Wei Wang
1
TLin (unten) ist richtig. Das Paket isc-dhcp-client ist auf einer älteren Version hängengeblieben. Guter Fang! Ich musste nur einen "apt-get install isc-dhcp-client" ausführen, um 4.3.3 zu installieren, und das System ist danach zufrieden.
Wei Wang
Wei Wang: Vielen Dank, dass Sie 'isc-dhcp-client' neu installiert haben, wie Sie vorgeschlagen haben! Ich habe es geschafft, den Host (VM-Gast!) Mitten in einem Do-Release-Upgrade zu töten, was nicht gerade klug war. Jetzt kann ich das Problem per ssh beheben und mich wieder vernetzen! Vielen Dank.
Stolsvik
1

Ich hatte ein ähnliches Problem wie OP und Wei Wang, wo ifupversucht wurde, dhclient mit der -IOption auszuführen, aber mein dhclient war eine ältere Version, die es nicht unterstützte. Ich vermute, dass dies auf meine frühere hackige Art zurückzuführen war, das Xenial (16.04) Chromium herunterzuladen / zu installieren, während mein System auf Trusty (14.04) gehalten wurde. Es muss auch einige andere Teile meines Systems aktualisiert haben.

Kurz gesagt, mein Fix bestand darin, die relevanten Pakete für dhclient in Upstream Xenial manuell herunterzuladen und zu installieren. Es sind drei Pakete erforderlich, und die Installation muss in der folgenden Reihenfolge erfolgen:

  1. libisc-export160 ( https://ubuntu.pkgs.org/16.04/ubuntu-main-amd64/libisc-export160_9.10.3.dfsg.P4-8_amd64.deb.html )
  2. libdns-export162 ( https://ubuntu.pkgs.org/16.04/ubuntu-main-amd64/libdns-export162_9.10.3.dfsg.P4-8_amd64.deb.html )
  3. isc-dhcp-client_4.3.3 ( https://ubuntu.pkgs.org/16.04/ubuntu-main-amd64/isc-dhcp-client_4.3.3-5ubuntu12_amd64.deb.html )

Danach dhclient --versionzeigte ich , dass ich 4.3.3 hatte, das die -IOption unterstützt , und ich konnte ifupwieder verwenden.

TLin
quelle
0

Versuche dies:-

sudo ifdown --exclude=lo -a && sudo ifup --exclude=lo -a

Also ersetzen networking restartmitifdown... && ifup....

Übrigens: ifconfigIst auch schon lange veraltet - Verwendung ipaus der Packungiproute2

Sie könnten es auch versuchen

ifconfig eth0 down && ifconfig eth0 up

(oder wie auch immer Ihre Netzwerkschnittstelle heißt), um das Netzwerk neu zu starten.

Afaque
quelle
0

@jos erwähnt in einem Kommentar zum ursprünglichen Beitrag:

Durch das Vorhandensein der Zeilen "Usage: ..." sieht es so aus, als ob der Befehl dhclient fehlschlägt, weil ein Fehler in den Parametern vorliegt ...

Ich hatte genau dieses Problem und die ausführliche Protokollierung war der Hinweis.

ifup --verbose eth0

Suchen Sie nach einer Ausgabe, in der die DHCP-Parameter erläutert werden.

Ich nahm dann die Ausgabe von:

/sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid -if /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0

um einfach:

/sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid eth0 und dann habe ich eine adresse bekommen.

Ich glaube, ein Software-Update hat dazu geführt, dass dhclient nicht mehr synchron ist, was auf meinem Debian 7.11-System passierte.

Eugene van der Merwe
quelle