Cómo configurar una IP estática en Ubuntu Server 18.04

29

He visto a algunas personas decir que el archivo para configurar la IP estática sigue siendo /etc/network/interfaces

Y he visto a otras personas decir que en 18.04 ahora está encendido /etc/netplan(por lo que la gente parece descontenta)

He intentado poner esto:

version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.9/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

En mi /etc/netplan/50-cloud-init.yamly haciendo sudo netplan applypero eso simplemente mata la conexión de los servidores a internet.

final20
fuente
¿Es un escritorio o un servidor?
user68186
¿Es esta una nueva instalación o actualización de 18.04 de otra versión?
WinEunuuchs2Unix
Lo siento, debería haber dicho esto en el texto, es una nueva instalación del servidor 18.04.
final20
La solución más simple para mí fue especificar una dirección IPv4 estática durante la instalación (junto con la subred, la puerta de enlace, etc.). Simplemente complete algunos campos del asistente, sin alterar los archivos de configuración.
Uwe Keim
También puede hacer esto en enrutadores. Los pasos se explican por sí mismos en la configuración del enrutador.
Personal de EODCraft

Respuestas:

13

Esto se establece una instrucción IP estática en Ubuntu-Server 18.04

$ sudo nano /etc/netplan/50-cloud-init.yaml

Luego reemplace su configuración, por ejemplo, las siguientes líneas:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    ens160:
     dhcp4: no
     addresses: [192.168.1.137/24]
     gateway4: 192.168.1.1
     nameservers:
       addresses: [8.8.8.8,8.8.4.4]

Aplicar cambios:

$ sudo netplan apply

En caso de que encuentre algunos problemas, ejecute:

$ sudo netplan --debug apply

[ NOTA ]:

  • /24 es equivalente a 255.255.255.0
  • ens160 es su nombre de ethernet, puede obtenerlo usando $ ifconfig
  • La configuración de la interfaz de red Ubuntu 16.04 y 14.04 tiene un método diferente.
  • El archivo está en formato YAML : use espacios, sin pestañas.
Benyamin Jafari
fuente
no puede hacer ping después de asignar una dirección IP estática
user2763554
OK .... Puedo hacer ping después de hacerloservice networking restart
user2763554
1
No haría eso ya que CloudInit genera ese archivo
Ludovic Kuty
13

Todas las respuestas que le dicen que edite directamente /etc/netplan/50-cloud-init.yamlson incorrectas ya que se usa CloudInit y generará ese archivo. En Ubuntu 18.04.2 está claramente escrito dentro del archivo:

$ cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        eno1:
            dhcp4: true
    version: 2

Por lo tanto, no debe editar ese archivo sino el que se encuentra debajo /etc/cloud/cloud.cfg.d/si aún desea usar CloudInit.

Otra forma es deshabilitar completamente CloudInit primero creando un archivo vacío /etc/cloud/cloud-init.disabled(consulte https://cloudinit.readthedocs.io/en/latest/topics/boot.html ) y luego las otras respuestas están bien. Bajo Ubuntu 18.04.2 tuve que usar dpkg-reconfigure cloud-initpara dejarlo tener en cuenta el archivo /etc/cloud/cloud-init.disabled. Creo que esto es un poco raro.

Le sugiero que cambie el nombre del archivo (no es el nombre correcto ya 50-cloud-init.yamlque pensemos que todavía usa CloudInit).

Entonces puede terminar con un nombre de archivo /etc/netplan/01-netcfg.yamlque contiene la configuración a continuación. Tenga en cuenta el uso del networkdprocesador en lugar de NetworkManagerporque la configuración está en un servidor.

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: no
      addresses: [192.168.1.246/24]
      gateway4: 192.168.1.1
      nameservers:
         addresses: [192.168.1.1]
Ludovic Kuty
fuente
2
Funciona muy bien Esta debería ser la mejor respuesta. 50-cloud-init.yaml como se indica no debe modificarse.
Reliquia
2
Si todavía usa CloudInit, debe hacer una sudo cloud-init clean -rpara obtener el cambio, según la respuesta de veperr (al menos para mí en Ubuntu Server 18.04.3).
Stuart Rossiter
1
... además, la rendererlínea ya no es válida, parece (y falta en la versión base del archivo que edita).
Stuart Rossiter
6

Ubuntu 18.04 usa ahora Netplan para configurar las interfaces de red, por lo que la configuración debe hacerse en el archivo /etc/netplan/50-cloud-init.yaml, la documentación aconseja no volver a meterse con el archivo anterior /etc/network/interfaces. He usado esta configuración con mi máquina virtual Ubuntu Server y funciona hasta ahora, solo asegúrese de que la información sea correcta; la optional: trueconfiguración supuestamente acelera el tiempo de arranque al no verificar si la interfaz está conectada o no, esto es predeterminado, además no hay necesidad de declarar valores no utilizados, por ejemplo DHCP, si están ausentes se toman como deshabilitados, también El procesador predeterminado en Ubuntu Server es networkdasí que no hay necesidad de declararlo. Tomando la información de su publicación, debería ser así:

network:
    ethernets:
        eht0:
            addresses:
            - 192.168.1.9/24
            gateway4: 192.168.1.1
            nameservers:
                addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]
            optional: true
    version: 2

