Kaip patikrinti, ar prievadas yra atidarytas nuotoliniame arba vietiniame kompiuteryje?
sobes.tech AI
Atsakymas iš AI
Norint patikrinti atvėrusįjį prievadą nuotoliniame arba vietiniame kompiuteryje, galima naudoti šiuos būdus:
-
netcat(nc): Universalus įrankis tinklo ryšiams.- Vietiniam kompiuteriui:
nc -zv localhost <prievadas> - Nuotoliniam kompiuteriui:
nc -zv <nuotolinis_kompiuteris> <prievadas>
Parinktys
-z(nulis-I/O režimas) ir-v(detalus) naudojamos skenavimui be duomenų siuntimo ir išsamiai informacijai. - Vietiniam kompiuteriui:
-
telnet: Nuotolinio valdymo protokolas, kuris gali būti naudojamas patikrinti jungtį per nurodytą prievadą:- Vietiniam kompiuteriui:
telnet localhost <prievadas> - Nuotoliniam kompiuteriui:
telnet <nuotolinis_kompiuteris> <prievadas>
Jei jungtis sėkminga (dažniausiai pasirodo užklausos arba tuščia eilutė), prievadas atviras. Uždaryti galima paspaudus
Ctrl+], tadaquitir Enter. - Vietiniam kompiuteriui:
-
nmap: Galingas prievadų skeneris. Reikalauja įdiegimo:- Vietiniam kompiuteriui:
nmap -p <prievadas> localhost - Nuotoliniam kompiuteriui:
nmap -p <prievadas> <nuotolinis_kompiuteris>
Išvestis parodys prievado būseną:
open,closedarbafiltered. - Vietiniam kompiuteriui:
-
< /dev/tcparba< /dev/udp(Bash): Bash galima naudoti failų deskriptorius TCP arba UDP ryšiams kurti:- Vietiniam kompiuteriui (TCP):
timeout 1 bash -c "cat < /dev/tcp/localhost/<prievadas>" 2>/dev/null && echo "Port <prievadas> yra atviras" || echo "Port <prievadas> yra uždarytas" - Nuotoliniam kompiuteriui (TCP):
timeout 1 bash -c "cat < /dev/tcp/<nuotolinis_kompiuteris>/<prievadas>" 2>/dev/null && echo "Port <prievadas> yra atviras" || echo "Port <prievadas> yra uždarytas"
timeoutnaudojamas siekiant išvengti užšalimo, jei prievadas uždarytas.2>/dev/nullpaslepia klaidų išvestį. Šis metodas neveikia UDP. - Vietiniam kompiuteriui (TCP):
-
Python: Naudojant soketus patikrinimui:
import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) # Nustatyti laiką try: s.connect((host, port)) print(f"Port {port} on {host} yra atviras") except (socket.timeout, ConnectionRefusedError): print(f"Port {port} on {host} yra uždarytas arba filtruotas") finally: s.close() # Pavyzdys naudojimo check_port("localhost", 80) # Vietinio kompiuterio patikrinimas check_port("google.com", 443) # Nuotolinio kompiuterio patikrinimas
Pasirinkimas priklauso nuo turimų įrankių, operacinės sistemos ir užduoties specifikos. netcat ir nmap yra vieni iš lankstesnių ir informatyviausių įrankių.