¿Cómo configuro una IP estática en Ubuntu?

56

Soy nuevo en Linux, tengo años de experiencia con servidores / escritorios de Windows y tengo problemas para configurar una IP estática. Estoy usando un método utilizado para versiones anteriores de Ubuntu, que no parece funcionar con 16.04

He usado el comando sudo nano /etc/network/interfacey agregué lo siguiente

iface enp0s25 inet static
address 10.10.8.2
netmask 255.255.0.0
gateway 10.10.1.1
dns-nameservers 8.8.8.8 8.8.4.4

He reiniciado el sistema y la Ethernet está bastante muerta, el ping no funciona en absoluto. He intentado modificar /etc/NetworkManager/NetworkManager.confe hice los siguientes cambios

#dns=dnsmasq (comment out the dnsmasq)
[ifupdown]
managed=true (changed from false)

Con esto puedo hacer que Ethernet funcione esporádicamente, sin embargo, eventualmente falla.

He intentado esta configuración en otras dos máquinas más una máquina virtual y todas tienen los mismos resultados. Puedo confirmar que esta configuración funciona bien cuando instalo Windows en cualquiera de estas máquinas. Además, cuando dejo que DHCP se configure automáticamente, todo funciona bien sin problemas.

Me imagino que me falta algo aquí, configurar una IP estática no debería ser difícil en absoluto.

TeeStar
fuente
lo único que noté y puede haber sido un error tipográfico aquí, pero cambiaría el Dns-nameserverspara dns-nameserversprobablemente no hacer nada para resolver este problema, pero podría evitar que otros problemas sucedan
John Orion
1
Dns-nameservers es una sintaxis aceptable, por lo que no debería ser un problema. Cuando funcionaba con DHCP, ¿ejecutó un ifconfigpara verificar el nombre de la interfaz o asumió que era enp0s25? ¿También tiene un auto enp0s25en la parte superior de su archivo de configuración? Si no lo hace, es posible que la interfaz simplemente no aparezca en el arranque.
Andrew
Edite su pregunta y publique el contenido exacto de su /etc/network/interfacesarchivo. Mientras edita su mensaje, resalte el texto de este archivo, luego haga clic en el {}enlace del código en la parte superior del editor de mensajes para que formatee correctamente el texto y nos haga más fácil leer el contenido. También ejecute este comando ip addressy realice los mismos pasos para {}(formato de código) esa salida.
LD James

Respuestas:

83

Tuve el mismo problema y esta fue mi solución:

sudo nano /etc/network/interfaces

y pegue (alterando para su red) esto debajo de # The primary network interface:

auto enp0s25
iface enp0s25 inet static
address 192.168.0.16
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.4.4 8.8.8.8

Puede obtener el nombre de interfaz correcto usando el comando Terminal ifconfig -aen ubuntu 16.04 o ip addressen 18.04+

Apague su máquina virtual y luego !!! Vaya a la configuración de red y haga clic en el botón Actualizar dirección MAC varias veces :)

ingrese la descripción de la imagen aquí

e inicie su VM y debería obtener internet!

ACTUALIZACIÓN 20.02.2019

Para ubuntu 18.04+ necesitas editar este archivo

/etc/netplan/50-cloud-init.yaml

network:
    ethernets:
        enp0s3:
            addresses: [192.168.0.55/24]
            gateway4: 192.168.0.1
            dhcp4: no
            nameservers:
              addresses: [1.1.1.1,8.8.8.8]
            optional: true
    version: 2
lewis4u
fuente
2
Genial gracias lo aprecio Parece funcionar ahora, sin problemas. ¡Es muy sólido en este momento!
TeeStar
Además de la dns-nameserverssolución, tuve que usar esta solución: askubuntu.com/questions/574569/… Mi ISP es monkeybrains.net.
BSalita
56

Establecer la dirección IP estática como se indica arriba en la respuesta aceptada aquí funciona, pero uno tiene que vaciar la configuración de la dirección IP anterior y luego reiniciar networking.service:

sudo ip addr flush enp0s25
sudo systemctl restart networking.service

Luego verifique que sea correcto:

