Відповіді:
Nmap ("Network Mapper") - це безкоштовна утиліта з відкритим кодом для дослідження мережі або аудиту безпеки
nmap 192.168.1.33
внутрішній ПК або nmap external ip address
більше інформації man nmap
nmap localhost
і nmap 192.168.0.3
(або що ви коли-небудь
netstat -ln
. Ви моментально побачите всі відкриті порти.
nmap localhost
не знайшли послуги, які прив'язувались лише до localhost. Наприклад, я бігаю influxd
з bind-address:localhost:8086
. Це не з'явилося в sudo nmap localhost
, але з'явилося в sudo netstat -tulpn
.
Я завжди цим користувався:
sudo netstat -ntlp | grep LISTEN
sudo netstat -ntlp | grep LISTEN
... в sudo
іншому випадку ... pid не буде надруковано.
-l
вже фільтри для прослуховування. grep LISTEN
не допоможе приховати 2 рядки інформації заголовка.
-t
: tcp,: -l
прослуховувальний сокет -p
,: показати pid та назву програми,: -n
друк 127.0.0.1:80
замість localhost:http
. Довідка: linux.die.net/man/8/netstat
netstat
зsudo apt-get install net-tools
sudo netstat --tcp --listening --programs --numeric
. Не потрібно використовувати, grep
якщо ви не хочете усунути заголовки стовпців.
Інші хороші способи дізнатись, які порти існують і які правила вашого брандмауера є:
sudo netstat -tulpn
sudo ufw status
nmap
знову змінюю відповідь , зручність використання - netstat
це лайно.
Для списку відкритих портів використовуйте netstat
команду.
Наприклад:
$ sudo netstat -tulpn | grep LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 5452/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1037/cupsd
tcp6 0 0 ::1:631 :::* LISTEN 1037/cupsd
У наведеному вище прикладі три служби прив’язані до адреси зворотного зв'язку.
Послуги IPv4, пов'язані з адресою петлі "127.0.0.1", доступні лише на локальній машині. Еквівалентною адресою зворотного зв'язку для IPv6 є ":: 1". IPv4-адреса "0.0.0.0" означає "будь-яку IP-адресу", що означає, що інші машини могли потенційно підключатися до будь-якого з локально налаштованих мережевих інтерфейсів на конкретному порту.
Інший метод полягає у використанні lsof
команди:
$ sudo lsof -nP -i | grep LISTEN
cupsd 1037 root 9u IPv6 11276 0t0 TCP [::1]:631 (LISTEN)
cupsd 1037 root 10u IPv4 11277 0t0 TCP 127.0.0.1:631 (LISTEN)
dnsmasq 5452 nobody 5u IPv4 212707 0t0 TCP 127.0.0.1:53 (LISTEN)
Для отримання більш докладної інформації див man netstat
або man lsof
.
-l
варіантом є перерахування LISTEN
портів. Тож греп був би тут зайвим ?!
Цього достатньо для того, щоб показати, що на IP-адресі є процес прослуховування IP-адреси 0.0.0.0
(необхідний, щоб він відповів на будь-який запит) на порт 80 (стандартний номер порту веб-сервера). У моєму випадку це показує, що це веб-серверlighttpd
$ sudo netstat -ntlp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2495/lighttpd
Якщо згодом ви хочете переконатися, що єдине, що ви дозволяєте через свій брандмауер - це порт 80, я часто використовую ShieldsUp від www.grc.com для проведення тесту на брандмауер.
sudo iptables -L
перерахує правила порту для вашого ПК. Зауважте, що якщо ви використовуєте брандмауери ufw або shorewall, вихід може бути важко прочитати. У цьому випадку скоріше скористайтеся, sudo ufw status
наприклад.
Це самостійно не дуже корисно, оскільки навіть якщо відкритий доступ до порту, все одно буде відмовлено, якщо на ньому не буде прослуховуватися процес.
Якщо ви шукаєте постійний моніторинг портів для серверних машин або локальних, я думаю, ви також можете скористатися графічною версією nmap, тобто Zenmap для більш детальної версії
Zenmap - це офіційний графічний інтерфейс користувача (GUI) для сканера безпеки Nmap.
Доступні підтримки (Linux, Windows, Mac OS X, BSD тощо)
Погляньте на цей інструмент:
nmap localhost
працювали чудово.