Справочник к статье какие порты открыты в Linux. Команда ss заменила устаревший netstat и работает быстрее. Для просмотра процессов других пользователей нужен sudo.
Сокеты и порты (ss)
| Команда |
Что делает |
ss -tulpn |
Слушающие TCP и UDP порты с процессами |
ss -tlnp |
Только TCP в состоянии LISTEN |
ss -tnp state established |
Установленные TCP-соединения |
ss -tnp dport = :443 |
Соединения на удалённый порт 443 |
ss -tn src :22 |
Кто подключён к локальному порту 22 |
ss -s |
Сводка по сокетам |
Адрес 127.0.0.1:порт означает, что сервис доступен только с самого хоста; 0.0.0.0 или * — со всех интерфейсов.
Кто держит порт или файл
| Команда |
Что делает |
lsof -i :8080 |
Процесс, использующий порт |
lsof -i -P -n |
Все сетевые соединения без разрешения имён |
lsof +D /var/log |
Процессы, открывшие файлы каталога |
lsof -p PID |
Что открыто у процесса |
fuser -v /mnt/disk |
Кто мешает размонтировать диск |
Процессы
| Команда |
Что делает |
ps auxf |
Все процессы деревом |
ps -eo pid,user,%cpu,%mem,cmd --sort=-%cpu | head |
Топ по CPU |
ps -eo pid,user,%cpu,%mem,cmd --sort=-%mem | head |
Топ по памяти |
pstree -p |
Дерево процессов с PID |
cat /proc/PID/cmdline | tr '\0' ' ' |
Полная командная строка процесса |
ls -l /proc/PID/exe |
Какой файл запущен (удалён ли он) |
Службы и журналы
| Команда |
Что делает |
systemctl status nginx |
Состояние службы и последние строки журнала |
systemctl list-units --failed |
Упавшие службы |
journalctl -u nginx --since "10 min ago" |
Журнал службы |
journalctl -p err -b |
Ошибки с последней загрузки |
Что считать подозрительным
- Неизвестный процесс слушает порт на
0.0.0.0.
- Соединения на неизвестные внешние адреса от системных служб.
- Процесс запущен из
/tmp, /dev/shm или удалённого файла ((deleted) в /proc/PID/exe).
Найденное сопоставьте с ожидаемым списком портов сервера и проверьте снаружи: Nmap. Если подозрение подтвердилось: первые 24 часа инцидента.