Jak sprawdzić, czy port jest otwarty na zdalnym lub lokalnym hoście?
sobes.tech AI
Odpowiedź od AI
Aby sprawdzić, czy port jest otwarty na zdalnym lub lokalnym hoście, można użyć następujących metod:
-
netcat(nc): Uniwersalne narzędzie do pracy z połączeniami sieciowymi.- Lokalny host:
nc -zv localhost <port> - Zdalny host:
nc -zv <zdalny_hosta> <port>
Opcje
-z(tryb zero-I/O) i-v(verbose) służą do skanowania bez wysyłania danych i wyświetlania szczegółowych informacji. - Lokalny host:
-
telnet: Protokół do zdalnego zarządzania, który można użyć do sprawdzenia połączenia na wskazanym porcie.- Lokalny host:
telnet localhost <port> - Zdalny host:
telnet <zdalny_hosta> <port>
Jeśli połączenie zostanie nawiązane (zazwyczaj pojawia się zaproszenie lub pusty wiersz), port jest otwarty. Zamknąć można przez naciśnięcie
Ctrl+], potemquiti Enter. - Lokalny host:
-
nmap: Potężny skaner portów. Wymaga instalacji.- Lokalny host:
nmap -p <port> localhost - Zdalny host:
nmap -p <port> <zdalny_hosta>
Wyjście pokaże status portu:
open,closedlubfiltered. - Lokalny host:
-
< /dev/tcplub< /dev/udp(w Bash): W Bash można używać deskryptorów plików do tworzenia połączeń TCP lub UDP.- Lokalny host (TCP):
timeout 1 bash -c "cat < /dev/tcp/localhost/<port>" 2>/dev/null && echo "Port <port> jest otwarty" || echo "Port <port> jest zamknięty" - Zdalny host (TCP):
timeout 1 bash -c "cat < /dev/tcp/<zdalny_hosta>/<port>" 2>/dev/null && echo "Port <port> jest otwarty" || echo "Port <port> jest zamknięty"
timeoutsłuży do zapobiegania zawieszaniu się, jeśli port jest zamknięty.2>/dev/nullukrywa błędy. Ta metoda nie działa dla UDP. - Lokalny host (TCP):
-
Python: Użycie socketów do sprawdzenia.
import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) # Ustaw timeout try: s.connect((host, port)) print(f"Port {port} na {host} jest otwarty") except (socket.timeout, ConnectionRefusedError): print(f"Port {port} na {host} jest zamknięty lub filtrowany") finally: s.close() # Przykład użycia check_port("localhost", 80) # Sprawdzenie lokalnego hosta check_port("google.com", 443) # Sprawdzenie zdalnego hosta
Wybór metody zależy od dostępnych narzędzi, systemu operacyjnego i specyfiki zadania. netcat i nmap są jednymi z najbardziej elastycznych i informacyjnych narzędzi.