30 votos

Shell ¿Comando para obtener la dirección IP?

¿Existe un comando bash para encontrar la dirección IP de una caja de Ubuntu? Necesito encontrar la dirección IP para que pueda ssh en la máquina más tarde.

36voto

mpbloch Puntos 805

/sbin/ifconfig -a

0 votos

Yup y si usted está planeando en la administración remota del servidor, vi /etc/network/interfaces y configure la interfaz como static (véase help.ubuntu.com/8.10/serverguide/C/network-configuration.html )

0 votos

Al ejecutar este comando se muestra una lista completa de números. ¿Cuál debemos utilizar? El inet addr ?

27voto

Andy Lester Puntos 34051

Puedes usar:

/bin/ip addr

3 votos

@opierce Ha marcado la respuesta de mpbloch como correcta, pero como FYI, debería usar esta respuesta, ya que es parte de la suite iproute2. ifconfig se está eliminando ahora.

4 votos

Puedes acortarlo ejecutando simplemente ip a .

22voto

nik Puntos 5456

Si tiene una dirección interna en uso, compruebe

curl http://myip.dnsomatic.com

puede ser una buena idea en shells unix.
O simplemente introduzca esa URL en su navegador.


Si obtiene una respuesta diferente de la " ifconfig -a " resultado,
el ifconfig dio su dirección interna -- que probablemente no funcionará desde el exterior.


Aunque todo parezca ir bien, es posible que tenga instalado un cortafuegos que no permita la entrada de datos. ssh conexiones.
En ese momento debe probar el puerto de interés desde un navegador en la máquina en,

http://www.canyouseeme.org/

Eso confirmará la conectividad a través,

  • dirección IP externa (mostrándosela en esa página)
  • NAT, reenvío de puertos
  • Cortafuegos

0 votos

Es cierto, pero si ese es el caso, probablemente no hay reglas de NAT/reenvío de puertos para hacer coincidir ssh con cualquiera que sea la IP interna.

0 votos

@Kyle, Que se puede añadir...

3 votos

+1 para curl http://myip.dnsomatic.com

21voto

Momo Puntos 16

/bin/hostname -i

3 votos

En este caso sugeriría utilizar hostname --all-ip-addresses . Muestra todas las direcciones de red del host. Esta opción enumera todas las direcciones configuradas en todas las interfaces de red. Se omiten la interfaz loopback y las direcciones IPv6 link-local. A diferencia de la opción -i, esta opción no depende de la resolución de nombres. No haga ninguna suposición sobre el orden de la salida.

5 votos

Alternativa más corta al comentario de @lrkwz /bin/hostname -I

0 votos

Gracias @hanxue - esto debería ser una respuesta propia - el comando más corto con la salida más limpia - ¡justo lo que estaba buscando! En mi experiencia (Ubuntu), /bin/hostname -i sólo da 127.0.1.1 que es inútil.

13voto

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X