En determinadas ocasiones, es necesario saber si la comunicación TCP y/o UDP entre 2 equipos es correcta. En este breve tutorial os enseñaré como probar la comunicación bidireccional entre 2 equipos, usando TCP y UDP y utilizando un puerto cualquiera. Para poder realizar este tutorial, haremos uso de la "navaja suiza" del networking llamada: netcat.
⬇️ Compra en Amazon el hardware que utilizo ⬇️
- 💻 Ordenador Portátil: Descúbrelo aquí
- 🖥️🖥️ Monitores: Mis 2 súper monitores
- ⌨️ Teclado: Mini teclado + Lector DNIe
- 🖱️ Ratón: Mi ratón programable
- 🎧 Auriculares: Súper Auriculares TOP!
- 🖨️ Impresora: Mi fantástica impresora
- 🗄️ NAS Backup: Mi NAS para Backups
- 🔌 HUB USB: Mi HUB para puertos USB
- 📱 Smartphone: Mi Smartphone
- 📲 Tablet: Mi tablet para viajes
- ⌚ Smartwatch: Mi Smartwatch favorito
- 📹 Cámara deportiva: Mi cámara para deportes
¿Qué es NETCAT?
Netcat es una herramienta de red que permite a través de intérprete de comandos y con una sintaxis sencilla abrir puertos TCP/UDP en un HOST (quedando netcat a la escucha), asociar una shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete bash de Linux remotamente) y forzar conexiones UDP/TCP (útil por ejemplo para realizar rastreos de puertos o realizar transferencias de archivos bit a bit entre dos equipos). Fue originalmente desarrollada por Hobbit en 1996 y liberada bajo una licencia de software libre permisiva (no copyleft, similar a BSD, MIT) para UNIX. Posteriormente fue portada a Windows y Mac OS X entre otras plataformas. Existen muchos forks de esta herramienta que añaden características nuevas como GNU Netcat o Cryptcat.
Entre sus múltiples aplicaciones, es frecuente la depuración de aplicaciones de red. También es utilizada a menudo para abrir puertas traseras en un sistema.
1.- REQUISITOS
Aunque puedes hacer estas pruebas en una misma máquina, ya sea con Windows o con GNU/Linux, yo he optado por realizar las pruebas con 2 equipos:
- Windows 7 64 bits
- GNU/Linux Debian 8 64 bits
2.- EJECUTAR COMANDOS MYSQL DESDE BASH EN UNA LÍNEA
Para probar las comunicaciones TCP entre los 2 equipos, primero debemos arrancar netcat en modo "listen" (escucha) en uno de ellos. En mi caso he configurado netcat en modo "listen" en el equipo con Windows 7. Para ello basta con ejecutar el comando:
c:\netcat\nc.exe -l -v -p 2020
En el otro equipo con GNU/Linux, ejecutaremos netcat e introduciremos el puerto y la IP del equipo remoto, por ejemplo:
root@dns-server:~# nc 192.168.0.164 2020
Para probar si la comunicación funciona, basta con escribir un mensaje en cualquiera de los equipos. Si el mensaje llega al otro servidor es que el flujo TCP es correcto. A continuación se pueden ver las pruebas que he realizado en los 2 sentidos:
Mensaje TCP enviado desde GNU/Linux a Windows
Mensaje TCP recibido en Windows desde GNU/Linux
Mensaje TCP enviado desde Windows a GNU/Linux
Mensaje TCP recibido en GNU/Linux desde Windows
3.- PROBANDO CONEXIONES UDP EN AMBOS SENTIDOS
En algunas ocasiones, es necesario probar las comunicaciones UDP. Para ello usaremos netcat indicando que el modo será UDP con "-u". La forma de operar es exactamente la misma que con TCP del ejemplo anterior:
Mensaje UDP enviado desde GNU/Linux a Windows
Mensaje UDP recibido en Windows desde GNU/Linux
Mensaje UCP enviado desde Windows a GNU/Linux
Mensaje UCP recibido en GNU/Linux desde Windows
Aunque con netcat se puede realizar multitud de operaciones, en este pequeño tutorial solo explico la parte de la comprobación de comunicaciones, muy útil para saber si hay algún elemento que intermedio que está provocando la falta de comunicación.
ENJOY!