Как да проверите дали портът е отворен на отдалечен или локален хост?
sobes.tech AI
Отговор от AI
За проверка на отворен порт на отдалечен или локален хост можете да използвате следните методи:
-
netcat(nc): Универсален инструмент за работа с мрежови връзки.- Локален хост:
nc -zv localhost <порт> - Отдалечен хост:
nc -zv <отдалечен_хост> <порт>
Опциите
-z(zero-I/O mode) и-v(verbose) се използват за сканиране без изпращане на данни и за показване на подробна информация. - Локален хост:
-
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 <порт> is open" || echo "Port <порт> is closed" - Отдалечен хост (TCP):
timeout 1 bash -c "cat < /dev/tcp/<отдалечен_хост>/<порт>" 2>/dev/null && echo "Port <порт> is open" || echo "Port <порт> е затворен"
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} е отворен") except (socket.timeout, ConnectionRefusedError): print(f"Port {port} on {host} е затворен или филтриран") finally: s.close() # Пример за използване check_port("localhost", 80) # Проверка на локалния хост check_port("google.com", 443) # Проверка на отдалечения хост
Изборът на метод зависи от наличните инструменти, операционната система и спецификата на задачата. netcat и nmap са едни от най-гъвкавите и информативни инструменти.