Выбор ответа Junior Сеть в Linux спрашивают часто обновлено
Порт слушается, а снаружи недоступен
Вопрос
ss -tlnp показывает LISTEN 0 511 127.0.0.1:8080 ... users:(("node",pid=900,fd=21)). С другой машины curl http://10.0.0.5:8080 получает Connection refused. Почему?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Сервис слушает только loopback, извне подключиться нельзя. Сокет привязан к 127.0.0.1, поэтому соединения на 10.0.0.5:8080 ядро отклоняет с RST, это и есть refused.
Варианты ответа
- Сервис слушает только loopback, извне подключиться нельзяправильный ответ
- Мешает фаервол с правилом DROP на входящий порт 8080
- Слишком маленький backlog 511, очередь переполнена
- Порт нужно разрешить в
/etc/services
Разбор
Сокет привязан к 127.0.0.1, поэтому соединения на 10.0.0.5:8080 ядро отклоняет с RST, это и есть refused. Нужно слушать 0.0.0.0 или конкретный внешний адрес. DROP дал бы таймаут, а не refused. Backlog тут ни при чём, /etc/services просто справочник имён портов.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.