СЕРВИСНЫЕ УСЛУГИ
СТУДИЯ В ЛИПЕЦКЕ

Советы · Windows · 5 минут

Открываются не все сайты: как проверять MTU, IPv6 и прохождение HTTPS

Пошаговая проверка сайтов, которые открываются частично: DNS, TCP 443, TLS, IPv4/IPv6, прокси и осторожная проверка MTU без отключения защиты.
Проводные соединения с Ethernet-коммутатором. Доступ к локальной сети не проверяет весь путь до сайта: отдельно исследуют DNS, транспорт и HTTPS.

Проводные соединения с Ethernet-коммутатором. Доступ к локальной сети не проверяет весь путь до сайта: отдельно исследуют DNS, транспорт и HTTPS.
Raysonho @ Open Grid Scheduler / Grid Engine · источник и условия использования · CC0 1.0

Разложите «сайт не работает» на проверяемые этапы

Главная страница появилась, а изображения не загружаются; один сайт открывается, другой долго ждёт; текст виден, но вход в аккаунт зависает. Страница может обращаться к нескольким доменам, поэтому записывайте адрес именно неудачного запроса. В инструментах разработчика браузера это вкладка Network: повторите загрузку и найдите запрос с ошибкой.

Проверьте дату и время Windows, точный текст ошибки сертификата и наличие VPN или прокси. Ошибка имени сертификата, запрет HTTP 403 и тайм-аут — разные результаты. Не начинайте с изменения MTU, пока неизвестно, на каком этапе остановился запрос.

Путь HTTPS-запроса
  1. DNSПолучен адрес нужного имени
  2. TCPУстановлено соединение с портом
  3. TLSСогласована защита и проверен сертификат
  4. HTTPПолучен ответ и загружены зависимости

Схема редакции «Мы из 90х».

Получите адреса и проверьте TCP

В примерах site.example заменяют реальным проблемным именем:

PowerShell

Resolve-DnsName -Name site.example -Type A
Resolve-DnsName -Name site.example -Type AAAA
Test-NetConnection -ComputerName site.example -Port 443 -InformationLevel Detailed

Сохраните RemoteAddress: при нескольких A/AAAA проверка могла выбрать только один адрес. TcpTestSucceeded=True подтверждает TCP-соединение, но не TLS и не загрузку страницы. Ping может быть запрещён при работающем HTTPS. [1], [2]

Если есть обязательный HTTP-прокси, обычная прямая проверка сайта не повторяет маршрут браузера. Запишите параметры Параметры → Сеть и Интернет → Прокси и настройки самого браузера. [3]

Посмотрите, до какого этапа доходит curl

В Windows вызывайте именно curl.exe, чтобы не попасть на одноимённый псевдоним старого Windows PowerShell. Уточните установленную версию и выполните обычный GET без сохранения тела:

Командная строка

curl.exe --version
curl.exe --verbose --connect-timeout 10 --max-time 30 --output NUL "https://site.example/"

Вывод помогает отличить ошибку разрешения имени, подключения и проверки TLS от полученного HTTP-ответа. Команда не повторяет все функции браузера: у curl могут быть другие прокси, хранилище доверия и возможности HTTP. HTTPS-посредник также виден в диагностике. Описание опций и кодов завершения есть в официальном руководстве curl. [4]

Использован GET: некоторые сайты отклоняют HEAD, поэтому одна команда с -I может дать непоказательный результат. Полученный 401, 403 или 404 означает, что сервер HTTP уже ответил; дальше разбирают URL, доступ, аккаунт и правила сайта.

Перед передачей verbose-вывода уберите токены, параметры ссылок, заголовки авторизации и cookies. Не подставляйте пароль в командную строку.

Сравните IPv4 и IPv6 без глобального отключения

Если у имени есть адреса обоих семейств, повторите один запрос:

Командная строка

curl.exe -4 --verbose --connect-timeout 10 --max-time 30 --output NUL "https://site.example/"
curl.exe -6 --verbose --connect-timeout 10 --max-time 30 --output NUL "https://site.example/"

Если AAAA нет или сеть не предоставляет IPv6, отрицательный второй тест ожидаем. Если IPv6 есть и соединение ломается только по нему, сравните маршруты, VPN и другую разрешённую сеть. Команды проверяют эту конкретную комбинацию имени, клиента и сети; они не доказывают неисправность IPv6 во всей Windows. [4], [5]

