¿Te preguntas cómo comprobar la conectividad entre dos extremos de la red?
Una de las tareas habituales de los administradores de sistemas es comprobar la conectividad para solucionar problemas. problemas de red. Podría ser cualquier cosa como la aplicación no puede conectarse al servicio backend, incapaz de obtener datos de una URL externa, verificar si el flujo está abierto, etc.
Sea lo que sea, las siguientes utilidades/comandos te ayudarían. Están probados en CentOS, y no veo ninguna razón para que no funcionen en otra distro de Linux.
Exploremos...
telnet
Uno de los comandos más utilizados para probar la conectividad esencial entre servidores, servidor a la IP de otro dispositivo de red. La sintaxis del comando es fácil.
telnet $destinationIP $PORT
Digamos que quieres probar si puedes conectarte al puerto 8080 en la dirección IP 10.0.0.1; entonces el comando sería.
telnet 10.0.0.1 8080
Si no hay ningún problema para conectarse, debería ver el mensaje de conexión.
Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.
Nota: si obtiene un comando no encontrado al ejecutar telnet, entonces necesita instalar telnet como expliqué aquí.
En la mayoría de los escenarios, telnet debería ayudar. Sin embargo, si necesitas alguna otra opción, aquí tienes algunas alternativas a telnet.
ncat o nc
Ncat (también conocido como nc) es una potente utilidad de red con muchas características como enlazar y aceptar una conexión, ejecutar comandos remotamente, escribir y leer datos, etc. Funciona tanto en IPv4 como en IPv6.
Para hacer una simple prueba para comprobar si el puerto está abierto o no, ejecute lo siguiente.
nc -vz $HOSTNAME $PORT
Tomemos el ejemplo de probar el puerto 443 en geekflare.com.
[root@geekflare-lab ~]# nc -vz geekflare.com 443
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 104.25.133.107:443.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.
[root@geekflare-lab ~]#
Como ya se ha mencionado, también puede utilizar nc
para vincular la conexión a escuchar en un puerto determinado. Esto puede ser útil cuando no tienes servicios reales en ejecución pero quieres asegurarte de que existe conectividad.
Para empezar a escuchar en un puerto:
nc -l $PORTNUMBER
Vinculará el puerto a un número determinado.
Si ncat no está instalado, puede hacerlo con yum install nc
en servidores CentOS/RHEL.
wget
wget es un comando útil para descargar/probar HTTP, HTTPS y FTP. Si trabajas como ingeniero web o te ocupas a menudo de cuestiones relacionadas con la web, entonces wget
es tu amigo. Las pruebas con wget son sencillas.
wget $URL
He aquí un ejemplo de prueba tools.geekflare.com
[root@geekflare-lab ~]# wget tools.geekflare.com
--2019-05-09 20:40:01-- http://tools.geekflare.com/
Resolving tools.geekflare.com (tools.geekflare.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools.geekflare.com/ [following]
--2019-05-09 20:40:01-- https://tools.geekflare.com/
Connecting to tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html.2'
[ <=> ] 15,139 --.-K/s in 0.001s
2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved [15139]
[root@geekflare-lab ~]#
Si se muestra conectado significa que no hay ningún problema de conectividad.
Echa un vistazo a esto para ver algunos de los más utilizados Ejemplos de comandos wget.
rizo
A rizo es una herramienta polivalente.
¿Sabes que puedes hacer telnet a un puerto usando curl?
Bueno, ahora ya lo sabes.
curl -v telnet://$IP:$PORT
A continuación se muestra un ejemplo práctico.
[root@geekflare-lab ~]# curl -v telnet://chandan.io:443
* About to connect() to chandan.io port 443 (#0)
* Trying 104.31.68.106...
* Connected to chandan.io (104.31.68.106) port 443 (#0)
Y, cuando no hay puerto de escucha o firewall problema, entonces usted verá tratando de...
[root@geekflare-lab ~]# curl -v telnet://chandan.io:4434
* About to connect() to chandan.io port 4434 (#0)
* Trying 104.31.68.106...
También puede utilizar curl para descargar los datos. Soporta múltiples protocolos - HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, etc.
nmap
Una herramienta popular con cientos de funciones. A menudo se considera una herramienta de seguridad, nmap le permite probar una sola IP/puerto o en el rango.
Para probar un solo puerto
nmap -p $PORT $IP
Un ejemplo de prueba del puerto 443 en siterelic.com
[root@geekflare-lab ~]# nmap -p 443 siterelic.com
Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC
Nmap scan report for siterelic.com (104.27.174.50)
Host is up (0.0079s latency).
Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32
PORT STATE SERVICE
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
[root@geekflare-lab ~]#
Mira la columna de estado. Si ves abierto significa que la conexión está bien. Y, si el estado es filtrado significa que la conectividad no existe.
Ping
Uno de los comandos más utilizados es comprobar si un host remoto responde o no a ICMP ECHO_REQUEST. Ten en cuenta que esto puede no dar resultados precisos cuando ICMP está bloqueado en la red remota. cortafuegos. Suponiendo que ese no sea el caso, puedes hacer ping a IPv4 o al punto final de la red IPv4 como se indica a continuación.
ping $ipaddress
ping $url
Por ejemplo, resultado de éxito de geekflare.com
chandan@192 ~ % ping geekflare.com
PING geekflare.com (104.27.119.115): 56 data bytes
64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms
64 bytes from 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms
Por ejemplo, resultado de un fallo de IP interna.
chandan@192 ~ % ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Si el endpoint admite IPv6, puede utilizar la opción ping6
como se indica a continuación.
chandan@192 ~ % ping6 geekflare.com
PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673
16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms
16 bytes from 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms
Si necesita hacer ping remoto a través de Internet, puede utilizar la función herramienta ping en línea.
Conclusión
telnet está desapareciendo en la última versión de Linux. Gracias a la alternativa telnet anterior.
Si eres nuevo en Linux y quieres aprender, echa un vistazo a esto Curso Udemy.