Jak zjistit, zda je port na vzdáleném nebo místním hostiteli otevřený?
sobes.tech AI
Odpověď od AI
Pro kontrolu otevřeného portu na vzdáleném nebo místním hostiteli lze použít následující způsoby:
-
netcat(nc): Univerzální nástroj pro práci se síťovými připojeními.- Místní hostitel:
nc -zv localhost <port> - Vzdálený hostitel:
nc -zv <vzdálený_host> <port>
Volby
-z(zero-I/O mode) a-v(verbose) se používají pro skenování bez odesílání dat a pro zobrazení podrobností. - Místní hostitel:
-
telnet: Protokol pro vzdálené řízení, který lze použít k ověření spojení na daném portu.- Místní hostitel:
telnet localhost <port> - Vzdálený hostitel:
telnet <vzdálený_host> <port>
Pokud se spojení naváže (obvykle se objeví výzva nebo prázdný řádek), je port otevřený. Zavřít lze stiskem
Ctrl+], potéquita Enter. - Místní hostitel:
-
nmap: Výkonný skener portů. Vyžaduje instalaci.- Místní hostitel:
nmap -p <port> localhost - Vzdálený hostitel:
nmap -p <port> <vzdálený_host>
Výstup ukáže stav portu:
open,closednebofiltered. - Místní hostitel:
-
< /dev/tcpnebo< /dev/udp(v Bash): V Bash lze použít souborové deskriptory k vytvoření TCP nebo UDP spojení.- Místní hostitel (TCP):
timeout 1 bash -c "cat < /dev/tcp/localhost/<port>" 2>/dev/null && echo "Port <port> is open" || echo "Port <port> is closed" - Vzdálený hostitel (TCP):
timeout 1 bash -c "cat < /dev/tcp/<vzdálený_host>/<port>" 2>/dev/null && echo "Port <port> is open" || echo "Port <port> is closed"
timeoutse používá k zabránění zaseknutí, pokud je port uzavřen.2>/dev/nullskrývá chybové výstupy. Tento způsob nefunguje pro UDP. - Místní hostitel (TCP):
-
Python: Použití socketů k ověření.
import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) # Nastavení časového limitu try: s.connect((host, port)) print(f"Port {port} on {host} is open") except (socket.timeout, ConnectionRefusedError): print(f"Port {port} on {host} is closed or filtered") finally: s.close() # Příklad použití check_port("localhost", 80) # Kontrola místního hostitele check_port("google.com", 443) # Kontrola vzdáleného hostitele
Volba metody závisí na dostupných nástrojích, operačním systému a specifikách úkolu. netcat a nmap jsou jedny z nejflexibilnějších a nejvíce informativních nástrojů.