Dienstprogramm zum Öffnen des TCP-Ports für den Empfangsstatus

24

Gibt es ein grundlegendes Dienstprogramm zum Öffnen eines bestimmten Netzwerk-TCP-Ports auf meinem Computer?

Ich muss testen, wie mein Programm mit Ports im Empfangsstatus umgeht.

Vic
quelle
besetzen Sie meinen, lassen Sie einen bestimmten TCP-Port auf Empfangsstatus entgegengesetzt?
Diogo
1
Diese Frage ergibt keinen Sinn. Ein Port ist standardmäßig "geschlossen", wenn er nicht abgehört wird.
Ingmar Hupp
2
Dies ist, was ich will - ein Dienstprogramm, das den Port meiner Wahl abhört und nichts tut.
Vic

Antworten:

10

netcat sollte machen was du willst. Lassen Sie es auf Ihrem Computer hören und STDOUT etwas mitteilen:

nc -4 -k -l -v localhost 1026

Verwenden Sie -k nicht, wenn die Verbindung beendet werden soll

Florenz Kley
quelle
2
Es funktioniert unter Windows? Ich habe diesen Befehl hier ausprobiert und er wurde nicht erkannt.
Diogo
4
Ich wollte dies als meine Antwort posten! = p Sie können Netcat hier herunterladen: joncraton.org/files/nc111nt.zip Es ist ein ziemlich altes Tool, aber ich denke, die Leute haben nicht erkannt, wie nützlich es sein kann.
Cutrightjm
@Diogo Rocha Sie wissen, dass es sich um ein heruntergeladenes Programm handelt, richtig?
Cutrightjm
3
Ich wusste es nicht ... Es wäre schön, wenn die Antwort den Link zum Download bereitstellen würde ...
Diogo
@DiogoRocha - Ich habe den falschen Link zu Netcat entfernt. Die offizielle Seite befindet sich bei sourceforge. Es ist Teil von so ziemlich jedem Paket-Repository da draußen, also habe ich es seit 10 Jahren in Folge nicht mehr von der Quelle aus installiert.
Florenz Kley
6

Du hast

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

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

Microsofts Befehlszeilenprogramm Portqry.exe

nelson.t.cunha
quelle
1
TCP listen - nettes kleines GUI-Programm ohne Installation! ;-)
hoggar
1
Port Peeker, Standort existiert nicht mehr oder ist nicht erreichbar (Jan 2019)
shawty
Los geht's, der neueste Schnappschuss von InternetArchive: web.archive.org/web/20180616055542/http://www.linklogger.com/… Einige Download-Links funktionieren noch.
nelson.t.cunha
4

Versuchen Sie es mit iperf. Es gibt eine Version für Windows. Sie können es einfach so ausführen iperf -s -p 1234, und es lauscht auf Port 1234. Sie können dann von einem Remote-Computer aus eine Verbindung zu diesem Port herstellen, indem Sie Folgendes ausführen :

telnet 192.168.1.1 1234

iperf -c 192.168.1.1 1234

portqry -n 192.168.1.1 -e 1234

Sie müssten iperf.exeoder portqry.exefür die letzten beiden erhalten. iPerf ist nicht speziell für diese Aufgabe konzipiert, eignet sich jedoch hervorragend zur Fehlerbehebung bei Konnektivität, Bandbreitenverfügbarkeit, Belastungstests usw.

reggaethecat
quelle
2

Es sieht so aus, als würde dieses Dienstprogramm genau das tun, was Sie wollen, und sogar die empfangenen Daten anzeigen, wenn Sie möchten: http://www.drk.com.ar/builder.php

Es hat eher eine GUI als nur eine Kommandozeile, was für manche von Vorteil ist.

Jon
quelle
1

Die Netpipes Tools Wasserhahn und Schlauch haben mir immer gut gedient, vereinfacht stdinund stdoutfür meine Programme über das Netzwerk nutzbar gemacht.

Ähnlich wie Netcat .

Ubuntu Beschreibung:

Das Paket netpipes ermöglicht die Verwendung von TCP / IP-Streams in Shell-Skripten. Es kann auch den Client / Server-Code vereinfachen, indem der Programmierer alle langwierigen Programmierbits für Sockets überspringen und sich auf das Schreiben eines Filters oder eines anderen Dienstes konzentrieren kann.

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 - .
Marcos
quelle
Danke, aber ich brauche es für Windows ...
Vic
Nicht einmal Cygwin?
Marcos
0

Dies ist die perfekte Anwendung für Wireshark , einen Paket- und Protokollanalysator, der sich zwischen dem Windows / Linux-Netzwerkstapel befindet.

