¿Cómo puedo encontrar mi dirección IP interna?

158

Tengo el servidor Ubuntu 12.04 instalado, así que no tengo GUI. Cuando hago el comando ifconfig, no puedo encontrar mi dirección IP interna. Dice inet addr: 127.0.0.1.

Aquí está la salida de ifconfig -a :

eth0   link encap:Ethernet  HWaddr 00:06:4f:4a:66:f0
    BROADCAST MULTICAST  MTU:1500  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1   link encap:Ethernet  HWaddr 00:16:ec:05:c8:9c 
    BROADCAST MULTICAST  MTU:1500  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo     Link encap:Local Loopback
    inet addr 127.0.0.1  Mask:255.0.0.0
    inet6 addr:  ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536  Metric:1
    RX packets:1800 errors:0 dropped:0 overruns:0 frame:0
    Tx packets:1800 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:143896 (143.b KB)  TX bytes:143896 (143.8 KB)

aquí están los contenidos de etc / network / interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Si alguien pudiera editar esto por mí, los contenidos de etc / network / interfaces deberían estar en líneas separadas.

La salida del host askubuntu.com fue:

;; connection timed out; no servers could be reached.

Configuré owncloud y webmin hace unos meses y los estaba usando durante un mes sin problemas. Creo que se cortó la luz un día hace 2 meses y nunca volví a encender el servidor hasta ayer. No he hecho nada que hubiera afectado la configuración de Internet. No estoy seguro de por qué ya no funciona. En lo que respecta a mi topología de red, tengo una tarjeta de red pci-e para la PC. La línea de ethernet va desde la tarjeta de red a un conmutador, y luego a un módem / enrutador desde allí.

    
pregunta Cam Jones 07.03.2014 - 14:20

8 respuestas

156

Estos comandos le dirán toda la información de red

ifconfig -a

o

ip addr show

Si, como dices, solo te da 127.0.0.1, entonces hay dos opciones:

  1. Su tarjeta de red no está conectada o no es reconocida por el sistema

  2. El servidor DHCP de su red no está ejecutándose o no está conectado

respondido por el kamil 07.03.2014 - 14:32
166

Esto es lo que actualmente recomiendo:

ip route get 8.8.8.8 | awk '{print $NF; exit}'

La ventaja de este comando es que no tiene que saber qué interfaz está utilizando (eth0? eth1? o quizás wlan0?), no tiene que filtrar las direcciones de los servidores locales, las direcciones Docker ni las VPN. túneles, etc. y siempre obtendrá la dirección IP que se usa actualmente para las conexiones de Internet en ese mismo momento (importante cuando, por ejemplo, está conectado tanto a ethernet como a wifi o a través de VPN, etc.).

Esto probará no solo que tiene una IP correcta configurada en alguna interfaz (como al analizar la salida de ifconfig ) sino también que tiene la tabla de enrutamiento configurada para usarla correctamente.

Encontré esa idea en esta respuesta por Collin Anderson .

Lo uso en el script internalip en mi colección de scripts en GitHub , con la que puedes instalar:

wget https://rawgit.com/rsp/scripts/master/internalip
chmod a+x internalip

y usar como:

internalip

o:

internalip TARGET

y obtendrá su dirección IP que se usaría para conectarse con la dirección IP de TARGET . El objetivo predeterminado es 8.8.8.8 , que es el servidor de DNS público de Google y un buen valor predeterminado para el Internet.

Pero si lo ejecuta con una dirección IP diferente:

internalip 127.2.3.4

Luego obtendrá:

127.0.0.1

porque esa es su dirección IP que se usaría para conectar con 127.2.3.4 en la interfaz de bucle invertido. Es útil cuando su objetivo está en una LAN, VPN u otra red especial, en cuyo caso podría usarse otra IP para las conexiones que la IP predeterminada para llegar a Internet.

IP externa

Para verificar su dirección IP externa (la que los servidores de Internet ven cuando se conecta a ellos, que puede ser diferente a la dirección IP interna descrita aquí), consulte esta respuesta .

    
respondido por el rsp 03.04.2015 - 04:49
131
hostname -I

