ERR_CONNECTION_RESET лише на одному сайті
Один сайт видає ERR_CONNECTION_RESET, а решта працює? Покрокова перевірка: мережа, розширення, проксі, DNS, годинник і фільтрування SNI за допомогою curl.
Усі інші сайти завантажуються, але один постійно видає «Не вдається отримати доступ до сайту» і ERR_CONNECTION_RESET. Перезавантаження нічого не дає. Цей посібник — дерево рішень. Кожен крок або знаходить причину, або відкидає одну з можливих. Порядок іде від найшвидших перевірок до найпоказовішої.
Що насправді означає «з’єднання скинуто»
TCP-з’єднання може завершитися чемно, а може бути миттєво розірване пакетом скидання (RST). Chrome та інші браузери на основі Chromium показують ERR_CONNECTION_RESET, коли скидання надходить до того, як сторінку доставлено. Firefox показує схожу сторінку «З’єднання було скинуто». Скидання може надійти від сервера сайту, від програми на вашому комп’ютері або від пристрою посередині мережі, який прикидається однією з двох сторін.
Ось чому в однієї помилки такі різні причини. Хитрість у тому, щоб з’ясувати, хто надіслав скидання і коли.
Крок 1: це справді лише один сайт?
Відкрийте два-три не пов’язані між собою сайти, зокрема той, який рідко відвідуєте. Якщо не відкриваються кілька, проблема у вашому підключенні, роутері чи пристрої, а не в одному сайті. Перезапустіть роутер і перевірте, чи працюють інші пристрої в тій самій мережі. Якщо не відкривається лише один сайт, рухайтеся далі.
Крок 2: це лише в одній мережі?
Це найінформативніший тест, і він безкоштовний. Відкрийте сайт через мобільний інтернет замість Wi-Fi або роздайте інтернет з телефона на ноутбук. Якщо в одній мережі сайт відкривається, а в іншій скидається, проблемна мережа причетна. Типові причини описано в статті Чому сайт відкривається через мобільний інтернет, але не через Wi-Fi? Якщо він не працює ніде, імовірніша причина в самому сайті або у вашому пристрої.
Крок 3: інший браузер, приватне вікно, без розширень
Спробуйте приватне вікно чи вікно в режимі інкогніто, де більшість розширень типово вимкнено. Потім спробуйте інший браузер. Блокувальники реклами, розширення для приватності, доповнення «безпечного перегляду» та корпоративні політики браузера можуть закривати з’єднання. Якщо в приватному вікні сайт працює, вмикайте розширення по одному, доки помилка не повернеться.
Крок 4: вимкніть інші VPN, проксі та сканування HTTPS
Будь-що на шляху вашого трафіку може скинути з’єднання, яке йому не подобається:
- Інший VPN чи проксі-застосунок. Вимкніть його повністю і перевірте знову.
- «Сканування HTTPS» або «вебзахист» антивірусу. Деякі пакети безпеки перевіряють зашифрований трафік і обривають з’єднання, які вважають ризикованими. Для перевірки ненадовго призупиніть цю функцію, а потім знову ввімкніть.
- Системний проксі. У Windows дивіться Параметри → Мережа й Інтернет → Проксі-сервер. У macOS дивіться Системні параметри → Мережа → ваше підключення → Деталі → Проксі. Проксі, якого ви не впізнаєте, або залишок від старого застосунку може ламати окремі сайти. Прибирайте лише те, що точно налаштували самі, а на керованому комп’ютері запитайте свій ІТ-відділ.
Крок 5: очистіть кеш DNS і спробуйте зашифрований DNS
Якщо сайт переїхав на інші сервери, ваш пристрій може досі використовувати стару адресу, а це може спричиняти скидання чи тайм-аут. Очистіть кеші:
# Windows (Command Prompt)
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Chrome's own cache: open chrome://net-internals/#dns and click "Clear host cache"
Далі порівняйте відповідь вашої мережі з незалежним резолвером: nslookup example.com, а потім nslookup example.com 1.1.1.1. Якщо вони різняться і працює лише незалежна відповідь, проблема в DNS вашої мережі. Зашифрований DNS виправляє такий тип блокування, як пояснено в статті DoH і DoT. Самі лише різні адреси ще не доказ, бо великі сайти видають різним мережам різні сервери.
Крок 6: перевірте дату й час
Неправильний годинник зазвичай спричиняє помилку сертифіката, а не скидання, але перевірка займає десять секунд. Увімкніть автоматичні дату й час, потім перезавантажте сторінку. Ніколи не проклацуйте попередження про сертифікат, щоб «прорватися» на сторінку, що не відкривається.
Крок 7: можливо, сайт не працює?
Перевірте сторінку стану сайту або його офіційний акаунт у соцмережах чи скористайтеся публічним сервісом «не працює для всіх чи лише для мене». Якщо сайт лежить, зачекайте. Пам’ятайте, що такий сервіс перевіряє зі своїх серверів, тож «працює» там не доводить, що сайт доступний із вашої мережі.
Крок 8: прочитайте скидання за допомогою curl
Якщо сайт і далі скидається лише в одній мережі, подивіться на саме рукостискання. curl вбудовано у Windows 10 і 11, macOS і більшість систем Linux. Запустіть його в терміналі, підставивши свій сайт замість example.com:
curl -v https://example.com
Справне з’єднання виведе кілька рядків на кшталт цих, а потім заголовки сторінки. Точне формулювання залежить від версії curl і бібліотеки TLS:
* Trying 203.0.113.10:443...
* Connected to example.com (203.0.113.10) port 443
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
...
< HTTP/2 200
Шаблон, що вказує на фільтрування за назвою, виглядає так:
* Trying 203.0.113.10:443...
* Connected to example.com (203.0.113.10) port 443
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* Recv failure: Connection reset by peer
curl: (35) Recv failure: Connection reset by peer
Читайте рядок за рядком. «Connected» означає, що TCP-з’єднання з IP-адресою сервера встановлено, тож адресу не заблоковано повністю. «Client hello» — перше TLS-повідомлення, і воно несе назву сайту відкритим текстом у полі SNI. «Connection reset by peer» одразу після нього означає, що щось обірвало з’єднання, щойно назва стала видимою, ще до того, як сервер устиг відповісти. Деякі мережі натомість тихо закривають з’єднання. curl повідомляє про це як про неочікуваний кінець файлу або SSL-помилку «syscall», а Chrome може показати ERR_CONNECTION_CLOSED.
Порівняйте з іншими результатами:
| Що показує curl | Імовірне значення |
|---|---|
| Could not resolve host | Збій DNS або блокування через DNS. Поверніться до кроку 5 |
| Зависає на «Trying», потім тайм-аут | IP-адреса недоступна: блокування за IP, брандмауер або сервер не працює |
| Скидання чи закриття одразу після «Client hello», лише в одній мережі | Імовірно, фільтрування SNI в цій мережі |
| Рукостискання завершується, потім код помилки HTTP | Сайт відповів. Проблема на його боці або у вашому обліковому записі |
Щоб посилити висновок, запустіть ту саму команду в іншій мережі. Якщо там вона працює, фільтр належить першій мережі. Це не здогадка про рідкісний випадок. Дослідження OONI і Centre for Internet and Society 2020 року виявило, що в Bharti Airtel TLS-з’єднання з певними сайтами обривалися одразу після ClientHello, а в Reliance Jio використовували SNI разом з адресою призначення. CIS окремо повідомив, що Jio застосовує перевірку SNI, і цей звіт обговорювали на форумі ntc.party. Більше про це: Як перевірити, чи заблоковано сайт.
Де GreenTunnel допомагає, а де ні
GreenTunnel — локальний VPN, що працює на пристрої. Його розробляємо ми, тож читайте цю частину, пам’ятаючи про нашу упередженість. Він спрямований проти двох причин з переліку вище:
- Фільтрування SNI. Він змінює форму перших TLS-пакетів з’єднання, наприклад розділяє Client hello або його TLS-запис, тож фільтр, що шукає назву сайту, не знаходить її цілою. Як це працює: SNI, DPI та розділення TLS-записів.
- Блокування через DNS. Запити йдуть через зашифрований DNS (DoH або DoT) до Cloudflare, Google чи Quad9, тож мережа не може непомітно повернути підроблену відповідь.
Його інструмент Перевірка URL виконує порівняння з кроків 5 і 8 для одного сайту в мережі, де ви зараз, і каже, чи сайт фільтрують за назвою, чи отримує він підроблену відповідь DNS, чи заблокований за IP-адресою, чи з ним усе гаразд. Якщо якийсь метод працює, можна торкнутися Використати цей метод.
Він не допоможе, коли:
- сайт не працює або скидання надходить від власного сервера сайту чи його служби захисту,
- блокування за IP-адресою, що проявляється як тайм-аут на «Trying»,
- робоча, шкільна чи інша керована мережа блокує сайт навмисно. Правила такої мережі встановлює її власник. Поважайте політику і зверніться до адміністратора, якщо доступ потрібен для роботи,
- причина в розширенні, антивірусі чи застарілому DNS на вашому власному пристрої. Виправляйте це безпосередньо.
Чесні обмеження та відповідальне використання
GreenTunnel не приховує вашу IP-адресу і не є інструментом анонімності. Він не обходить блокування за IP, вимкнення мережі чи білі списки і не обіцяє відкрити якийсь конкретний сайт. Фільтри змінюються з часом і різняться в різних провайдерів, тож сьогоднішній результат наступного місяця може бути іншим.
Поширені запитання
Чи ERR_CONNECTION_RESET завжди означає, що сайт заблоковано?
Ні. Причиною можуть бути розширення, сканування HTTPS в антивірусі, залишений проксі, застарілий DNS або сам сайт. Блокування стає ймовірним лише тоді, коли скидання відбувається в одній мережі, одразу після Client hello, а деінде сайт працює.
Чому сайт працює через мобільний інтернет, але скидається у Wi-Fi?
Дві мережі використовують різних провайдерів, резолвери й фільтри. Одна з них може читати назву сайту або інакше відповідати на запити DNS. Запустіть curl -v в обох і порівняйте, де кожна зупиняється.
Чи допоможе очищення cookie від скидання з’єднання?
Рідко. Cookie надсилаються після встановлення з’єднання, а більшість скидань стається раніше. Очищення даних сайту може допомогти, коли сам сайт відхиляє зіпсований сеанс, але тоді зазвичай з’являється помилка HTTP.
Чи може GreenTunnel виправити скидання через брандмауер моєї компанії?
Він для цього не призначений. Керована мережа блокує сайти згідно з політикою свого власника. Зверніться до адміністратора, а не намагайтеся це обійти.
Джерела
- OONI і Centre for Internet and Society, Investigating TLS blocking in India, липень 2020 року.
- Centre for Internet and Society, Reliance Jio is using SNI inspection to block websites.
- Форум ntc.party, SNI filtering by Indian ISP Reliance Jio.
- Проєкт curl, посібник curl (параметр
-v).