Damit können Sie alle TCP / UDP-Pakete anzeigen, die von Ihrem gesamten Computer empfangen werden, unabhängig vom Port. Sie können das Programm auch anweisen, zur weiteren Analyse nur Pakete herauszufiltern, die über einen bestimmten Port gesendet wurden. Der Vorteil von Wireshark ist, dass es sehr detaillierte Nachrichten für jedes Paket bereitstellt - Quelle, Ziel, Port, MAC-Adressen, Daten, Daten, Prüfsummen usw. Sehr nützliches (und kostenloses!) Tool.

Durchbruch
quelle
6
humor me - seit wann verhält sich wireshark eigentlich wie ein service, der an einem port lauscht? Es zeichnet den Verkehr passiv auf.
Florenz Kley
@FlorenzKley Sie haben Recht, das stimmt nicht ... Ich habe seine Frage dahingehend interpretiert, wie der Netzwerkverkehr auf einem bestimmten Port angezeigt werden soll, da es für das OP nicht trivial wäre, nur zwei Kopien seines Programms unter auszuführen einmal am selben Port (um zu sehen, was passiert, wenn ein anderes Programm den Port bereits abhört)?
Durchbruch
0

TCP Listen ist meiner Meinung nach die BESTE Antwort. Ich habe mir TCP Builder angesehen und mochte ihn, aber Sie BRAUCHEN Administratorrechte, um diese App auszuführen. Sie benötigen sie NICHT mit dem TCP-Listener. Außerdem müssen Sie TCP Builder installieren oder eine Reihe von Dateien entpacken und kopieren, während TCP Listener 1 ist EXE, nichts mehr.

Der TCP-Listener benötigte auch keine Administratorrechte, und als ich ihn über AV scannte, sagte nichts, dass er bösartig sei. Builder hatte 1 AV auf Virustotal, sagte, es sei schlecht, aber es stellte sich als falsch positiv heraus (ich hoffe) :)

Ich habe Builder zwar dazu gebracht, Sans-Admin-Rechte auszuführen, aber es konnte den Socket nicht einbinden, während Listener dies konnte. Nachdem ich alle Tests durchgeführt hatte, konnte ich nur die 1-Datei von Listener löschen und alles war wie zuvor.

Netcat wäre nett gewesen, aber ich habe keine Version gefunden, die mit Server 2012 oder höher funktionieren würde. Um zu testen, ob die Netzwerkfirewall und die lokalen Firewalls die Verbindung zu bestimmten TCP-Ports zulassen, scheint der TCP-Listener das beste Tool für diesen Job zu sein.

Genießen!

David Howard
quelle
0

Sie können die Windows-Version von netcat verwenden :

nc -l -v localhost -p 7
netawater
quelle
Hinweis: Manche Malware- oder Firewall-Sicherheitssoftware kennzeichnet diese Datei möglicherweise als Virus. Aufgrund der Funktionen dieses Programms ist es möglicherweise in Malware-Programmen enthalten, es handelt sich jedoch nicht um Malware selbst. Ab dem 04.10.2017 wird diese Datei von VirusTotal als sauber gescannt (von nur einem Scanner als "Riskware" gekennzeichnet). Siehe den Community-Hinweis auf der URL und den Datei-Scan selbst
Mokubai
0

Ich mag Netcat unter Windows, aber das Herunterladen und Installieren von Inhalten aus dem Internet ist nicht immer möglich. Möglicherweise richten Sie einen Produktionsserver ein und möchten Ihre Firewall-Regeln testen, bevor Sie (und ohne) etwas installieren.

Die meisten Windows-Server haben einen JScript.net-Compiler. Sie können eine einfache alte Windows-Batchdatei schreiben, die auch ein gültiges JScript.net-Programm ist, ein polyglottes Programm .

tl; dr;

Die Idee ist, die jsc.exeausführbare Datei auf Ihrem System zu finden:

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

Und verwenden Sie es, um die Batch-Datei zu kompilieren.

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

Die Batch-Datei enthält grundlegenden JScript.Net-Code, mit dem ein synchroner Socket erstellt, abgehört, die Verbindung akzeptiert und alles gelöscht wird, was dazu kommt:

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

Das kompilierte Programm wird gespeichert als %APPDATA%\listener.exe. Es kann für sich alleine laufen, auf einen Server kopiert werden, aber das Kompilieren aus der Polyglot-Batch-Datei funktioniert unabhängig von Ihren Sicherheitslücken.

ixe013
quelle
-2

TCPView aus dem Sysinternals-Toolkit bietet einen sehr schönen Überblick.

Patrik Mihalčin
quelle
Ermöglicht dieses Tool das Öffnen des TCP-Ports auf dem Computer, auf dem es ausgeführt wird?
Pimp Juice IT
Mir ist das nicht bewusst. Es ist nur eine Ansicht, wie der Name schon sagt
Patrik Mihalčin
Aber die Frage ist / war: "Gibt es ein grundlegendes Dienstprogramm zum Öffnen eines bestimmten Netzwerk-TCP-Ports auf meinem Computer?". In TCPView können Sie eine Verbindung schließen, aber das ist das einzige, was im System geändert werden kann.
Peter Mortensen