Cum verifici dacă un port este deschis pe un host remote sau local?
sobes.tech AI
Răspuns de la AI
Pentru a verifica dacă un port este deschis pe un host remote sau local, puteți folosi următoarele metode:
-
netcat(nc): Un instrument universal pentru lucrul cu conexiuni de rețea.- Host local:
nc -zv localhost <port> - Host remote:
nc -zv <host_remote> <port>
Opțiunile
-z(mod zero-I/O) și-v(detaliat) sunt folosite pentru scanare fără a trimite date și pentru afișarea informațiilor detaliate. - Host local:
-
telnet: Protocol pentru management de la distanță, care poate fi folosit pentru a verifica conexiunea pe portul specificat.- Host local:
telnet localhost <port> - Host remote:
telnet <host_remote> <port>
Dacă conexiunea se stabilește (de obicei apare o invitație sau un rând gol), portul este deschis. Se poate închide apăsând
Ctrl+], apoiquitși Enter. - Host local:
-
nmap: Un scanner de porturi puternic. Necesită instalare.- Host local:
nmap -p <port> localhost - Host remote:
nmap -p <port> <host_remote>
Ieșirea va arăta starea portului:
open,closedsaufiltered. - Host local:
-
< /dev/tcpsau< /dev/udp(în Bash): În Bash, se pot folosi descriptorii de fișiere pentru a crea conexiuni TCP sau UDP.- Host local (TCP):
timeout 1 bash -c "cat < /dev/tcp/localhost/<port>" 2>/dev/null && echo "Port <port> este deschis" || echo "Port <port> este închis" - Host remote (TCP):
timeout 1 bash -c "cat < /dev/tcp/<host_remote>/<port>" 2>/dev/null && echo "Port <port> este deschis" || echo "Port <port> este închis"
timeouteste folosit pentru a preveni blocarea dacă portul este închis.2>/dev/nullascunde erorile. Această metodă nu funcționează pentru UDP. - Host local (TCP):
-
Python: Utilizarea socket-urilor pentru verificare.
import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) # Setează timeout try: s.connect((host, port)) print(f"Portul {port} pe {host} este deschis") except (socket.timeout, ConnectionRefusedError): print(f"Portul {port} pe {host} este închis sau filtrat") finally: s.close() # Exemplu de utilizare check_port("localhost", 80) # Verificare host local check_port("google.com", 443) # Verificare host remote
Alegerea metodei depinde de instrumentele disponibile, sistemul de operare și specificul sarcinii. netcat și nmap sunt unele dintre cele mai flexibile și informative instrumente.