Добавить в корзинуПозвонить
Найти в Дзене

Linux посмотреть открытые порты

Есть несколько способов посмотреть открытые порты в Linux. Вот наиболее распространенные и полезные команды: 1. netstat (устаревший, но все еще часто используется) 2. ss (современная альтернатива netstat) 3. lsof (list open files) 4. nmap (network mapper) Выбор команды: Важные моменты: В большинстве случаев команда sudo ss -ltnp предоставит вам наиболее полезную и актуальную информацию об открытых портах и процессах, которые их используют.

Есть несколько способов посмотреть открытые порты в Linux. Вот наиболее распространенные и полезные команды:

1. netstat (устаревший, но все еще часто используется)

  • netstat выводит сетевые соединения, таблицы маршрутизации, статистику интерфейсов и многое другое. Он позволяет увидеть, какие порты прослушиваются (открыты) на вашем компьютере.
  • Основные опции:-l (listen): Отображает только прослушиваемые сокеты (т.е., порты, на которых сервер ждет входящих соединений).
    -n (numeric): Отображает адреса и номера портов в числовом формате, без попыток определения имен сервисов. Это ускоряет вывод и полезно, если DNS-сервер недоступен.
    -t (tcp): Отображает только TCP-соединения.
    -u (udp): Отображает только UDP-соединения.
    -p (program): Отображает имя процесса, который использует сокет (требует прав root).
  • Примеры:
    Показать все прослушиваемые TCP-порты:netstat -ltn

    Показать все прослушиваемые UDP-порты:netstat -lun

    Показать все прослушиваемые TCP-порты и процессы, их использующие (требуются права root):sudo netstat -ltnp

    Показать все прослушиваемые порты (TCP и UDP) и процессы, их использующие:sudo netstat -lnp
  • Примечание: netstat считается устаревшим и постепенно заменяется ss. В некоторых новых дистрибутивах Linux его может не быть предустановленным.

2. ss (современная альтернатива netstat)

  • ss (socket statistics) — это более современная и быстрая альтернатива netstat. Он предоставляет аналогичную информацию, но использует более эффективный способ доступа к информации о сокетах в ядре.
  • Основные опции:-l (listening): Отображает только прослушиваемые сокеты.
    -n (numeric): Отображает адреса и номера портов в числовом формате.
    -t (tcp): Отображает только TCP-соединения.
    -u (udp): Отображает только UDP-соединения.
    -p (process): Отображает имя процесса, который использует сокет (требует прав root).
  • Примеры:
    Показать все прослушиваемые TCP-порты:ss -ltn

    Показать все прослушиваемые UDP-порты:ss -lun

    Показать все прослушиваемые TCP-порты и процессы, их использующие (требуются права root):sudo ss -ltnp

    Показать все прослушиваемые порты (TCP и UDP) и процессы, их использующие:sudo ss -lnp

3. lsof (list open files)

  • lsof (list open files) перечисляет все открытые файлы, и поскольку сетевые сокеты также считаются файлами, lsof может быть использован для просмотра открытых портов.
  • Основные опции:-i (internet): Фильтрует вывод, показывая только интернет-сокеты.
    :<порт>: Указывает конкретный порт для фильтрации (например, :22 для порта 22).
    -n (numeric): Отображает адреса и номера портов в числовом формате.
    -P (numeric port): Отображает номера портов вместо имен служб.
  • Примеры:
    Показать все открытые интернет-сокеты (TCP и UDP):sudo lsof -i -P -n

    Показать процесс, который использует порт 80:sudo lsof -i :80 -P -n

    Показать все TCP-соединения:sudo lsof -iTCP -P -n

    Показать все UDP-соединения:sudo lsof -iUDP -P -n

4. nmap (network mapper)

  • nmap (network mapper) — это мощный сканер портов, предназначенный для обнаружения хостов и сервисов в сети. Он может использоваться для сканирования портов локальной машины. Он не показывает прослушиваемые порты как таковые, а скорее сканирует и определяет, какие порты открыты (т.е., принимают соединения).
  • Пример:
    Сканировать все TCP-порты на локальной машине:nmap -p 1-65535 localhost

    Сканировать наиболее распространенные 1000 портов:nmap localhost

Выбор команды:

  • Для просмотра прослушиваемых портов (сервисов, ожидающих входящих соединений): используйте ss -ltnp (рекомендуется) или netstat -ltnp (если ss недоступен). lsof -i -P -n также подойдет, но выведет больше информации.
  • Для сканирования открытых портов (активно проверяя, какие порты принимают соединения): используйте nmap.

Важные моменты:

  • Права root: Для получения полной информации, включая имена процессов, использующих порты, обычно требуются права root. Используйте sudo.
  • Firewall: Имейте в виду, что брандмауэр (например, iptables или ufw) может блокировать порты, даже если на них прослушивается сервис. Команды выше покажут только, что процесс прослушивает порт, а не то, доступен ли он извне.

В большинстве случаев команда sudo ss -ltnp предоставит вам наиболее полезную и актуальную информацию об открытых портах и процессах, которые их используют.