Эффективно проверить, открыт ли порт в Linux? - PullRequest
188 голосов
/ 08 марта 2012

Из скрипта bash, как быстро узнать, открыт ли / прослушивается порт 445 на сервере.

Я попробовал несколько вариантов, но хочу что-то быстрое:
1. lsof -i :445 (занимает секунды)
2. netstat -an |grep 445 |grep LISTEN (занимает секунды)
3. telnet (не возвращается)
4. nmap, netcat недоступно на сервере

Было бы неплохо узнать способ, который не перечисляет сначала, а greps после этого.

Ответы [ 14 ]

1 голос
/ 22 февраля 2018

tcping - отличный инструмент с очень низкими издержками. У него также есть аргумент тайм-аута, чтобы ускорить его:

[root@centos_f831dfb3 ~]# tcping 10.86.151.175 22 -t 1
10.86.151.175 port 22 open.
[root@centos_f831dfb3 ~]# tcping 10.86.150.194 22 -t 1
10.86.150.194 port 22 user timeout.
[root@centos_f831dfb3 ~]# tcping 1.1.1.1 22 -t 1
1.1.1.1 port 22 closed.
0 голосов
/ 21 апреля 2019

Вы также можете использовать команду netcat

[location of netcat]/netcat -zv [ip] [port]

или

nc -zv [ip] [port]

-z - устанавливает nc на простое сканирование для прослушивания демонов, без фактической отправки им данных.
-v - включает подробный режим.

0 голосов
/ 28 мая 2016

nmap - правильный инструмент.Просто используйте nmap example.com -p 80

Вы можете использовать его с локального или удаленного сервера.Это также поможет вам определить, блокирует ли доступ брандмауэр.

0 голосов
/ 23 ноября 2015

Если вы используете iptables, попробуйте:

iptables -nL

или

iptables -nL | grep 445
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...