Sin redes: no se pudo mostrar eth0

13

El servicio de red no se inicia / no se inicia al reiniciar.

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

Todavía puedo acceder al servidor a través de la consola remota, pero nada más, ya que sin red, no hay salida ni entrada.

systemctl status networking.service dice:

● 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'.

Mi / etc / network / interfaces se ve así:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

¿Dónde puedo comenzar a depurar?

Gracias por cualquier pista! Saludos, 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
fuente
1
El sistema intenta traer su interfaz de red upejecutando, uno por uno, los scripts que se encuentran en /etc/network/if-up.d. Uno de estos contiene un dhclientcomando que falla. Así que haz algo como grep -R dhclient /etc/network/if-up.d/*y mira lo que obtienes.
Jos
Gracias por esta información. No hay un comando dhclient, ni en if-up.d ni arriba.
Katja Süss
¿Puedes hacer un manual sudo ifup --verbose eth0para ver dónde van las cosas mal?
Jos
Agregué el resultado de # sudo ifup --verbose eth0 a mi pregunta.
Katja Süss
La presencia de las líneas "Uso: ..." hace que parezca que el comando dhclient falla porque hay un error en los parámetros. Sin embargo, por lo que puedo decir, el comando es correcto. Además, tengo las mismas líneas de "Uso" en mi /var/log/syslog. Podría intentar ejecutar el dhclientcomando manualmente por sí solo. Si no aparece un mensaje de error, no hay problema con dhclient.
Jos

Respuestas:

7

Esto me acaba de pasar. La razón fue que hubo una inconsistencia de dependencia del paquete que interrumpió mi actualización de trusty a xenial, por lo que algunas versiones de paquetes eran inconsistentes. En mi caso, la inconsistencia fue causada por squid3 y ca-certificados-java.

Restablecí la conexión de red ejecutando solo dhclient eth0. Después de resolver la inconsistencia del paquete eliminando los paquetes ofensivos y ejecutándolos apt-get install -f, ejecuté apt-get dist-upgradey apt-get install ubuntu-standard. Esto resolvió mi problema por completo.

Lo que me llevó a sospechar la inconsistencia es que el /sbin/ifupbinario contenía la dhclientlínea de comando obsoleta con la -Iopción que ya no es compatible . Debe ser una inconsistencia de la versión del paquete.

Furstex
fuente
de alguna manera mi actualización de liberación también se atascó, y esto también funcionó para mí, ¡gracias!
Evert
6

Supongo que acaba de instalar / actualizar a un sistema operativo más nuevo como Ubuntu 16.04, y debido a la desviación de los esquemas de nombres de interfaz tradicionales como eth0o eth1, el sistema no puede iniciar su interfaz.

Intenta editar tu /etc/network/interfacespara usar ens32o en ens192lugar de eth0como

# The loopback network interface
auto lo
iface lo inet loopback

# The Ethernet interface
auto ens192
iface ens192 inet dhcp

Eso debería permitirle reiniciar la interfaz de red. Espero que ayude. Para obtener detalles sobre los cambios predictivos de la interfaz de red

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

P. Ntende
fuente
la solución para mí fue: askubuntu.com/a/830163/543586
theINtoy
Que salvavidas. Esto es exactamente lo que impedía que mi host Linux virtual volviera a la red después de que realizaran una actualización forzada del kernel para la fusión. el mío era ens3 (haz ip link show y descubre qué ens se aplica a ti)
Patrick F
2

No estoy seguro de si esto sigue siendo útil: parece que dhclient ya no tiene la opción "-I" o "-df", que según la página de manual tiene DDNS:

-Utilizo el esquema DDNS estándar de los RFC 4701 y 4702.

Una vez que elimino esa opción de la línea de comando, dhclient puede abrir eth0.

[EDITAR] : Ahora, si pudiera encontrar dónde está esa opción "-I" ...

Wei Wang
fuente
1
Estoy tratando de averiguar dónde se llama el comando "dhclient" con esas opciones. Temporalmente conecté la red ejecutando manualmente el comando dhclient sin esas dos opciones. - Parece que no tengo suficiente reputación para comentar en otro lado, así que estoy agregando a mi propia respuesta aquí.
Wei Wang
1
TLin (abajo) está bien. El paquete isc-dhcp-client estaba atascado en una versión anterior. ¡Buena atrapada! Simplemente tuve que hacer un "apt-get install isc-dhcp-client" para instalar 4.3.3 y el sistema está contento después de eso.
Wei Wang
Wei Wang: ¡Muchas gracias, reinstalar 'isc-dhcp-client' como usted sugirió hizo el truco! Logré matar al host (¡invitado de VM!) En medio de una actualización de lanzamiento, que no era exactamente inteligente. ¡Ahora puedo seguir arreglando estas cosas a través de ssh y con redes nuevamente! Gracias.
stolsvik
1

Tuve un problema similar al de OP y Wei Wang, donde ifupintentaba ejecutar dhclient con la -Iopción, pero mi dhclient era una versión anterior que no era compatible. Supongo que esto se debió a mi forma hacky anterior de descargar / instalar el Xenial (16.04) Chromium mientras mantenía mi sistema en Trusty (14.04), también debe haber actualizado algunas otras partes de mi sistema.

En pocas palabras, mi solución fue descargar e instalar manualmente los paquetes relevantes relacionados con dhclient en Xenial ascendente. Se requieren tres paquetes y debe instalarse en el siguiente orden:

  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 )

Después de eso, dhclient --versiondemostré que tenía 4.3.3, que admite la -Iopción, y pude volver a usar ifup.

TLin
fuente
0

Prueba esto:-

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

Entonces reemplace networking restartconifdown... && ifup....

Solo como un aparte: ifconfigtambién ha quedado en desuso durante mucho tiempo - uso ipdel paqueteiproute2

Podrías probar también

ifconfig eth0 down && ifconfig eth0 up

(o como se llame su interfaz de red) para reiniciar la red.

Afaque
fuente
0

@jos menciona en un comentario sobre la publicación original:

La presencia de las líneas "Uso: ..." hace que parezca que el comando dhclient falla porque hay un error en los parámetros ...

Tuve este problema preciso y el registro detallado fue la pista.

ifup --verbose eth0

Busque resultados que expliquen los parámetros de DHCP.

Luego tomé la salida de:

/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

simplemente:

/sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid eth0 y luego obtuve una dirección.

Creo que algunas actualizaciones de software hicieron que dhclient no estuviera sincronizado con lo que estaba sucediendo en mi sistema Debian 7.11.

Eugene van der Merwe
fuente