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

Вопрос или проблема

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

Существует ли какая-либо команда для этого?

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

sudo netstat -ntlp

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

sudo apt install net-tools

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

Nmap (“Network Mapper”) — это бесплатная и открытая утилита для сетевого исследования или аудита безопасности.

Используйте nmap 192.168.1.33 для локального ПК или nmap внешний IP-адрес.

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

Zenmap — это официальный графический интерфейс.

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

  • 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 :80
tcp        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 и т. д.)

Посмотрите на этот инструмент:

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

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

$ netstat

Команда 'netstat' не найдена, но ее можно установить с помощью:

sudo apt install net-tools

$ 

Тем не менее, если вы хотите использовать ее, можете установить с помощью sudo apt install net-tools.

Для вашей информации, netstat устарел (смотрите страницу man), поэтому вам следует использовать ss вместо netstat.

Эта программа устарела. Замена для netstat — ss.
Замена для netstat -r — это ip route. Замена для netstat
-i — это ip -s link. Замена для netstat -g — это ip maddr.

Например.

$ ss -lnt
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port
LISTEN     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:
Печать:
сетевые соединения
таблицы маршрутизации
статистика интерфейса
маскарадные соединения
мультикастные подписки

Установка:
    sudo apt install net-tools

Пример:
    ~$ 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

Вы можете использовать PortsInfo для этого.
Он показывает вам все порты и приложения, прослушивающие их.
Раскрытие информации: я разрабатываю это приложение.

Ответ или решение

Для проверки открытых портов на вашем компьютере существует несколько эффективных инструментов и команд. Открытые порты могут указывать на запущенные службы, такие как веб-серверы, базы данных и другие приложения, которые ожидают входящих соединений. Ниже приведены наиболее распространенные методы и команды, которые помогут вам получить эту информацию.

1. Использование команды netstat

Команда netstat позволяет просмотреть сетевые соединения и открытую деятельность на вашем компьютере. Важно заметить, что в новых дистрибутивах Linux команда netstat может быть устаревшей, и вместо неё рекомендуется использовать ss.

Пример использования netstat:

sudo netstat -tulpn | grep LISTEN
  • -t — отображает TCP-соединения.
  • -u — отображает UDP-соединения.
  • -l — показывает только прослушивающие порты.
  • -p — показывает идентификатор процесса и имя программы, исполняющей каждое соединение.
  • -n — отображает адреса и номера портов в числовом формате.

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

sudo apt install net-tools

2. Альтернативный метод с помощью команды ss

Команда ss считается более современным и быстрым средством для анализа сокетов и сетевых соединений.

Пример использования ss:

sudo ss -tulpn
  • -t — для TCP.
  • -u — для UDP.
  • -l — чтобы показать только прослушивающие сокеты.
  • -p — для отображения информации о процессе.

3. Использование lsof

Команда lsof (list open files) может также быть использована для просмотра открытых портов. Она предоставляет информацию о файлах, которые открыты процессами, включая сетевые сокеты.

Пример использования lsof:

sudo lsof -nP -i | grep LISTEN
  • -n — угроза разрешения адресов.
  • -P — угрозы разрешения портов.

4. Проверка правил брандмауэра с помощью ufw

Если вы используете ufw (Uncomplicated Firewall), вы можете легко просмотреть его состояние и открытые порты:

sudo ufw status

Эта команда выдаст информацию обо всех разрешенных и заблокированных соединениях.

5. Использование nmap

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

Пример использования nmap:

nmap 192.168.1.33

или для внешнего IP:

nmap <внешний_IP>

Заключение

Каждый из вышеуказанных инструментов и команд предоставляет различные способы для мониторинга открытых портов на вашем компьютере. Независимо от того, используете ли вы netstat, ss, lsof или nmap, важно учитывать, что открытые порты могут быть уязвимыми местами для атак, поэтому регулярная проверка и обновление системы безопасности будут полезны в вашей практике управления сетью. Содержите ваш брандмауэр в актуальном состоянии и будьте внимательны к службам, которые вы открываете для внешнего мира.

Оцените материал
Добавить комментарий

Капча загружается...