Una vez que guarde el archivo, ejecute sudo netplan --debug applyel debugindicador generará más información y puede ayudar a detectar cualquier error. Verifique el cable de Ethernet, si está en revisión virtual, la configuración de VM. Si utilizo una WLAN, he leído que es un poco más difícil de configurar, pero aún no he configurado una máquina conectada a WiFi con esta versión del servidor.

Si desea obtener más información sobre Netplan, hay un sitio web que tiene algunos ejemplos básicos de configuración.

https://netplan.io/

badger_8007
fuente
5

El archivo de configuración está en formato YAML : no use TAB al configurar el archivo. Solo funciona con ESPACIO .

Este fue mi problema.

HubbleT
fuente
4

He encontrado otra forma de usar cloud-init.

  1. Edite el archivo /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg: el contenido parece ser el mismo que en / etc / netplan.
  2. limpiar, reiniciar y reiniciar cloud-initcon este comando:

    sudo cloud-init clean -r
    
  3. ¡Eso es! Su sistema se reiniciará, se reiniciará y cloud-initrecogerá el cambio /etc/cloud/cloud.cfg.d/50-curtin-networking.cfgy lo aplicará /etc/netplan/50-cloud-init.yamly todo estará bien. Verificar con ifconfig.

veperr
fuente
0

Esta es la configuración que lo hace funcionar.

$sudo nano /etc/netplan/50-cloud-init.yaml

network:
   ethernets:
     eth0:          
     addresses:
     - 192.168.1.9/24
     dhcp: false
     gateway4: 192.168.1.1
     nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
        - 8.8.4.4
        search: []
  version: 2  

$sudo netplan apply

reiniciar el servidor

cambie eth0 a su adaptador, averigüe su adaptador usando ifconfig.

Digiere
fuente
0

Para encontrar las interfaces ethernet disponibles, use ip link show

Luego edite el archivo 50-cloud-init.yaml usando $sudo nano /etc/netplan/50-cloud-init.yaml

Agregue la configuración para las interfaces disponibles como eth0: y eth1:

network:
   ethernets:
     eth0:          
     addresses:
     - 192.168.1.9/24
     dhcp: false
     gateway4: 192.168.1.1
     nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
        - 8.8.4.4
        search: []
     eth0:
     addresses:
     - 192.168.1.9/24
     dhcp: false
  version: 2  

Luego use el comando $sudo netplan applypara aplicar los cambios.

Anand Prakash Singh
fuente
0

Cómo configurar una IP estática en Ubuntu Server 18.04

Luego edite el archivo 50-cloud-init.yaml usando$sudo vim /etc/netplan/50-cloud-init.yaml


network:
  ethernets:
    eno1:
        addresses:
        - 10.0.1.10/24
        dhcp4: false
        gateway4: 10.0.1.1
        nameservers:
            addresses:
            - 10.0.1.2
            search: []
version: 2

Aplicar cambios:

$ sudo netplan apply

yousif3350
fuente
No haría eso, ya que ese archivo es generado por CloudInit.
Ludovic Kuty
¿Por qué cada guía para configurar una IP estática en 18.04 me dice que edite un archivo yaml que dice que es un archivo creado dinámicamente que no persistirá? Otra broma cruel de los desarrolladores de Ubuntu que piensan que está bien simplemente romper las cosas por defecto ...
Bigtexun
0

La configuración de red en 18.04 se gestiona a través de netplan y se configura con cloud-init. Para cambiar la configuración de su red, edite el 50-curtin-networking.cfgarchivo /etc/cloud/cloud.cfg.d/. Si este archivo no existe, créelo.

Encuentra el nombre de tu interfaz

ip address show

Edite / cree el archivo de configuración de red cloud-init

sudo nano /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg

Para configurar una dirección IP estática, use la tecla de direcciones, que toma una lista de direcciones (IPv4 o IPv6) junto con la longitud del prefijo de subred (por ejemplo, / 24). La información de puerta de enlace y DNS también se puede proporcionar:

network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 192.168.1.9/24
      gateway4: 192.168.1.1
      nameservers:
          addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

Puede encontrar más opciones de configuración en https://netplan.io/examples

Vuelva a cargar la configuración de inicio en la nube. Esto reiniciará su servidor.

sudo cloud-init clean -r
Ryan
fuente