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


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.