
Проводные соединения с Ethernet-коммутатором. Доступ к локальной сети не проверяет весь путь до сайта: отдельно исследуют DNS, транспорт и HTTPS.
Raysonho @ Open Grid Scheduler / Grid Engine · источник и условия использования · CC0 1.0
Главная страница появилась, а изображения не загружаются; один сайт открывается, другой долго ждёт; текст виден, но вход в аккаунт зависает. Страница может обращаться к нескольким доменам, поэтому записывайте адрес именно неудачного запроса. В инструментах разработчика браузера это вкладка Network: повторите загрузку и найдите запрос с ошибкой.
Проверьте дату и время Windows, точный текст ошибки сертификата и наличие VPN или прокси. Ошибка имени сертификата, запрет HTTP 403 и тайм-аут — разные результаты. Не начинайте с изменения MTU, пока неизвестно, на каком этапе остановился запрос.
Схема редакции «Мы из 90х».
В примерах 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]
В 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. Не подставляйте пароль в командную строку.
Если у имени есть адреса обоих семейств, повторите один запрос:
Командная строка
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 не завершается | Смотреть ошибку сертификата, фильтрацию и трассу |
| Только через прокси работает | Сравнить правила посредника и прямого доступа |
Учебная таблица редакции.
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». Успех до маршрутизатора также не измеряет путь до сайта.
| Полезная нагрузка | Обычные заголовки | IP-пакет |
|---|---|---|
| 1472 байта | 20 + 8 байт | 1500 байт |
| 1400 байт | 20 + 8 байт | 1428 байт |
Это арифметика размеров, а не результаты измерения конкретной сети.
Учебная таблица редакции.
Сначала только прочитайте параметры интерфейсов:
Командная строка
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. Локальная настройка — проверка гипотезы и возможный обход, а не доказательство исправности остального пути.
При неверном времени исправьте часы и повторите запрос. При неизвестном издателе проверьте, кто выдал сертификат, не работает ли корпоративная HTTPS-инспекция и поддерживает ли её конкретный клиент. При несовпадении имени проверьте URL и сертификат нужного сайта. Не подтверждайте исключение сертификата автоматически.
Не используйте curl -k как «починку» и не включайте старые TLS-протоколы через реестр по случайному совету. Microsoft отдельно описывает параметры Schannel; они действуют на системные компоненты и не обязаны управлять TLS каждой сторонней программы. [8]
Если маленькие запросы работают, а большой ответ зависает, сохраните время, URL без секретных параметров, семейство IP, конфигурацию VPN и результаты ограниченного MTU-теста. Сетевой специалист сможет сопоставить их с трассой на обеих сторонах.