
В Linux открытые порты отображают точки доступа к системе для внешних и внутренних сетевых соединений. Контроль за их состоянием необходим для предотвращения несанкционированного доступа и выявления активных сервисов.
Утилита ss -tulnp предоставляет расширенные данные, включая PID и имя процесса, что помогает связать порт с конкретным приложением. lsof -i показывает процессы, работающие с сетевыми соединениями, и помогает выявить неожиданные службы.
Регулярный анализ открытых портов с помощью этих команд и сканирование nmap минимизируют риски, связанные с уязвимыми сервисами. Рекомендуется проводить проверку после установки новых программ и изменений в конфигурации сети.
Как узнать список открытых портов в Linux через команду netstat

- -t – отображение TCP-портов;
- -u – отображение UDP-портов;
- -l – показ только прослушивающих портов;
Для получения списка открытых портов выполните команду:
netstat -tuln
- Proto – тип протокола (TCP/UDP);
- Local Address – IP-адрес и порт, на котором прослушивается соединение;
- State – состояние порта, обычно LISTEN для открытых портов.
Чтобы связать порты с конкретными процессами, добавьте ключ -p (требует прав администратора):
sudo netstat -tulnp
Этот режим покажет PID и имя процесса, что помогает быстро идентифицировать, какая служба открыла порт. Рекомендуется регулярно проверять открытые порты и сопоставлять их с запущенными приложениями для контроля безопасности.
Использование ss для проверки открытых портов и их состояния

Утилита ss заменяет устаревший netstat и обеспечивает более быстрый и подробный анализ сетевых подключений. Для отображения открытых портов применяют следующие параметры:
ss -tuln
где:
- -t – показывать TCP-соединения;
- -u – показывать UDP-соединения;
- -l – отображать только слушающие порты;
Для связи портов с процессами добавляется ключ -p, что требует прав суперпользователя:
sudo ss -tulnp
- протокол;
- адрес и порт прослушивания;
- статус соединения;
- PID и имя процесса, использующего порт.
ss предоставляет более актуальные данные благодаря работе с современными системными вызовами. Рекомендуется использовать эту команду для регулярного мониторинга сетевой активности и обнаружения нежелательных сервисов.
Проверка открытых портов с помощью команды lsof

Команда lsof позволяет получить список файлов, открытых процессами, включая сетевые соединения. Для выявления открытых портов используется ключ -i, который фильтрует сетевые интерфейсы.
Основная команда для проверки открытых портов:

sudo lsof -i -P -n
где:
- -i – показывает сетевые файлы (TCP и UDP);
- -P – отображает номера портов вместо имен сервисов;
- COMMAND – название программы;
- PID – идентификатор процесса;
- USER – пользователь, запустивший процесс;
- FD – файловый дескриптор;
- TYPE – тип соединения (IPv4/IPv6);
- DEVICE – устройство;
- NAME – адрес и порт.
Для проверки портов конкретного протокола или порта можно использовать фильтрацию, например:
sudo lsof -i TCP:22
Это позволит быстро определить, какой процесс слушает указанный порт. Рекомендуется периодически запускать lsof для обнаружения нежелательных открытых портов и контроля сетевой активности.
Анализ открытых портов через nmap на локальной машине

Утилита nmap применяется для сканирования портов и выявления открытых сервисов на локальной машине. Для быстрого сканирования используйте команду:
nmap -sT -O localhost
где:
- -sT – полный TCP-соединительный скан (connect scan);
- -O – определение операционной системы;
- localhost – адрес для проверки локальной машины.
Для более подробного анализа используйте опцию сканирования всех портов:
nmap -p- localhost
Этот параметр проверит все 65535 TCP-портов, что позволяет выявить нестандартные открытые порты.
- список открытых портов с номерами и протоколами;
- описание сервисов, запущенных на каждом порте;
- статус портов (open, closed, filtered);
- при использовании -O – версию операционной системы.
Рекомендуется запускать nmap с правами суперпользователя для получения максимальной точности. Регулярный аудит с помощью nmap помогает выявить неожиданно открытые порты и снизить риски безопасности.
Как определить, какие процессы используют открытые порты

Для связи открытых портов с процессами применяются команды netstat, ss и lsof с соответствующими ключами.
Команда netstat с параметрами -tulnp показывает список открытых портов вместе с PID и именем процесса:
sudo netstat -tulnp
В столбце PID/Program name отображается процесс, связанный с портом.
sudo ss -tulnp
Команда lsof с фильтром -i показывает процессы, открывшие сетевые соединения:
sudo lsof -i -P -n
Для поиска конкретного порта используйте фильтрацию, например:
sudo lsof -i TCP:80
или
sudo netstat -tulnp | grep :80
Регулярное сопоставление портов с процессами помогает выявлять нежелательные сервисы и предотвращать угрозы безопасности.
Список стандартных портов, часто открытых в Linux-системах

В Linux-средах часто используются определённые порты для стандартных сетевых сервисов. Знание этих портов помогает быстрее идентифицировать работающие службы и управлять доступом.
| Порт | Протокол | Сервис | Описание |
|---|---|---|---|
| 22 | TCP | SSH | Удалённый доступ и управление сервером |
| 80 | TCP | HTTP | Веб-серверы без шифрования |
| 443 | TCP | HTTPS | Веб-серверы с шифрованием TLS/SSL |
| 53 | UDP/TCP | DNS | Разрешение доменных имён |
| 25 | TCP | SMTP | Отправка электронной почты |
| 110 | TCP | POP3 | Получение электронной почты |
| 143 | TCP | IMAP | Доступ к почтовым ящикам на сервере |
| 3306 | TCP | MySQL | База данных MySQL/MariaDB |
| 5432 | TCP | PostgreSQL | База данных PostgreSQL |
| 8080 | TCP | HTTP-alt | Альтернативный HTTP-порт, часто используется для приложений |
Контроль и фильтрация этих портов важны для защиты системы и управления доступом к сервисам.
Вопрос-ответ:
Какие команды подходят для быстрого просмотра открытых портов в Linux?
Для быстрой проверки открытых портов часто используют команды netstat -tuln и ss -tuln. Обе выводят список прослушивающих TCP и UDP портов с указанием адресов и номеров портов в числовом формате. ss работает быстрее и показывает актуальные данные, netstat предоставляет более традиционный вывод. Для более подробной информации о процессах, связанных с портами, добавляют ключ -p.
Как связать открытый порт с процессом, который его использует?
Чтобы определить процесс, который использует конкретный порт, используют команды с ключом, показывающим PID и имя процесса. Например, sudo netstat -tulnp или sudo ss -tulnp отображают процесс для каждого открытого порта. Также команда sudo lsof -i -P -n показывает файлы, связанные с сетевыми соединениями, включая открытые порты и процессы. Это помогает выявлять службы и приложения, которые занимают порты.
Можно ли проверить открытые порты с помощью сторонних утилит и какие преимущества они дают?
Для сканирования портов часто применяют nmap. Запуск nmap -p- localhost позволяет просканировать все порты на локальной машине и выявить открытые. Утилита определяет не только открытые порты, но и сервисы, которые на них работают. Это даёт представление о потенциальных точках доступа и помогает обнаружить незарегистрированные или неожиданные службы.
Какие стандартные порты обычно открыты на Linux-серверах?
Часто встречаются следующие порты: 22 для SSH, 80 и 443 для HTTP и HTTPS, 53 для DNS, 25 для SMTP, 3306 для MySQL и 5432 для PostgreSQL. Знание этих портов помогает понять, какие сервисы запущены и требуют контроля для безопасности и настройки доступа.