ip add
Conceder
fuente
2
El vaciado fue necesario para evitar que la dirección anterior estuviera presente en la interfaz (basada en ip addr). Sin embargo, el reinicio de systemctl también funciona, ifdowny ifupen la interfaz funcionará de manera más selectiva.
RichVel
2
thx @Grant. agregar rubor hizo que esto funcionara
Paweł Madej
3
¡En Ubuntu 16.04 y versiones posteriores es necesario!
Diego Duarte
5

sudo vim /etc/network/interfaces

    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
    address 192.168.1.10
    gateway 192.168.1.1
    netmask 255.255.255.0
    dns-nameservers 8.8.8.8

sudo ifdown eth0 && sudo ifup eth0

lanni654321
fuente
99
Hola @ lanni654321, tal vez deberías editar tu respuesta y agregar algunas palabras, explicando brevemente lo que estás haciendo y por qué. Creo que eso haría que tu respuesta sea aún más útil, ¿qué te parece?
Tshilidzi Mudau
5
# interfaces(5) file used by ifup(8) and ifdown(8)
# auto lo
# iface lo inet loopback
auto enp2s0 
iface enp2s0 inet static
    address 172.16.9.124
    netmask 255.255.240.0
    gateway 172.16.0.9
dns-nameservers 8.8.8.8
rajan
fuente
1
ifcace debería ser iface en la línea 5
twoleggedhorse
@twoleggedhorse: Se corrigió el error tipográfico para la respuesta, pero tuve que agregar algunos #en la primera línea porque no se puede editar sin al menos 6 caracteres cambiados que no sean espacios en blanco
Andrei Rînea
3

Tuve el mismo problema y la solución "fue" simplemente ... para mí, al menos.

auto ens160
iface ens160 inet static
address 172.31.0.164/22
netmask 255.255.252.0
gateway 172.31.0.2
network 172.31.0.0
broadcast 172.31.3.255
dns-nameservers 172.31.0.21 172.31.0.18

#Add internal route
up route add -net 172.16.168.0/21 gw 172.31.0.20 dev ens160

Y cree un archivo vacío con el nombre de la interfaz de red en:

~$ touch /etc/network/interfaces.d/ens160

Funciona...

Manu
fuente
2

Tuve el mismo problema y esta fue mi solución: eliminar todas las líneas vacías al final del archivo /etc/network/interface.

AkYu
fuente
0

Solía ​​configurar IP estáticas en mis máquinas Ubuntu y luego noté que solo puedo asignar la dirección IP usando mi enrutador. Esta puede ser la solución más simple. Simplemente inicie sesión en su enrutador, busque los dispositivos conectados y asigne la dirección IP allí.

Viejo
fuente
0

Si su servidor muestra esa IP antigua así como la nueva IP asignada, simplemente reinicie su servidor. Vaciará automáticamente la IP anterior y conservará la nueva.
Y si no desea reiniciar su servidor, use este comando:


sudo ip addr flush <your-interface-here>

Rayos de sol
fuente
0

Ejecute estos comandos simples para ver si su (s) interfaz (es) de red están configuradas para aparecer cuando la máquina se inicia / reinicia.

grep "auto" /etc/network/interfaces

Si no se imprimen líneas en la salida estándar, ábralas /etc/network/interfacescon un editor de texto (vi, nano, sed) y esperemos que vea algo similar a la imagen a continuación.

Un archivo / etc / network / interfaces predeterminado

Obviamente, si grepno devuelve ninguna línea a la ventana del terminal, el formato de su / etc / network / interfaces no puede ser muy similar. :-) Sin embargo, siga el formato de las líneas automáticas .

auto lo
(Loopback configuration follows)
.
.
.

auto enp0s3
(primary interface configuration follows)
.
.
.

====================

Ahora, en tu máquina .

auto yourInteraceNameHere
(your interface configuration follows)
.
.
.

¿No sabe qué nombres de interfaz están disponibles? Ejecute este comando.

ifconfig -a

El siguiente comando devolverá solo los nombres de las interfaces de red.

ifconfig -a | grep encap | awk {'print $1'}

ingrese la descripción de la imagen aquí

Anthony Rutledge
fuente