Esto le dará solo la dirección IP sin ninguna información adicional.

    
respondido por el Sarath Somana 25.08.2015 - 08:29
18

Creo que vale la pena mencionar que ejecutar ifconfig junto con una opción mostrará todas las interfaces, ya sea que la interfaz tenga una IP.

al ejecutar ifconfig solo, solo se mostrarán las interfaces con direcciones IP asignadas.

Aquí hay un buen truco que podrías usar para mostrar solo IPs usando Perl.

# ifconfig | perl -nle'/dr:(\S+)/ && print '
192.168.1.100
127.0.0.1

Su tarjeta de red es reconocida por el sistema, por eso aparece eth0 y eth1

aquí hay una manera rápida de asignar IP a su interfaz, use una IP / Subred en consecuencia.

 ifconfig eth0 192.168.1.200/24 up 

luego tenemos que agregar una ruta predeterminada

route add default gw 192.168.1.1

Mejor,

    
respondido por el user1007727 07.03.2014 - 22:17
8

Este comando mostrará todas las direcciones IP para un solo dispositivo:

dev=eth0
ip addr show $dev | awk '/inet/ {print }' | cut -d/ -f1

Imprimirá una o dos líneas de salida. La primera es la dirección inet / IPv4 y la otra es inet6 / IPv6 si su sistema está configurado para admitir esto.

    
respondido por el Aaron Digulla 24.10.2014 - 16:14
5

En el caso de que el comando ifconfig no mostrara la dirección IP, hay una forma muy simple y fácil de averiguar la dirección IP de la máquina Ubuntu a través de la GUI. Siga los pasos a continuación:

Haga clic en el icono de red en el área de notificación y haga clic en Información de conexión .

Esto abre una ventana que tiene cierta información, incluida la dirección IP.

    
respondido por el Ibungo 24.09.2015 - 15:09
1

Ya hay muchas buenas respuestas para elegir, pero pensé que señalaría facter que generalmente, pero no necesariamente, se usa con títeres para recopilar varios datos sobre el sistema. La principal ventaja de facter es que da una buena salida limpia que te ahorra toda la manipulación con grep , sed , awk , cut , perl , etc. No te va a decir qué interfaz que le interesa, pero si lo sabe, lo siguiente le da la IP sin otro cruft para limpiar:

facter ipaddress_eth0 
    
respondido por el mc0e 28.11.2015 - 16:11
1

comando ip

Aquí hay una variación de ip addr way.

ip tiene la opción -o que permite poner toda la información en una sola línea; esto es útil para analizar con herramientas como awk o perl . En combinación con la opción -4 , solo veremos direcciones IPv4. Por lo tanto, la salida sería algo como esto (nota - reemplace wlan7 con la interfaz que desea verificar):

$ ip -4 -o addr show wlan7
3: wlan7    inet 192.168.0.78/24 brd 192.168.0.255 scope global dynamic wlan7\       valid_lft 85654sec preferred_lft 85654sec

Como puede ver, la dirección IP es 4ta columna / palabra en la salida. El resto, es simple ejercicio de análisis a través de la herramienta de su elección. Aquí, estoy usando Python:

ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 

Lo mismo, solo con aquí string <<< y command replacement $()

python -c "import sys;print sys.stdin.readlines()[0].split()[3]"  <<< $(ip -4 -o addr show wlan7)

Personalmente, tengo esto guardado como una buena función en mi ~/.bashrc , por lo que se realiza menos tipeo.

wlan_ip() {
    ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 
} 

La versión de Perl y Ruby es un poco más corta:

$ ip -4 -o addr show  wlan7 | perl -lane 'print $F[3]'                         
192.168.0.78/24

$ ip  -4 -o addr show wlan7 | ruby -n -e 'print $_.split()[3]'                 
192.168.0.78/24

Wireshark

Si está familiarizado con el uso de herramientas de análisis de red, probablemente sepa que para obtener su dirección IP, todo lo que necesita hacer es borrar la caché del navegador, iniciar la captura de Wireshark en la interfaz específica y buscar http GET paquetes que se transmiten La columna de destino mostrará su dirección IP

    
respondido por el Sergiy Kolodyazhnyy 04.09.2016 - 20:32

Lea otras preguntas en las etiquetas