Ответ вслух Senior Сеть в Linux спрашивают часто обновлено

Сервис недоступен: алгоритм

Вопрос

Пользователи жалуются, что https://api.example.com не открывается. Как будешь искать причину?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Сначала уточняю симптом: таймаут, мгновенный отказ, ошибка сертификата или 502. Это сразу сужает круг.

Что должно прозвучать в ответе

  • Воспроизвести и уточнить симптом: таймаут, refused, ошибка TLS, 5xx

  • DNS: `dig +short`, правильный ли IP, не истёк ли домен

  • Сеть и порт снаружи: `curl -v`, `nc -zv host 443`; refused или timeout

  • На сервере: слушает ли процесс и на каком адресе (`ss -tlnp`), отвечает ли локально

  • Фаервол на хосте и в облаке, балансировщик и его health checks

  • Логи прокси и приложения, сертификат и его срок

Что могут спросить следом

  • Как отличить проблему DNS от проблемы сети?
  • Что проверишь, если curl локально работает, а снаружи нет?
  • Как понять, что истёк TLS-сертификат?

Разбор

Сначала уточняю симптом: таймаут, мгновенный отказ, ошибка сертификата или 502. Это сразу сужает круг. Дальше иду по стеку. DNS: dig +short api.example.com, совпадает ли адрес с ожидаемым, нет ли расхождения между резолверами. Потом снаружи curl -v https://api.example.com: в выводе видно, на каком этапе остановились, резолв, TCP, TLS или HTTP. Отдельно nc -zv: refused значит хост жив, но порт не слушают, таймаут значит фаервол или маршрут. На самом сервере смотрю ss -tlnp: слушает ли nginx 443 и на каком адресе, затем curl -v localhost. Если локально работает, а снаружи нет, это фаервол хоста (iptables -L -n -v, nft list ruleset), security group в облаке или балансировщик. Если отдаёт 502, смотрю лог nginx и жив ли апстрим. И не забываю про сертификат: openssl s_client -connect покажет срок действия.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.