Как я могу узнать, какие порты открыты на моем компьютере?

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

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

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

sudo netstat -ntlp

Если netstat команда недоступна, установите ее с помощью:

sudo apt install net-tools

nmap (устанавливать)

Nmap ("Сетевой картограф") это бесплатная утилита с открытым исходным кодом для исследования сети или аудита безопасности.

Воспользуйся nmap 192.168.1.33 для внутреннего ПК или nmap external IP address.

Дополнительная информация man nmap.

Карта Дзен является официальным интерфейсом GUI.

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

  • sudo netstat -tulpn

  • sudo ufw status

Чтобы перечислить открытые порты, используйте 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.

Этого достаточно, чтобы показать, что существует процесс, прослушивающий IP-адрес 0.0.0.0 (необходимо, чтобы он отвечал на любой запрос) на порт 80 (стандартный номер порта веб-сервера). В моем случае это показывает, что это веб-сервер lighttpd

$ sudo netstat -ntlp | grep :80tcp        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 и т.д.)

Взгляните на этот инструментальный вид:

enter image description here

В последнем дистрибутиве Linux, скорее всего, вы не найдете netstat командовать больше нельзя.

$ netstatCommand 'netstat' not found, but can be installed with:sudo apt install net-tools$ 

Однако, если вы хотите использовать его, продолжайте и установите его с помощью sudo apt install net-tools команда.

К вашему сведению, netstat устарел (см. справочную страницу), поэтому вам следует использовать ss в середине netstat.

Эта программа устарела. Заменой netstat является ss.
Заменой netstat -r является ip-маршрут. Заменой netstat-i является ip -s link. Заменой netstat -g является ip maddr.

Напр.

$ ss -lntState      Recv-Q Send-Q        Local Address:Port          Peer Address:PortLISTEN     0      5                 127.0.1.1:53                       *:*LISTEN     0      128               127.0.0.1:631                      *:*LISTEN     0      128                     ::1:631                     :::*

Описание

ss = еще одна утилита для исследования сокетов

-l, --Listening отображает только прослушивающие сокеты (по умолчанию они опущены).

-n, --numericНе пытайтесь разрешить имена служб.

-t, --tcpДисплей TCP-сокетов.

ss: Печать: сетевые подключения таблицы маршрутизации статистика интерфейса маскарадные подключения членство в многоадресной рассылке

Install:    sudo apt install net-toolsExample:    ~$ ss -ntlp | grep LISTEN    >    LISTEN   0        4096             127.0.0.53%lo:53              0.0.0.0:*                                                                                          LISTEN   0        5                    127.0.0.1:631             0.0.0.0:*                                                                                          LISTEN   0        5                        [::1]:631                [::]:*                                                                                          LISTEN   0        50          [::ffff:127.0.0.1]:9614                  *:*

предполагая, что вы хотите проверить порт 3000:netstat -na | grep 3000