¿Se pregunta cómo verificar la conectividad entre dos puntos finales de red?
Una de las tareas comunes para el administrador de sistemas es verificar la conectividad para solucionar problemas problemas de redes. Podría ser algo como que la aplicación no se pueda conectar al servicio de backend, no pueda obtener datos de una URL externa, verificar si el flujo está abierto, etc.
Sea lo que sea, la siguiente utilidad / comandos lo ayudarán. Se prueban en CentOS y no veo ninguna razón para no trabajar en otra distribución de Linux.
Vamos a explorar…
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 sencilla.
telnet $destinationIP $PORT
Digamos que desea probar si puede conectarse 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, entonces debería ver el mensaje de conectado.
Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.
Nota: si obtiene un comando que no se encuentra mientras ejecuta telnet, entonces necesita instalar telnet como expliqué aquí.
En la mayoría de los escenarios, telnet debería ayudar. Sin embargo, si necesita alguna otra opción, aquí hay algunas alternativas de telnet.
ncat or nc
Ncat (también conocido como nc) es una poderosa utilidad de red con muchas características como vincular y aceptar una conexión, ejecutar comandos de forma remota, escribir y leer datos, etc. Funciona en IPv4 e IPv6, ambos.
Para hacer una prueba simple para comprobar si el puerto está abierto o no, ejecutará lo siguiente.
nc -vz $HOSTNAME $PORT
Tomemos un ejemplo de prueba del 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 se mencionó, también puede usar nc
para vincular la conexión a escuchar en un puerto en particular. Esto puede ser útil cuando no tiene servicios reales en ejecución pero desea asegurarse de que exista conectividad.
Para comenzar 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 trabaja como ingeniero web o, a menudo, se ocupa de problemas relacionados con la web, wget
es tu amigo. Probar usando wget es sencillo.
wget $URL
A continuación, se muestra un ejemplo de herramientas de prueba.
[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 muestra conectado significa que no hay problema de conectividad.
Echa un vistazo a esto para ver algunos de los ejemplos de comandos wget.
curl
A rizo es una herramienta multiusos.
¿Sabe que puede hacer telnet a un puerto usando curl?
Bien ahora lo sabes.
curl -v telnet://$IP:$PORT
El siguiente es 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 un puerto de escucha o un problema de firewall, verá que intenta ...
[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. Admite múltiples protocolos: HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, etc.
nmap
Una herramienta popular con cientos de funciones. A menudo, esto 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 puerto de prueba 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 ve abierto significa que la conexión está bien. Y, si se filtra el estado, eso significa que la conectividad no existe.
Ping
Uno de los comandos más utilizados es comprobar si un host remoto responde a ICMP ECHO_REQUEST o no. Tenga en cuenta que es posible que esto no le brinde resultados precisos cuando ICMP está bloqueado en la red remota. cortafuegos. Suponiendo que ese no es el caso, puede hacer ping al punto final de red IPv4 o IPv4 como se muestra 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 falla 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 punto final es compatible con IPv6, puede utilizar el ping6
comando como abajo.
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 usar el herramienta de ping en línea.
Conclusión
telnet está desapareciendo en la última versión de Linux. Gracias a la alternativa telnet anterior.
Si es nuevo en Linux y desea aprender, consulte este Curso Udemy.