Просмотр открытых портов Linux

В Debian (и других Linux-системах) можно проверить открытые порты с помощью нескольких команд. Вот основные из них:

1. ss (современная замена netstat)

ss -tulnp

Опции:

  • -t — TCP-порты
  • -u — UDP-порты
  • -l — только слушающие порты
  • -n — показывать числовые адреса (без разрешения имён)
  • -p — отображать процесс, использующий порт

Пример вывода:

Netid  State   Recv-Q  Send-Q  Local Address:Port   Peer Address:Port  Process  
tcp    LISTEN  0       80      0.0.0.0:80           0.0.0.0:*          users:(("nginx",pid=1234,fd=6))  

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

netstat -tulnp

Опции:

  • Аналогичны ss (-t-u-l-n-p).

⚠️ В некоторых современных дистрибутивах netstat может отсутствовать (входит в пакет net-tools, который считается устаревшим).

3. lsof (более детальная информация)

sudo lsof -i -P -n | grep LISTEN

Опции:

  • -i — сетевые соединения
  • -P — не преобразовывать номера портов в имена служб
  • -n — не разрешать имена хостов

Пример вывода:

nginx    1234  root    6u  IPv4  12345      0t0  TCP *:80 (LISTEN)  

4. nmap (проверка извне)

Если нужно проверить открытые порты снаружи (например, на другом компьютере):

sudo apt install nmap  # если не установлен
nmap -sT -p- localhost

Опции:

  • -sT — TCP-сканирование
  • -p- — все порты (1-65535)

Вывод:

  • Лучший вариант — ss -tulnp (быстро и современно).
  • Если нужны детали о процессах — sudo lsof -i -P -n | grep LISTEN.
  • Для внешней проверки — nmap.

Если у вас нет ss или lsof, установите их:

sudo apt install iproute2 lsof nmap