Utilidad para abrir el puerto TCP para escuchar el estado


24

¿Hay alguna utilidad básica para abrir un puerto TCP de red específico en mi máquina?

Necesito probar cómo mi programa maneja los puertos en estado de escucha.


¿Qué quiere decir con dejar que un puerto TCP específico se active en estado de escucha?
Diogo

1
Esta pregunta no tiene sentido. Un puerto está "cerrado" de forma predeterminada cuando no hay nada escuchando en él.
Ingmar Hupp

2
Esto es lo que quiero: alguna utilidad que escuchará en el puerto de mi elección y no hará nada.
Vic

Respuestas:


10

netcat debe hacer lo que quieras. Haga que escuche en su máquina y haga eco de cosas en STDOUT:

nc -4 -k -l -v localhost 1026

cuando desee que se cierre cuando finalice la conexión, no use -k


2
¿Funciona en Windows? Intenté este comando aquí y no fue reconocido.
Diogo

44
¡Iba a publicar esto como mi respuesta! = p Puede descargar netcat aquí: joncraton.org/files/nc111nt.zip Es una herramienta bastante antigua, pero creo que la gente no se dio cuenta de lo útil que puede ser.
cutrightjm

@Diogo Rocha Sabes que es un programa descargado, ¿correcto?
cutrightjm

3
No lo sabía ... Sería bueno que el equipo publicara el enlace para descargarlo ...
Diogo

@DiogoRocha: eliminé el enlace falso a netcat. El sitio oficial está en sourceforge. Es parte de casi todos los repositorios de empaque que existen, por lo que no he instalado desde el origen durante 10 años seguidos.
Florenz Kley

6

Tienes

TCP Listen: http://www.allscoop.com/tcp-listen.php

Port Peeker: http://www.linklogger.com/portpeeker.htm

Utilidad de línea de comandos de Microsoft Portqry.exe


1
TCP listen: ¡pequeño y agradable programa GUI sin instalación! ;-)
hoggar

1
Puerto Peeker, sitio ya no existe o no es accesible (Enero 2019)
Shawty

Aquí tienes, la última instantánea de InternetArchive: web.archive.org/web/20180616055542/http://www.linklogger.com/… Algunos enlaces de descarga siguen funcionando.
nelson.t.cunha

4

Prueba iperf. Hay una versión para Windows. Simplemente puede ejecutarlo como iperf -s -p 1234, y escuchará en el puerto 1234. Luego puede conectarse a ese puerto desde una máquina remota haciendo algo como:

telnet 192.168.1.1 1234

iperf -c 192.168.1.1 1234

portqry -n 192.168.1.1 -e 1234

Necesitaría obtener iperf.exeo portqry.exepara los dos últimos. iPerf no está estrictamente diseñado para esta tarea, pero es excelente para solucionar problemas de conectividad, disponibilidad de ancho de banda, enlaces de prueba de estrés, etc.


2

Parece que esta utilidad hará exactamente lo que desea, incluso mostrando los datos recibidos si lo desea: http://www.drk.com.ar/builder.php

Tiene una GUI en lugar de solo una línea de comando, una ventaja para algunos.


1

El grifo y la manguera de herramientas netpipes siempre me han servido bien, simplificando y para que mis programas los utilicen a través de la red.stdinstdout

Similar a netcat .

Descripción de Ubuntu:

El paquete netpipes hace que las transmisiones TCP / IP puedan utilizarse en scripts de shell. También puede simplificar el código cliente / servidor al permitir que el programador omita todos los tediosos bits de programación relacionados con los sockets y se concentre en escribir un filtro u otro servicio.

EXAMPLES
       This creates a TCP-IP socket on the local machine bound to port 3000.

       example$ faucet 3000 --out --verbose tar -cf - .

       Every  time  some process (from any machine) attempts to connect to port 3000 on this machine the faucet program will fork(2) a process and the child
       will exec(2) a

       tar -cf - .

Gracias, pero lo necesito para Windows ...
Vic

Ni siquiera Cygwin?
Marcos

0

Este es el uso perfecto para Wireshark , un analizador de paquetes y protocolos que se encuentra entre la pila de redes de Windows / Linux.

Le permitirá ver todos los paquetes TCP / UDP que recibe toda su máquina, independientemente del puerto. También puede indicarle al programa que filtre solo los paquetes enviados a través de un determinado puerto para su posterior análisis. La ventaja de Wireshark es que proporciona mensajes muy detallados para cada paquete: origen, destino, puerto, direcciones MAC, datos, fechas, sumas de verificación, etc. Herramienta muy útil (¡y gratuita!).


