Сеть без гаданий: диагностируйте по одному уровню
Терминал особенно удобен для диагностики сети, потому что каждый слой можно увидеть отдельно. Задача не в том, чтобы выучить теорию сетей, а в том, чтобы понимать, какой следующий вопрос задать, когда запрос не работает.
Запрос к сайту состоит из нескольких маленьких вопросов
До того как браузер покажет страницу, имя должно разрешиться в адрес, на нужном порту должен отвечать сервис, TLS при HTTPS должен установить доверенное соединение, а HTTP — вернуть ответ. Ошибка на разных уровнях может выглядеть одинаково, если видеть только финальное сообщение браузера.
Команды терминала позволяют разложить цепочку: DNS → порт → TLS → HTTP. Каждый успешный уровень сразу убирает целый класс догадок.
Имя — это не адрес
192.0.2.10/24 удобен, чтобы понять префикс, маску и диапазон без зависимости от живого сервиса.
Если DNS вернул адрес, это доказывает только работу разрешения имени. Это ещё не означает, что на адресе отвечает веб-сервер — выводы по уровням нужно держать раздельно.
install ping dns ip tcp curl cert net geodns example.com -a -aaaaip 192.0.2.10/24ip serverВ lil-terminal `ping` — это HTTP-проверка доступности
В Linux, macOS и Windows слово
Используйте -t, когда вопрос звучит «отвечает ли HTTP-адрес, куда он в итоге перенаправил запрос и сколько это заняло?». -i полезен, когда нужен именно контекст разрешённых IPv4/IPv6-адресов.
ping https://example.com -tping example.com -iДоступный адрес ещё не означает нужный сервис и доверие
Не превращайте -k в способ «починить» TLS. Отключение проверки полезно только как диагностика: оно может подтвердить, что проблема именно в проверке сертификата, но не должно превращать небезопасное соединение в норму.
tcp example.com 443 -tls -icert -h example.comtcp example.com 80HTTP-заголовки часто объясняют то, что скрывает браузер
Перенаправления, Content-Type, заголовки кеширования и фактический код ответа становятся понятнее, когда вы читаете протокол, а не только отрисованную страницу.
curl https://example.com -Icurl https://example.com -i -t 10curl https://example.com -o network-example.htmlЛокальные интерфейсы и GeoIP — это контекст, а не доказательство
Используйте такую информацию только как диагностический контекст. Местоположение IP — оценка сети, а не утверждение о личности человека.
net -lnet -4geo example.com -cСохраните ту последовательность проверки, которая действительно помогла
Если вы регулярно проверяете один и тот же хост, сохраните рабочую цепочку: HTTP-доступность, DNS, TLS-порт, заголовки, сертификат. На другом сервере вы зададите те же вопросы и сможете сравнить ответы вместо того, чтобы снова изобретать диагностику.
Это хороший пример того, зачем сценарии сохраняют знания. Они не «чинят сеть», а сохраняют дисциплинированный способ её наблюдать.
Сохраните это как сценарий
Сохраните блок как network-check.lil. Он выполняет пять проверок example.com без изменения данных, каждая отвечает за свой слой. Меняйте имя хоста только тогда, когда осознанно хотите диагностировать другой сервис.
#lil
@install ping dns tcp curl cert
ping https://example.com -t
dns example.com -a -aaaa
tcp example.com 443 -tls
curl https://example.com -I
cert -h example.com