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

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

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

204
задан 25 October 2010 в 16:49

10 ответов

nmap (install)

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

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

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

Zenmap является официальным фронтендом GUI.

130
ответ дан 25 October 2010 в 16:49

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

sudo netstat -ntlp | grep LISTEN

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

sudo apt install net-tools
326
ответ дан 25 October 2010 в 16:49

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

  • sudo netstat -tulpn

  • sudo ufw status

68
ответ дан 25 October 2010 в 16:49

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

24
ответ дан 25 October 2010 в 16:49

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

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

11
ответ дан 25 October 2010 в 16:49

Для вывода списка открытых портов используйте команду 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 .

28
ответ дан 25 October 2010 в 16:49

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

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

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

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

enter image description here

4
ответ дан 25 October 2010 в 16:49

при условии, что u хочу проверить порт 3000: netstat -na | grep 3000

0
ответ дан 5 January 2021 в 23:58

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

Install:
    sudo apt install net-tools

Example:
    ~$ 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                  *:*
2
ответ дан 5 January 2021 в 23:58

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

$ netstat

Command '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 route. Замена netstat -i - это ip -s ссылка. Вместо 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.

2
ответ дан 5 January 2021 в 23:58

Другие вопросы по тегам:

Похожие вопросы: