Utilitaire pour ouvrir le port TCP pour écouter l'état


24

Existe-t-il un utilitaire de base pour ouvrir un port TCP réseau spécifique sur ma machine?

J'ai besoin de tester comment mon programme gère les ports en état d'écoute.


occupez-vous de laisser un port TCP spécifique ouvert sur l'état d'écoute?
Diogo

1
Cette question n'a aucun sens. Un port est "fermé" par défaut quand rien ne l'écoute.
Ingmar Hupp

2
C'est ce que je veux - un utilitaire qui écoutera sur le port de mon choix et ne fera rien.
Vic

Réponses:


10

netcat devrait faire ce que vous voulez. Faites-le écouter sur votre machine et faire écho à STDOUT:

nc -4 -k -l -v localhost 1026

lorsque vous souhaitez qu'il se ferme à la fin de la connexion, n'utilisez pas -k


2
Cela fonctionne sur Windows ??? J'ai essayé cette commande ici et elle n'a pas été reconnue.
Diogo

4
J'allais poster ceci comme ma réponse! = p Vous pouvez télécharger netcat ici: joncraton.org/files/nc111nt.zip C'est un outil assez ancien, mais je pense que les gens n'ont pas réalisé à quel point il peut être utile.
cutrightjm

@Diogo Rocha Vous savez que c'est un programme téléchargé, n'est-ce pas?
cutrightjm

3
Je ne savais pas ... Ce serait bien si le répondeur poste le lien pour le télécharger ensuite ...
Diogo

@DiogoRocha - J'ai supprimé le faux lien vers netcat. Le site officiel est à sourceforge. Cela fait partie de presque tous les référentiels de packaging, donc je n'ai pas installé depuis la source pendant 10 ans d'affilée.
Florenz Kley

6

Vous avez

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

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

Portqry.exe, l'utilitaire de ligne de commande de Microsoft


1
TCP écouter - joli petit programme GUI sans installation! ;-)
hoggar

1
Port Peeker, le site n'existe plus ou n'est pas accessible (janvier 2019)
shawty

Voilà, le dernier instantané d'InternetArchive: web.archive.org/web/20180616055542/http://www.linklogger.com/… Certains liens de téléchargement fonctionnent toujours.
nelson.t.cunha

4

Essayez iperf. Il existe une version pour Windows. Vous pouvez simplement l'exécuter comme iperf -s -p 1234, et il écoutera sur le port 1234. Vous pouvez ensuite vous connecter à ce port à partir d'une machine distante en faisant quelque chose comme:

telnet 192.168.1.1 1234

iperf -c 192.168.1.1 1234

portqry -n 192.168.1.1 -e 1234

Vous auriez besoin d'obtenir iperf.exeou portqry.exepour les deux derniers. iPerf n'est pas strictement conçu pour cette tâche, mais il est idéal pour dépanner la connectivité, la disponibilité de la bande passante, les liens de test de stress, etc.


2

Il semble que cet utilitaire fera exactement ce que vous voulez, même en affichant les données reçues si vous le souhaitez: http://www.drk.com.ar/builder.php

Il a une interface graphique plutôt qu'une simple ligne de commande, un avantage pour certains.


1

Le robinet et le tuyau des outils netpipes m'ont toujours bien servi, simplifiant et que mes programmes utilisent sur le réseau.stdinstdout

Similaire à netcat .

Description d'Ubuntu:

Le package netpipes rend les flux TCP / IP utilisables dans les scripts shell. Il peut également simplifier le code client / serveur en permettant au programmeur d'ignorer tous les bits de programmation fastidieux liés aux sockets et de se concentrer sur l'écriture d'un filtre ou d'un autre service.

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 - .

Merci, mais j'en ai besoin pour Windows ...
Vic

Pas même Cygwin?
Marcos

0

C'est l'utilisation parfaite pour Wireshark , un analyseur de paquets et de protocoles qui se trouve entre la pile de mise en réseau Windows / Linux.

Il vous permettra de visualiser tous les paquets TCP / UDP reçus par l'ensemble de votre machine, quel que soit le port. Vous pouvez également demander au programme de filtrer uniquement les paquets envoyés sur un certain port pour une analyse plus approfondie. L'avantage de Wireshark est qu'il fournit des messages très détaillés pour chaque paquet - source, destination, port, adresses MAC, données, dates, sommes de contrôle, etc. Outil très utile (et gratuit!).


