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

148

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

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

Jonas
источник

Ответы:

113

птар Установить nmap

Nmap («Network Mapper») - бесплатная утилита с открытым исходным кодом для исследования сети или аудита безопасности.

nmap 192.168.1.33 внутренний ПК или nmap external ip address

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

hhlp
источник
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

nathwill
источник
Я 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.

inetpro
источник
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 для проверки брандмауэра.

rstonehouse
источник
11

sudo iptables -Lперечислит правила порта для вашего компьютера. Обратите внимание, что если вы используете брандмауэры ufw или shorewall, вывод может быть трудным для чтения. В этом случае лучше использовать, sudo ufw statusнапример.

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

Кьяран Лидеман
источник
4

Если вы ищете непрерывный мониторинг портов для серверных или локальных компьютеров, я думаю, вы также можете использовать графическую версию nmap, т.е. Zenmap для более подробной версии.

Zenmap - это официальный графический интерфейс пользователя (GUI) для сканера Nmap Security.

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

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

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

Вишал Г
источник