Главная
|
Услуги и цены
VDS
Выделенные серверы
Размещение сервера
|
F.A.Q
|
О компании
|

Как пользоваться командой ss для поиска проблем с портами в Linux

  • Что такое команда ss
  • Как посмотреть все открытые порты
  • Как узнать, какой процесс занимает порт
  • Как посмотреть только один порт
  • Как проверить, слушает ли приложение нужный порт
  • Как узнать, что порт свободен
  • Как посмотреть UDP-порты
  • Полезные комбинации команд
  • Частые ошибки при использовании ss
  • Заключение

Что такое команда ss

Иногда приложение неожиданно перестает запускаться, если нужный порт уже занят, приложение слушает другой адрес или вообще не запустилось.

Именно для таких случаев в Linux существует команда ss (Socket Statistics). Она показывает открытые сетевые соединения, прослушиваемые порты и процессы, которым они принадлежат.

Как посмотреть все открытые порты

ss -tln

Параметры означают:

  • -t — показать TCP-порты;
  • -l — только слушающие сокеты;
  • -n — не преобразовывать номера портов в названия служб.

Например:

Вывод команды ss с открытыми портами
State  Recv-Q Send-Q Local Address:Port
LISTEN 0      511    0.0.0.0:80
LISTEN 0      511    0.0.0.0:443
LISTEN 0      128    127.0.0.1:5432

Уже по этому выводу можно понять, какие сервисы принимают подключения.

Если нужного порта здесь нет, приложение либо не запущено, либо использует другой порт.

Как узнать, какой процесс занимает порт

Иногда приложение отказывается запускаться с ошибкой:

Address already in use

Это означает, что порт уже занят другим процессом.

Добавьте параметр -p:

sudo ss -tlnp
Поиск процесса, который использует порт

Например:

LISTEN 0 511 0.0.0.0:80 users:(("nginx",pid=1342,fd=6))
LISTEN 0 128 127.0.0.1:5432 users:(("postgres",pid=812,fd=5))

Теперь видно не только порт, но и программу, которая его использует.

Как посмотреть только один порт

Если вывод слишком большой, его можно отфильтровать.

Например:

sudo ss -tlnp | grep :80
Проверка порта 80 с помощью ss

или

sudo ss -tlnp | grep :5432

Результат сразу покажет, существует ли нужный порт и какое приложение его использует.

Как проверить, слушает ли приложение нужный порт

Предположим, вы запускаете Python-приложение:

python3 -m http.server 8000

Теперь проверьте:

ss -tln | grep :8000
Проверка порта 8000 с помощью команды ss

Получите:

LISTEN 0 5 0.0.0.0:8000

Это означает, что сервер успешно запустился и ожидает подключения.

Если вывод пустой, приложение не открыло порт. Причина может быть в ошибке запуска или неверной конфигурации.

Как узнать, что порт свободен

Иногда перед запуском нового приложения хочется убедиться, что выбранный порт никем не используется.

Например:

ss -tln | grep :3000

Если команда ничего не вывела, порт свободен.

Такую проверку удобно выполнять перед запуском Docker-контейнеров, веб-серверов и собственных сервисов.

Как посмотреть UDP-порты

Для UDP используется похожая команда:

ss -uln
Проверка UDP-портов с помощью ss

Если нужны процессы:

sudo ss -ulnp

Это полезно при настройке DNS, WireGuard, игровых серверов и других приложений, работающих по UDP.

Полезные комбинации команд

Показать все TCP-порты:

ss -tln

Показать TCP-порты вместе с процессами:

sudo ss -tlnp

Показать UDP-порты:

ss -uln

Найти конкретный порт:

sudo ss -tlnp | grep :80

Посмотреть все активные соединения:

ss -tun

Этих команд хватает для большинства повседневных задач администратора.

Частые ошибки при использовании ss

Не отображается имя процесса

Если выполнить команду без sudo:

ss -tlnp

часть процессов может отображаться без имени.

Используйте:

sudo ss -tlnp

Тогда Linux покажет PID и название программы.

Порт не отображается

Если приложение должно работать, но нужного порта нет в выводе ss, почти всегда проблема находится еще до этапа сетевого подключения.

Проверьте состояние службы:

systemctl status имя_службы

или журнал:

journalctl -u имя_службы -n 50

Обычно причина становится понятна уже после просмотра первых строк журнала.

Заключение

Команда ss помогает понять, какие порты открыты, какое приложение их использует и действительно ли сервис ожидает подключения.

logo
© 2022 62yun
Все права защищены
vk.com/62yuncom
support@62yun.ru
logo
vk.com/62yuncom
support@62yun.ru
Услуги
VDS Выделенные серверы
Полезное
F.A.Q О компании Политика конфиденциальности Оферта
Способы оплаты
wechatpay visa mastercard
MirAccept
Партнеры
25port
© 2022 62yun Все права защищены
ВВЕРХ