Ich habe keinen Zugriff auf netcat
oder nmap
so, ich versuche, bash
und die /dev/udp/
speziellen Dateien zu verwenden, um Ports zu testen.
Ich könnte etwas machen wie:
echo "" > /dev/udp/example.com/8000
Ist $?
aber immer 0
bei Verwendung von UDP. Ich nehme an, das liegt daran, dass der Rückgabewert des echo ""
Befehls korrekt ist.
Ich versuche im Grunde zu replizieren, was ich kann nmap
und netcat
:
nmap -sU -p 8000 example.com | grep open >/dev/null && echo 'open'
nc -z -u example.com 8000 && echo 'open'
Wie würde ich das machen /dev/udp
?
bash
networking
devices
Belmin Fernandez
quelle
quelle
Antworten:
Für TCP nur überprüfen
$?
. Wenn die Verbindung fehlschlägt,$?
wird nicht0
:Es wird einige Zeit dauern,
bash
bis Sie feststellen, dass die Verbindung fehlgeschlagen ist. Sie können Timeout verwenden , um Folgendes auszulösenbash
:Udp port zu testen ist komplexer.
Genau genommen gibt es bei udp keinen offenen Zustand (natürlich ist udp ein zustandsloses Protokoll). Es gibt nur zwei Zustände mit udp, die zuhören oder nicht . Ist dies nicht der Fall, erhalten Sie ein ICMP-Ziel, das nicht erreichbar ist .
Leider lassen Firewall oder Router diese ICMP-Pakete häufig fallen, sodass Sie nicht sicher sind, welchen Status der UDP-Port hat.
quelle
Im Allgemeinen können Sie nicht.
Im Gegensatz zu TCP ist UDP verbindungslos. Sie können nicht erkennen, dass ein Port offen ist, indem Sie einfach eine Do-Nothing-Verbindung zu ihm herstellen, wie Sie es mit TCP können. Stattdessen müssen Sie Daten an den Port senden, um zu sehen, was passiert, und die in der realen Welt implementierten Details von UDP erschweren die Interpretation der Ergebnisse. Selbst hochentwickelte Tools auf Paketebene wie
nmap
können nicht mit Sicherheit sagen, ob ein Programm einen bestimmten UDP-Port abhört.nmap
klassifiziert UDP-Ports in drei Gruppen:nmap
nur nicht herausgefunden hat, wie man eine Antwort bekommt. Vielleicht hatte der Benutzer gerade Pech und alle Pakete gingen während des Transports verloren.quelle
nmap
. Vielen Dank, das klärt viel Verwirrung.