Ako skontrolovať, či je port otvorený na vzdialenom alebo lokálnom hostiteľovi?
sobes.tech AI
Odpoveď od AI
Pre kontrolu otvoreného portu na vzdialenom alebo lokálnom hostiteľovi môžete použiť nasledujúce spôsoby:
-
netcat(nc): Univerzálny nástroj na prácu so sieťovými spojeniami.- Lokálny hostiteľ:
nc -zv localhost <port> - Vzdialený hostiteľ:
nc -zv <vzdialený_host> <port>
Voľby
-z(zero-I/O mode) a-v(verbose) sa používajú na skenovanie bez odosielania dát a na zobrazenie podrobností. - Lokálny hostiteľ:
-
telnet: Protokol na vzdialené riadenie, ktorý možno použiť na overenie spojenia na danom porte.- Lokálny hostiteľ:
telnet localhost <port> - Vzdialený hostiteľ:
telnet <vzdialený_host> <port>
Ak sa spojenie nadviaže (zvyčajne sa objaví výzva alebo prázdny riadok), je port otvorený. Zavrieť ho možno stlačením
Ctrl+], potomquita Enter. - Lokálny hostiteľ:
-
nmap: Výkonný skener portov. Vyžaduje inštaláciu.- Lokálny hostiteľ:
nmap -p <port> localhost - Vzdialený hostiteľ:
nmap -p <port> <vzdialený_host>
Výstup ukáže stav portu:
open,closedalebofiltered. - Lokálny hostiteľ:
-
< /dev/tcpalebo< /dev/udp(v Bash): V Bash možno použiť súborové deskriptory na vytvorenie TCP alebo UDP spojení.- Lokálny hostiteľ (TCP):
timeout 1 bash -c "cat < /dev/tcp/localhost/<port>" 2>/dev/null && echo "Port <port> is open" || echo "Port <port> is closed" - Vzdialený hostiteľ (TCP):
timeout 1 bash -c "cat < /dev/tcp/<vzdialený_host>/<port>" 2>/dev/null && echo "Port <port> is open" || echo "Port <port> is closed"
timeoutsa používa na zabránenie zaseknutiu, ak je port zatvorený.2>/dev/nullskrýva chybové výstupy. Tento spôsob nefunguje pre UDP. - Lokálny hostiteľ (TCP):
-
Python: Použitie socketov na overenie.
import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) # Nastavenie timeoutu 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() # Príklad použitia check_port("localhost", 80) # Kontrola lokálneho hostiteľa check_port("google.com", 443) # Kontrola vzdialeného hostiteľa
Výber metódy závisí od dostupných nástrojov, operačného systému a špecifík úlohy. netcat a nmap sú jedny z najflexibilnejších a najviac informatívnych nástrojov.