66
bromea, ¿desde cuándo Wireshark se comporta como un servicio que escucha en un puerto? Registra pasivamente el tráfico.
Florenz Kley

@FlorenzKley tienes razón, no ... Interpreté su pregunta como cómo ver el tráfico de red en un puerto determinado, ya que no sería trivial que el OP solo ejecute dos copias de su programa en una vez en el mismo puerto (para ver qué sucede si otro programa ya está escuchando en el puerto)?
Avance

0

TCP Listen es la MEJOR respuesta en mi humilde opinión. Miré y me gustó TCP Builder, pero NECESITAS derechos de administrador para ejecutar esa aplicación, NO los necesitas con TCP listener, y también necesitas instalar TCP Builder, descomprimir y copiar un montón de archivos, mientras que TCP Listener es 1 EXE, nada más.

TCP Listener tampoco necesitaba derechos de administrador, y cuando lo escaneé AV, nada dijo que fuera malicioso. Builder tenía 1 AV en Virustotal que decía que era malo, pero resultó ser un falso positivo (espero) :)

Si bien conseguí que Builder ejecutara sin derechos de administrador, no pudo conectar el socket mientras que Listener sí. Una vez que hice todas mis pruebas, pude eliminar el archivo 1 de Listener y todo fue como antes.

Netcat hubiera sido agradable, pero no encontré una versión que funcionara con el servidor 2012 o posterior. Entonces, para probar completamente si el firewall de la red y los firewalls locales permiten la conexión de puertos TCP específicos, TCP listener parece ser la mejor herramienta para este trabajo.

¡Disfrutar!


0

Puedes usar la versión de Windows de netcat :

nc -l -v localhost -p 7

Nota: algunos programas de seguridad de malware o firewall pueden marcar este archivo como un virus. Debido a lo que puede hacer este programa, es posible que se haya incluido en programas de malware, pero no es malware en sí mismo y, a partir de 2017-10-04, este archivo es escaneado como limpio por VirusTotal (marcado como "software de riesgo" por un solo escáner). Vea la nota de la comunidad en la url y el escaneo
Mokubai

0

Me gusta netcat en Windows, pero no siempre es posible descargar e instalar cosas de Internet. Quizás esté configurando un servidor de producción y quiera probar las reglas de su firewall antes (y sin) instalar nada.

La mayoría (¿todos?) De los servidores de Windows tienen un compilador JScript.net. Puede escribir un simple archivo por lotes de Windows antiguo que también sea un programa JScript.net válido, un programa políglota .

tl; dr;

La idea es encontrar el jsc.exeejecutable en su sistema:

for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d /o:-n "%SystemRoot%\Microsoft.NET\Framework\*jsc.exe"') do (
   set "jsc=%%v"
)

Y úselo para compilar el archivo por lotes.

"!jsc!" /nologo /out:"%APPDATA%\listener.exe" "%~dpsfnx0"

El archivo por lotes contiene código JScript.Net básico que crea un socket sincrónico, escúchalo, acepta la conexión y suelta todo lo que viene a él:

listener.Bind(localEndPoint);  
listener.Listen(10);  

// Start listening for connections.  
while (true) {  
    var data:byte[] = new byte[1024];

    Console.WriteLine("Waiting for a TCP connection on {0}:{1}...", ipAddress, port);  
    var handler = listener.Accept();  

    Console.WriteLine("Connected to {0}", handler.RemoteEndPoint);  

    try {
        // An incoming connection needs to be processed.  
        while (handler.Receive(data) > 0);  
    } finally {
        Console.WriteLine("Disconected\n");
    }

    handler.Shutdown(SocketShutdown.Both);  
    handler.Close();  
}

El programa compilado se guardará como %APPDATA%\listener.exe. Puede ejecutarse por sí solo, copiado en un servidor, pero la compilación del archivo por lotes políglota funcionará independientemente de cualquier obstáculo de seguridad en su camino.


-2

TCPView del kit de herramientas Sysinternals proporciona una visión general muy agradable.


¿Esta herramienta permite la apertura del puerto TCP en la máquina que está ejecutando?
Pimp Juice IT

No estoy al tanto de eso ... es solo una vista como su nombre lo sugiere
Patrik Mihalčin

Pero la pregunta es / fue: "¿Hay alguna utilidad básica para abrir un puerto TCP de red específico en mi máquina?". En TCPView puede cerrar una conexión, pero eso es lo único que se puede cambiar en el sistema.
Peter Mortensen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.