Кто слушает порт: диагностика TCP с помощью ss
Как через ss найти слушающий TCP-порт, увидеть адрес привязки и отделить проблему процесса от сетевого доступа.
- Адрес и портss показывает, где слушает сервис
- ПроцессНаходим владельца сокета
- ПодключениеПроверяем доступ с нужной стороны сети
Приложение пишет «сервер запущен», но клиент не подключается. Сначала стоит выяснить, где оно слушает: на нужном ли порту, только на localhost или внутри контейнера. Команда ss покажет сокет и, при достаточных правах, процесс. После этого уже понятнее, что проверять в сети.
Находим слушающий сокет
sudo ss -ltnp 'sport = :8080'
sudo lsof -nP -iTCP:8080 -sTCP:LISTENПервая команда показывает слушающие TCP-сокеты и, при достаточных правах, связанный процесс. Вторая полезна как независимая проверка при установленном lsof. Числовой вывод исключает лишнее разрешение имён. Пустой результат означает отсутствие такого сокета в текущем сетевом пространстве, а не доказанную неисправность всей машины.
Читаем адрес привязки
127.0.0.1:8080 доступен через локальный IPv4-интерфейс. Привязка к 0.0.0.0 охватывает IPv4-интерфейсы, но сама по себе не разрешает прохождение сетевого фильтра. Сокет IPv6 нужно оценивать вместе с настройками системы: не предполагается, что он обязательно обслуживает IPv4.
curl --connect-timeout 3 -I http://127.0.0.1:8080/
ss -tn state establishedПроверка curl уместна для HTTP-сервиса. Для базы данных нужен её клиент: открытый TCP-порт не подтверждает корректную авторизацию или готовность запросов. Сравните локальную проверку и запрос с разрешённого удалённого узла. Это помогает отделить приложение от маршрута до него.
Контейнеры и службы
У контейнера проверьте его сетевое пространство и публикацию порта, у службы — реальные параметры запуска и журнал. Не открывайте все порты ради проверки. Разбор должен закончиться конкретными сведениями: какой процесс слушает, на каком адресе и откуда к нему удалось подключиться.
