¿Cómo encuentro mi dirección IP interna?

Tengo Ubuntu Server 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á el resultado 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á el contenido de/etc / network/interfaces:

# The loopback network interfaceauto loiface lo inet loopback# The primary network interfaceauto eth0iface eth0 inet dhcp

Si alguien pudiera editar esto por mí, el contenido de etc / network / interfaces debería 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 usé durante un mes sin problemas. Creo que la energía se apagó 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, así que 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 Ethernet va de la tarjeta de red a un conmutador y luego a un módem/enrutador desde allí.

hostname -I

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

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

ip add

o

ifconfig -a

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

  1. La tarjeta de red no está conectada o el sistema no la reconoce

  2. Su servidor DHCP de red no se está ejecutando o no está conectado

Esto es lo que recomiendo actualmente:

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

La ventaja de ese comando es que no tiene que saber qué interfaz está utilizando (eth0? eth1? o tal vez wlan0?), no tiene que filtrar las direcciones de host local, las direcciones de la ventana acoplable, los túneles VPN, etc. y siempre conseguirás la dirección IP que se utiliza actualmente para las conexiones a Internet en ese mismo momento (importante cuando, por ejemplo, está conectado con Ethernet y wifi o a través de VPN, etc.).

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

Encontré esa idea en esta respuestapor Collin Anderson.

Lo uso en el internalip guión en mi colección de scripts en GitHub, que puede instalar con:

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

y utilizar como:

internalip

o:

internalip TARGET

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

Pero si lo ejecuta con una IP diferente:

internalip 127.2.3.4

Entonces obtendrás:

127.0.0.1

porque esa es su dirección IP que se usaría para conectarse 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 se podría usar otra IP para las conexiones que la IP predeterminada para llegar a Internet.

Dirección IP externa

Para comprobar su externo Dirección IP (la que ven los servidores de Internet cuando se conecta a ellos, que puede ser diferente de la dirección IP interna que se describe aquí) ver esta respuesta.

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

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

Aquí hay un buen truco que puede usar para mostrar solo IP usando Perl.

# ifconfig | perl -nle'/dr:(\S+)/ && print $1'192.168.1.100127.0.0.1

El sistema reconoce su tarjeta de red, por eso aparece eth0 y eth1

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

 ifconfig eth0 192.168.1.200/24 up 

luego necesitamos agregar una ruta predeterminada

route add default gw 192.168.1.1

Mejor,

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

dev=eth0ip addr show $dev | awk '/inet/ {print $2}' | 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.

En caso de que, el ifconfig el comando no mostró la dirección IP, hay una manera 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.Network icon options

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

Ya hay muchas buenas respuestas aquí para elegir, pero pensé en señalar factoraje que generalmente, pero no necesariamente, se usa con puppet para recopilar varios datos sobre el sistema. La principal ventaja de facter es que proporciona una salida limpia y agradable que le ahorra toda la manipulación con grep, sed, awk, cut, perl, sucesivamente. No le dirá en qué interfaz está interesado, pero si lo sabe, lo siguiente le da la IP sin otro problema que limpiar:

facter ipaddress_eth0 

comando ip

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

ip tener -o opción 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 -4 opción, 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 wlan73: 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 la cuarta columna/palabra en la salida. El resto, es ejercicio de análisis simple 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 que con la cadena here <<< y sustitución de comandos $()

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 tanto, se escribe menos.

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

Las versiones de Perl y Ruby son un poco más cortas:

$ 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 memoria caché del navegador, iniciar Wireshark Capture en la interfaz específica y buscar http GET paquetes que se transmiten. La columna de destino mostrará su dirección IP

Hay mucha buena información arriba. Lo mantengo simple así:

# what your computer thinks its ip address isfunction iplocal() {  ip route get 8.8.8.8 | awk '{print $NF; exit}'    # 8.8.8.8 is google dns}# what the outside world thinks your ip address isfunction ipexternal() {  curl --silent http://checkip.amazonaws.com        # or:  http://ipinfo.io/ip}function ipinfo() {  echo "local    IP  =>  $(iplocal)"  echo "external IP  =>  $(ipexternal)"}

Uso de la muestra:

> ipinfolocal    IP  =>  192.168.1.139external IP  =>  76.88.85.95

‘ifconfig / grep-G" 192.168.*.255" | cut -d’ ‘-f10puede obtener la IP, o simplementehostname -I | cut-d’ ’ -f1`

@AvatarParto Esas son para interfaces que enfrentan acceso público, esta pregunta es sobre redes internas…

Por curiosidad, ¿qué contiene ‘/etc / network / interfaces’?

Sé cómo usar el comando cambiar directorio, pero no sé cómo enumerar los archivos una vez allí, ¿cómo lo haría?

ls ' listará los archivos en un directorio. ls-l ’ dará una lista detallada. Para listar el contenido de un directorio en particular, ls-l /etc / network' Para cambiar a un directorio y listar el contenido cd / etc / network; ls-l' Para leer el contenido de etc/network/interfaces "(es un archivo) sudo pico /etc/network/interfaces". (‘pico’ es un editor de texto ligero, bueno para lectura y edición básica, y menos intimidante que vi.)