Как проверить открытые порты в Linux — ss, netstat, lsof и nmap

Содержание
- Способ 1: ss — современный способ проверки портов
- Способ 2: netstat (устаревший, но всё ещё встречается)
- Способ 3: lsof — список открытых файлов и сокетов
- Способ 4: nmap — проверка портов снаружи
- Заключение
Когда вы администрируете сервер или просто заботитесь о его безопасности, важно уметь быстро проверить, какие порты открыты в системе. Это поможет выявить лишние службы, обнаружить потенциальные уязвимости и убедиться, что всё работает как нужно.
В этой статье разберём проверку открытых портов в Linux с помощью популярных утилит: ss
, netstat
, lsof
и nmap
.
Способ 1: ss — современный способ проверки портов
ss
— это быстрая и удобная альтернатива устаревшему netstat
. Установлена по умолчанию в большинстве современных дистрибутивов.
ss -tuln
Ключи:
-t
— показать только TCP-u
— показать только UDP-l
— только слушающие (listening) порты-n
— не пытаться разрешать имена (быстрее и удобнее)
Пример вывода:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 4096 *:22 *:*
Это значит, что порт 22 (SSH) открыт и слушает соединения.
Способ 2: netstat (устаревший, но всё ещё встречается)
Если вы используете старую систему или установили пакет net-tools
, то можно использовать:
netstat -tuln
Вывод схож с ss
. Однако netstat
больше не развивается, поэтому предпочтительно использовать ss
.
Способ 3: lsof — список открытых файлов и сокетов
Утилита lsof
показывает все открытые файлы, включая сетевые соединения.
sudo lsof -i -P -n
Ключи:
-i
— сетевые подключения-P
— показывать номера портов, а не имена-n
— не разрешать имена хостов (ускоряет вывод)
lsof
полезен для анализа, так как показывает, какой процесс использует конкретный порт.
Способ 4: nmap — проверка портов снаружи
Если вы хотите проверить, какие порты доступны извне, а не только слушают внутри системы, используйте:
sudo nmap -sS -p- 127.0.0.1
Пояснение:
-sS
— SYN-сканирование (быстрое и малозаметное)-p-
— сканировать все порты от 1 до 65535
Важно: некоторые фаерволы могут засечь
nmap
как подозрительную активность. Используйте с осторожностью.
Заключение
Проверка открытых портов в Linux — одна из базовых задач системного администратора. Вот краткая таблица:
Утилита | Назначение | Команда |
---|---|---|
ss |
Быстрая локальная проверка | ss -tuln |
netstat |
Устаревший аналог ss |
netstat -tuln |
lsof |
Определение процессов, использующих порты | lsof -i -P -n |
nmap |
Внешний аудит и сканирование портов | nmap -sS -p- 127.0.0.1 |
Совет: регулярно проверяйте открытые порты и закрывайте те, которые не используются. Это улучшит безопасность вашего сервера.