Microsoft не рекомендует отключать IPv6 и отвязывать его от интерфейсов как общее исправление: от него зависят компоненты системы. Для диагностики достаточно ограничить семейство в отдельном запросе. Постоянную политику адресов меняют после установления причины. [5]

Как читать сравнение
НаблюдениеСледующий шаг
Оба curl-запроса получают HTTP-ответПроверять браузер и отдельные ресурсы страницы
Только одно семейство работаетПроверять маршрут и доступность этого семейства
TCP есть, TLS не завершаетсяСмотреть ошибку сертификата, фильтрацию и трассу
Только через прокси работаетСравнить правила посредника и прямого доступа

Учебная таблица редакции.

Что на самом деле проверяет ping с флагом DF

MTU — ограничение размера IP-пакета на пути. Туннель добавляет служебные данные; если уведомления об ограничении размера не доходят, часть обмена способна зависать. Но такой симптом не уникален для MTU.

Для IPv4 к известному узлу, который действительно отвечает на ICMP Echo, можно сравнить размеры:

Командная строка

ping -4 -f -l 1472 192.0.2.10
ping -4 -f -l 1400 192.0.2.10

Адрес учебный: замените его разрешённым проверочным узлом на нужном пути. -l задаёт полезную нагрузку Echo, -f запрещает фрагментацию IPv4. Для обычных заголовков IPv4 и ICMP к 1472 добавляются 20+8 байт: получается 1500. Эта арифметика не является универсальным расчётом для IPv6, дополнительных заголовков и любого туннеля. [6]

Явное сообщение о необходимости фрагментации полезно. Простое отсутствие ответа может означать блокировку ICMP, потери или недоступный узел. Нельзя по одному тайм-ауту заключить, что «MTU точно 1400». Успех до маршрутизатора также не измеряет путь до сайта.

Учебный расчёт IPv4 Echo
Полезная нагрузкаОбычные заголовкиIP-пакет
1472 байта20 + 8 байт1500 байт
1400 байт20 + 8 байт1428 байт

Это арифметика размеров, а не результаты измерения конкретной сети.

Учебная таблица редакции.

Как провести ограниченный тест MTU и вернуть значение

Сначала только прочитайте параметры интерфейсов:

Командная строка

netsh interface ipv4 show subinterfaces
netsh interface ipv6 show subinterfaces

Сохраните имя нужного интерфейса и исходное значение. При подтверждённой гипотезе и наличии локального доступа можно временно изменить IPv4 MTU только этого интерфейса. Не делайте такой опыт через единственный удалённый канал. [7]

Командная строка

netsh interface ipv4 set subinterface "MyVPN" mtu=1400 store=active

Здесь MyVPN и 1400 — условный пример, а не рекомендуемые параметры любой сети. Команду выполняют с повышенными правами после выбора подходящего значения. store=active относится к действующей конфигурации; драйвер VPN может переустановить её при переподключении. Повторите тот же HTTPS-запрос, затем верните сохранённое число той же командой с исходным mtu=. Не оставляйте уменьшение, если сравнение не подтвердило пользу.

Постоянное исправление может находиться на маршрутизаторе, VPN-шлюзе или в обработке сообщений об MTU. Локальная настройка — проверка гипотезы и возможный обход, а не доказательство исправности остального пути.

Если проблема в TLS, работайте с точной ошибкой

При неверном времени исправьте часы и повторите запрос. При неизвестном издателе проверьте, кто выдал сертификат, не работает ли корпоративная HTTPS-инспекция и поддерживает ли её конкретный клиент. При несовпадении имени проверьте URL и сертификат нужного сайта. Не подтверждайте исключение сертификата автоматически.

Не используйте curl -k как «починку» и не включайте старые TLS-протоколы через реестр по случайному совету. Microsoft отдельно описывает параметры Schannel; они действуют на системные компоненты и не обязаны управлять TLS каждой сторонней программы. [8]

Если маленькие запросы работают, а большой ответ зависает, сохраните время, URL без секретных параметров, семейство IP, конфигурацию VPN и результаты ограниченного MTU-теста. Сетевой специалист сможет сопоставить их с трассой на обеих сторонах.

Made on
Tilda