Как я могу увидеть, какие порты открыты на моей машине?


148

Я хотел бы посмотреть, какие порты открыты на моей машине, например, какие порты прослушивает моя машина. Например, порт 80, если я установил веб-сервер и так далее.

Есть ли команда для этого?

Ответы:


113

птар Установить 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(или каким IP-адресом у вас машины)
— LassePoulsen

6
Я думаю, что netstat - лучший ответ на это. netstat выведет список того, что система прослушивает напрямую, без использования дополнительного приложения или выполнения ненужных вызовов через локальный хост или через сеть.
— Матье Трюдел-Лапьер

2
Это глупо. Если у вас есть доступ к компьютеру, просто используйте netstat -ln. Вы сразу увидите все открытые порты.
— Алексис Уилке

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

279

Я всегда использовал это:

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портов. Значит, grep был бы здесь лишним ?!
— Алексис Вилке

24

Этого достаточно, чтобы показать, что процесс прослушивает 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 Security.

Доступна поддержка (Linux, Windows, Mac OS X, BSD и т. Д.)

Посмотрите на это представление инструмента:

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.