Menu
Coddy logo textTech

Отказано или превышено время ожидания

Урок 18 из 47 курса Сетевое взаимодействие в терминале на Coddy.

Когда соединение не удаётся установить, это происходит одним из нескольких определённых способов, и каждый из них указывает в своё место. curl сообщает, какой именно, с помощью своего кода завершения — числа, которое команда оставляет после себя и которое можно прочитать как $?.

curl -s http://127.0.0.1:9999/
echo $?

Три из них стоит запомнить:

  • 0: успех
  • 7: в соединении отказано — машина ответила и сообщила, что там никто не прослушивает соединения
  • 28: время ожидания истекло — вообще никто не ответил

7 — это быстро, а 28 — медленно, и именно это различие помогает поставить диагноз. Отказ означает, что вы достигли машины и получили прямой отказ, значит, адрес правильный, а служба не запущена. Истечение времени ожидания означает, что ваш запрос исчез, что обычно значит: брандмауэр отбросил его или адрес указан неправильно.

challenge icon

Задание

Сложно

Добейтесь обеих ошибок и прочитайте коды.

  1. Запросите страницу по адресу http://127.0.0.1:9999/, где ничего не прослушивает соединения, и выведите refused=, за которым следует код завершения
  2. Сделайте то же самое для http://10.255.255.1/ — адреса, который поглощает трафик, — с параметром --max-time 2, и выведите timeout= и его код завершения

Ожидаемый вывод:

refused=7
timeout=28

$? содержит код завершения только что выполненной команды, поэтому прочитайте его немедленно.

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

Терминал
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Сетевое взаимодействие в терминале

Потренируйтесь самостоятельно: Песочница Terminal