Як я бачу, які порти відкриті на моїй машині?


147

Я хотів би побачити, які порти відкриті на моїй машині, наприклад, які порти слухає моя машина. Наприклад, порт 80, якщо я встановив веб-сервер тощо.

Чи є для цього якась команда?

Відповіді:


113

nmap Встановити nmap

Nmap ("Network Mapper") - це безкоштовна утиліта з відкритим кодом для дослідження мережі або аудиту безпеки

nmap 192.168.1.33 внутрішній ПК або nmap external ip address

більше інформації man nmap


11
Спасибі, nmap localhostпрацювали чудово.
Йонас

11
Пам’ятайте, що існує різниця між nmap localhostі nmap 192.168.0.3(або що ви коли-небудь
встановите

6
Я думаю, що netstat є кращою відповіддю на це. netstat перерахує, що система слухає безпосередньо та без використання додаткового додатку чи зайвих дзвінків по localhost чи думці мережі.
Матьє Трудель-Лапьєр

2
Це нерозумно. Якщо у вас є доступ до комп'ютера, просто використовуйте netstat -ln. Ви моментально побачите всі відкриті порти.
Алексіс Вілке

1
nmap localhostне знайшли послуги, які прив'язувались лише до localhost. Наприклад, я бігаю influxdз bind-address:localhost:8086. Це не з'явилося в sudo nmap localhost, але з'явилося в sudo netstat -tulpn.
Дан Даскалеску

278

Я завжди цим користувався:

sudo netstat -ntlp | grep LISTEN

4
sudo netstat -ntlp | grep LISTEN... в sudoіншому випадку ... pid не буде надруковано.
Рафаф Тахсін

6
-lвже фільтри для прослуховування. grep LISTENне допоможе приховати 2 рядки інформації заголовка.
Дан Даскалеску

3
-t: tcp,: -lпрослуховувальний сокет -p,: показати pid та назву програми,: -nдрук 127.0.0.1:80замість localhost:http. Довідка: linux.die.net/man/8/netstat
Рік

1
встановити netstatзsudo apt-get install net-tools
RichArt

2
Розгорнута команда є sudo netstat --tcp --listening --programs --numeric. Не потрібно використовувати, grepякщо ви не хочете усунути заголовки стовпців.
Патрік Темний

60

Інші хороші способи дізнатись, які порти існують і які правила вашого брандмауера є:

  • sudo netstat -tulpn

  • sudo ufw status


Я nmapзнову змінюю відповідь , зручність використання - netstatце лайно.
Йонас

2
@Jonas: дивіться мій коментар у відповіді nmap. Він не буде перераховувати служби, які прив'язуються лише до localhost.
Дан Даскалеску

27

Для списку відкритих портів використовуйте 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.


3
Я думав, що -lваріантом є перерахування LISTENпортів. Тож греп був би тут зайвим ?!
Алексіс Вілке

24

Цього достатньо для того, щоб показати, що на 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 для проведення тесту на брандмауер.


11

sudo iptables -Lперерахує правила порту для вашого ПК. Зауважте, що якщо ви використовуєте брандмауери ufw або shorewall, вихід може бути важко прочитати. У цьому випадку скоріше скористайтеся, sudo ufw statusнаприклад.

Це самостійно не дуже корисно, оскільки навіть якщо відкритий доступ до порту, все одно буде відмовлено, якщо на ньому не буде прослуховуватися процес.


4

Якщо ви шукаєте постійний моніторинг портів для серверних машин або локальних, я думаю, ви також можете скористатися графічною версією nmap, тобто Zenmap для більш детальної версії

Zenmap - це офіційний графічний інтерфейс користувача (GUI) для сканера безпеки Nmap.

Доступні підтримки (Linux, Windows, Mac OS X, BSD тощо)

Погляньте на цей інструмент:

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.