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.
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.
Antworten:
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
Du hast
TCP Listen: http://www.allscoop.com/tcp-listen.php
Port Peeker: http://www.linklogger.com/portpeeker.htm
Microsofts Befehlszeilenprogramm Portqry.exe
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.exe
oder portqry.exe
fü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.
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.
Die Netpipes Tools Wasserhahn und Schlauch haben mir immer gut gedient, vereinfacht stdin
und stdout
fü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 - .
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.
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!
Sie können die Windows-Version von netcat verwenden :
nc -l -v localhost -p 7
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;
polyglot-listener.bat 1234
, um den Port abzuhören 1234
.Die Idee ist, die jsc.exe
ausfü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.
TCPView aus dem Sysinternals-Toolkit bietet einen sehr schönen Überblick.