Cómo iniciar la red en una interfaz con cable antes de iniciar sesión en Ubuntu Desktop Edition

17

Problema

Ubuntu 9.10 Desktop Edition (y posiblemente también versiones anteriores, no las he probado) no tiene conexiones de red después del inicio hasta que al menos 1 usuario inicia sesión. Esto significa que los servicios que requieren redes (por ejemplo, openssh-server) no estarán disponibles hasta alguien inicia sesión localmente a través de gdm, kdm o un TTY.

Antecedentes

Ubuntu 9.10 Desktop Edition utiliza el servicio NetworkManager para tomar comandos del nm-applet en Gnome (o su equivalente en KDE). Según tengo entendido, mientras NetworkManager se ejecuta en el arranque, no se emite ningún comando para conectarse hasta que inicie sesión por primera vez porque nm-applet no se ejecuta hasta que inicia sesión y comienza su sesión de Gnome (o similar para KDE). No estoy seguro de qué hace que NetworkManager se conecte a la red cuando inicia sesión a través de un TTY.

Hay varias variables relevantes involucradas en el inicio de las conexiones de red que incluyen:

  • Wired vs Wireless (y los controladores resultantes, SSID, contraseñas y prioridades)
  • Estático vs DHCP
  • Múltiples interfaces

Restricciones

  • Admite Ubuntu 9.10 Karmic Koala (puntos de bonificación por versiones adicionales compatibles)
  • Admite interfaz eth0 con cable
  • Reciba una dirección IP a través de DHCP
  • Reciba información de DNS a través de DHCP (obviamente, el servidor DHCP debe proporcionar esta información)
  • Habilite la creación de redes en el momento adecuado (por ejemplo, un tiempo después de que se cargan los sistemas de archivos pero antes de que se inicien los servicios de red como ssh)
  • Cambiar distribuciones o versiones (p. Ej. A Server Edition) no es una solución aceptable
  • Cambiar a una configuración de IP estática no es una solución aceptable

Pregunta

  • ¿Cómo iniciar la red en una interfaz con cable antes de iniciar sesión en Ubuntu Desktop Edition?

Ver también

Referencias

Fuerte
fuente

Respuestas:

9

Para configurar su interfaz de red automáticamente a través de DHCP en el arranque, agregue las siguientes líneas a /etc/network/interfaces:

auto eth0
iface eth0 inet dhcp

Esto debería activar su interfaz incluso sin ejecutar NetworkManager. Incluso puede eliminar el paquete network-manager, si lo desea.

Goedson
fuente
Ahh, eso fue solo un error tipográfico cuando hice la pregunta, pero eso es lo que intenté. Dicho esto, al reiniciar /etc/init.d/networking aparece: "* Reconfigurando las interfaces de red ...", pero la interfaz no aparece, y mucho menos obtener una IP. Hacer un reinicio tampoco abre la interfaz con esta configuración.
Burly
Supongo que el: en auth eth0 lugar de: auto eth0 en tu publicación sigue siendo un error tipográfico que has hecho solo en la publicación, ¿verdad?
Goedson
Acabo de hacer una nueva instalación de Ubuntu 9.10, edité / etc / network / interfaces como se indicó anteriormente, y la emisión sudo /etc/init.d/networking restartconsiguió eth0 y se configuró a través de DHCP.
Goedson
Oh mi, Mega-falla! : facepalm: no tenía el error tipográfico original que mencionaste, pero sí tengo la palabra 'auth' en lugar de 'auto' en la primera línea. Creo que tiene que modificar su respuesta para que yo cambie mi voto porque ha pasado demasiado tiempo (¿con qué?). Eliminé la sección "Lo que intenté" de la pregunta para evitar confusiones ya que escribí con dificultad. Quizás agregue algo como: "Agregue lo siguiente /etc/network/interfacespara evitar que NetworkManager administre la interfaz y lo muestre a través de dhcp" Tengo que verificar y ver si esta solución lo activará en el arranque con NM instalado ...
Burly
He cambiado la respuesta, así que está claro cuál es la solución.
Goedson
1

Debian / Ubuntu tiene su propio programa para administrar servidores en el momento del arranque.

Tratar update-rc.d STARTUP-SCRIPT defaults

Busque el script específico para eth0 y habilítelo con esto.

Siempre puede crear su propio script, colocarlo en init.d y ejecutar el comando anterior hará que se cargue en el momento del arranque.

o simplemente ponga esos comandos (ifconfig up, dhcpcd) en /etc/rc.local (este archivo se lee cada vez en el momento del arranque)

Jinete de la luz del sol
fuente
He usado update-rc.d antes pero el problema es localizar el STARTUP-SCRIPT específico para eth0. Al menos en Ubuntu 9.10 DE, no hay ninguno. Solo existe el script /etc/init.d/networking, que realmente solo llama a un trabajo inicial (/ lib / init / update-job network start es lo que llama específicamente). Como se señaló anteriormente, llamar a /etc/init.d/networking start, / lib / init / update-job networking start y / o service network start / restart no abre la interfaz y mucho menos obtiene una IP. Podía escribir mi propio guión, pero esperaba una solución más elegante.
Burly
Poner dhclient eth0 en rc.local puede ser mi única opción. Necesito probar esto para ver si incluso funciona. El problema con ponerlo aquí es que otros servicios de inicio realmente no pueden depender de él (como ssh) porque rc.local no se ejecuta hasta después de que se hayan iniciado todos los servicios del sistema.
Burly
1
Propocionar comentarios Solución: Agregar dhclient eth0a /etc/rc.local abre correctamente la interfaz eth0 en el inicio y obtiene una IP a través de DHCP. Al menos para mí, SSH también está disponible antes de que alguien inicie sesión localmente ahora, ya que openssh-server está configurado para comenzar en los niveles de ejecución 234. No sé si Todos los servicios habilitados para la red funcionarán correctamente si la interfaz se abre en rc.local ( sin embargo, ntpdate), porque rc.local se ejecuta después de los servicios del sistema.
Burly