როგორ შემოწმდეს, გახსნილია თუ არა პორტი შორეულ ან ადგილობრივ ჰოსტზე?
sobes.tech AI
პასუხი AI-სგან
Հեռավոր կամ տեղական հոստի վրա բացված պորտը ստուգելու համար կարող եք օգտագործել հետևյալ մեթոդները:
-
netcat(nc): Ընդհանուր գործիք ցանցային կապերի համար:- Տեղական հոստի համար:
nc -zv localhost <պորտ> - Հեռավոր հոստի համար:
nc -zv <հեռավոր_հոստ> <պորտ>
Ընտրանքներ
-z(զրո-Ի/Օ ռեժիմ) և-v(բացատրական) օգտագործվում են տվյալների ուղարկում չանելու և մանրամասն տեղեկատվություն ցուցադրելու համար: - Տեղական հոստի համար:
-
telnet: Հեռավոր կառավարման պրոտոկոլ, որը կարող է օգտագործվել կապի ստուգման համար նշված պորտով:- Տեղական հոստի համար:
telnet localhost <պորտ> - Հեռավոր հոստի համար:
telnet <հեռավոր_հոստ> <պորտ>
Եթե կապը հաստատվում է (հաճախ հայտնվում է հրահանգ կամ դատարկ տող), պորտը բաց է։ Փակելու համար սեղմեք
Ctrl+], ապաquitև Enter: - Տեղական հոստի համար:
-
nmap: Ուժեղ պորտերի սկաներ։ Պահանջում է տեղադրում:- Տեղական հոստի համար:
nmap -p <պորտ> localhost - Հեռավոր հոստի համար:
nmap -p <պորտ> <հեռավոր_հոստ>
Արդյունքը ցույց կտա պորտի վիճակը՝
open,closedկամfiltered: - Տեղական հոստի համար:
-
< /dev/tcpկամ< /dev/udp(Bash-ում): Bash-ում կարելի է օգտագործել ֆայլային դիսկրիպտորներ TCP կամ UDP կապեր ստեղծելու համար:- Տեղական հոստի (TCP):
timeout 1 bash -c "cat < /dev/tcp/localhost/<պորտ>" 2>/dev/null && echo "Port <պորտ> open" || echo "Port <պորտ> closed" - Հեռավոր հոստի (TCP):
timeout 1 bash -c "cat < /dev/tcp/<հեռավոր_հոստ>/<պորտ>" 2>/dev/null && echo "Port <պորտ> open" || echo "Port <պորտ> closed"
timeoutօգտագործվում է կախվածության կանխարգելման համար, եթե պորտը փակ է։2>/dev/nullթաքցնում է սխալների ելքը։ Այս մեթոդը չի աշխատում UDP-ի համար: - Տեղական հոստի (TCP):
-
Python: Սոկետների օգտագործում՝ ստուգելու համար:
import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) # Թայմաուտի սահմանում 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() # Օրինակ օգտագործում check_port("localhost", 80) # Տեղական հոստի ստուգում check_port("google.com", 443) # Հեռավոր հոստի ստուգում
Ընտրությունը կախված է հասանելի գործիքներից, օպերացիոն համակարգից և խնդիրների բնույթից։ netcat և nmap ամենաակտիվ և տեղեկատվական գործիքներն են։