6
me faire plaisir - depuis quand quand Wireshark se comporte-t-il comme un service écoutant sur un port? Il enregistre passivement le trafic.
Florenz Kley

@FlorenzKley vous avez raison, ce n'est pas le cas ... J'ai interprété sa question comme comment afficher le trafic réseau sur un certain port, car ne serait-il pas trivial pour l'OP de simplement exécuter deux copies de son programme à une fois sur le même port (pour voir ce qui se passe si un autre programme écoute déjà sur le port)?
Percée du

0

TCP Listen est la meilleure réponse à mon humble avis. J'ai regardé et aimé TCP Builder, mais vous AVEZ BESOIN de droits d'administrateur pour exécuter cette application, vous n'en avez PAS besoin avec l'écouteur TCP, et vous devez également installer TCP Builder, ou décompresser et copier un tas de fichiers, tandis que TCP Listener est 1 EXE, rien de plus.

TCP Listener n'avait pas non plus besoin de droits d'administrateur, et lorsque je l'ai analysé, rien ne disait qu'il était malveillant. Le constructeur avait 1 AV sur Virustotal qui disait que c'était mauvais, mais il s'est avéré être un faux positif (j'espère) :)

Bien que j'ai obtenu que Builder exécute les droits sans administrateur, il ne pouvait pas accrocher le socket alors que Listener le pouvait. Une fois que j'ai fait tous mes tests, je pouvais simplement supprimer le 1 fichier de Listener et tout était comme avant.

Netcat aurait été bien, mais je n'ai pas trouvé de version qui fonctionnerait avec 2012 ou une version ultérieure du serveur. Ainsi, pour tester complètement si le pare-feu réseau et les pare-feu locaux permettent à des ports TCP spécifiques de se connecter, l'écouteur TCP semble être le meilleur outil pour ce travail.

Prendre plaisir!


0

Vous pouvez utiliser la version Windows de netcat :

nc -l -v localhost -p 7

Remarque: certains logiciels malveillants ou pare-feu peuvent signaler ce fichier comme un virus. En raison de ce que ce programme peut faire, il a peut-être été inclus dans les programmes malveillants, mais ce n'est pas un logiciel malveillant lui-même et depuis le 2017-10-04, ce fichier est analysé comme propre par VirusTotal (marqué comme "riskware" par un seul scanner). Voir la note de la communauté sur l'url et l' analyse de fichier elle
Mokubai

0

J'aime netcat sous Windows, mais télécharger et installer des trucs depuis Internet n'est pas toujours possible. Peut-être que vous configurez un serveur de production et que vous souhaitez tester vos règles de pare-feu avant (et sans) installer quoi que ce soit.

La plupart (tous?) Des serveurs Windows ont un compilateur JScript.net. Vous pouvez écrire un ancien fichier batch Windows simple qui est également un programme JScript.net valide, un programme polyglotte .

tl; dr;

L'idée est de trouver l' jsc.exeexécutable sur votre système:

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

Et utilisez-le pour compiler le fichier de commandes.

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

Le fichier de commandes contient du code JScript.Net de base qui crée un socket synchrone, l'écoute, accepte la connexion et supprime tout ce qui en découle:

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();  
}

Le programme compilé sera enregistré sous %APPDATA%\listener.exe. Il peut s'exécuter seul, copié sur un serveur, mais la compilation à partir du fichier batch polyglotte fonctionnera indépendamment des obstacles de sécurité sur votre chemin.


-2

TCPView de la boîte à outils Sysinternals fournit une très belle vue d'ensemble.


Cet outil permet-il l'ouverture du port TCP sur la machine qu'il exécute?
Pimp Juice IT

Je ne suis pas au courant de ça .. c'est juste une vue comme son nom l'indique
Patrik Mihalčin

Mais la question est / était: "Existe-t-il un utilitaire de base pour ouvrir un port TCP réseau spécifique sur ma machine?". Dans TCPView, vous pouvez fermer une connexion, mais c'est la seule chose qui peut être modifiée dans le système.
Peter Mortensen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.