Wie überprüft man, ob ein Port auf einem entfernten oder lokalen Host offen ist?
sobes.tech KI
Antwort von AI
Um Port-Check auf einem entfernten oder lokalen Host kann mit den folgenden Methoden durchgeführt werden:
-
netcat(nc): Ein universelles Werkzeug für die Arbeit mit Netzwerkverbindungen.- Lokaler Host:
nc -zv localhost <Port> - Entferner Host:
nc -zv <entfernter_host> <Port>
Die Optionen
-z(Zero-I/O-Modus) und-v(verbose) werden verwendet, um ohne Datenübertragung zu scannen und detaillierte Informationen anzuzeigen. - Lokaler Host:
-
telnet: Ein Protokoll für die Fernsteuerung, das zur Überprüfung der Verbindung auf einem angegebenen Port verwendet werden kann.- Lokaler Host:
telnet localhost <Port> - Entferner Host:
telnet <entfernter_host> <Port>
Wenn die Verbindung hergestellt wird (normalerweise erscheint eine Eingabeaufforderung oder eine leere Zeile), ist der Port offen. Zum Schließen
Ctrl+], dannquitund Enter drücken. - Lokaler Host:
-
nmap: Ein leistungsstarker Port-Scanner. Erfordert Installation.- Lokaler Host:
nmap -p <Port> localhost - Entferner Host:
nmap -p <Port> <entfernter_host>
Die Ausgabe zeigt den Status des Ports:
open,closedoderfiltered. - Lokaler Host:
-
< /dev/tcpoder< /dev/udp(in Bash): In Bash können Dateideskriptoren verwendet werden, um TCP- oder UDP-Verbindungen herzustellen.- Lokaler Host (TCP):
timeout 1 bash -c "cat < /dev/tcp/localhost/<Port>" 2>/dev/null && echo "Port <Port> ist offen" || echo "Port <Port> ist geschlossen" - Entferner Host (TCP):
timeout 1 bash -c "cat < /dev/tcp/<entfernter_host>/<Port>" 2>/dev/null && echo "Port <Port> ist offen" || echo "Port <Port> ist geschlossen"
timeoutwird verwendet, um das Blockieren zu verhindern, falls der Port geschlossen ist.2>/dev/nullunterdrückt Fehlerausgaben. Diese Methode funktioniert nicht für UDP. - Lokaler Host (TCP):
-
Python: Verwendung von Sockets zur Überprüfung.
import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) # Timeout setzen try: s.connect((host, port)) print(f"Port {port} auf {host} ist offen") except (socket.timeout, ConnectionRefusedError): print(f"Port {port} auf {host} ist geschlossen oder gefiltert") finally: s.close() # Beispielnutzung check_port("localhost", 80) # Überprüfung des lokalen Hosts check_port("google.com", 443) # Überprüfung des entfernten Hosts
Die Wahl der Methode hängt von den verfügbaren Werkzeugen, dem Betriebssystem und der spezifischen Aufgabe ab. netcat und nmap sind einige der flexibelsten und informativsten Werkzeuge.