VLESS Connection Refused: как обойти блокировку и восстановить соединение

Практическое руководство по устранению ошибки connection refused в VLESS Reality: диагностика, обход DPI, смена порта, SNI и транспорта, настройка клиентов и проверка результата.

Что означает ошибка connection refused в VLESS

Ошибка connection refused в клиенте VLESS означает, что TCP-соединение с сервером не устанавливается: сервер активно отверг запрос, либо пакеты молча отбрасываются. Это отличается от connection timeout, когда запрос просто игнорируется. На практике обе ошибки часто возникают по одним и тем же причинам: закрытый порт, неработающий процесс xray, неверный IP или порт в конфигурации, а также блокировка на уровне провайдера или DPI.

Важно понимать: connection refused — это не всегда признак блокировки. Если сервер доступен по SSH, но VPN не подключается, проблема почти наверняка в протоколе или конфигурации. Если же SSH тоже не отвечает, вероятно, заблокирован IP-адрес сервера. Прежде чем менять настройки, проверьте базовые вещи: запущен ли xray, открыт ли порт в файрволе, правильный ли адрес указан в клиенте.

Первичная диагностика: сервер, порт и процесс

Начните с проверки состояния сервера. Выполните по SSH:

systemctl status xray

Если служба неактивна, запустите её и посмотрите журнал ошибок:

sudo systemctl start xray
sudo journalctl -u xray -n 50 --no-pager

Убедитесь, что xray слушает нужный порт:

sudo ss -tlnp | grep 443

Если порт не отображается, проверьте конфигурационный файл на ошибки JSON:

xray run -test -config /usr/local/etc/xray/config.json

Также проверьте файрвол: для UFW выполните sudo ufw status, для iptables — sudo iptables -L INPUT -n. Если вы используете облачного провайдера, проверьте security group в веб-консоли — часто порт закрыт именно там.

С клиентской стороны проверьте доступность порта:

telnet ваш-сервер 443

Если соединение не устанавливается, попробуйте с другой сети (мобильный интернет, другая Wi-Fi). Это поможет понять, блокирует ли ваш провайдер IP или порт.

Типичные причины connection refused и их устранение

Неверный IP или порт в конфигурации клиента. Проверьте, что адрес сервера и порт точно совпадают с теми, что указаны в inbound-настройках xray. Опечатка в IP или порту — самая частая причина.

Файрвол или security group. Даже если xray запущен, порт может быть закрыт на уровне ОС или облачного провайдера. Добавьте правило для входящих TCP-соединений на нужный порт.

Процесс xray не запущен или упал. Проверьте статус службы и журнал. Если xray не стартует, исправьте ошибки в конфигурации (например, лишняя запятая в JSON или неверное значение dest).

Перегрузка сервера. Если на сервере слишком много одновременных подключений, он может отказывать в новых соединениях. Проверьте нагрузку командой top и количество ESTAB-соединений через ss -tn.

Блокировка IP провайдером. Если сервер доступен по SSH, но порт 443 не отвечает, возможно, провайдер блокирует IP-адрес. Проверьте с другой сети. Если проблема подтверждается, потребуется сменить IP или использовать CDN-проксирование.

Как отличить блокировку DPI от обычного отказа соединения

Современные системы DPI (например, ТСПУ в России) действуют изощрённо: они не всегда отправляют RST-пакеты, а могут молча отбрасывать пакеты после установления соединения. Это приводит к тому, что TCP-соединение устанавливается, но данные не проходят — в ss на сервере вы увидите ESTAB с ненулевым Send-Q и множество FIN-WAIT-1 от одного клиента.

Чтобы проверить, не вмешивается ли DPI, выполните на сервере:

ss -tnp 'sport = :443'

Здоровое соединение выглядит как ESTAB с Send-Q = 0. Если вы видите Send-Q > 0 или много FIN-WAIT-1, это признак того, что пакеты после рукопожатия отбрасываются. Также проверьте, кто из пользователей испытывает проблемы: если все, то проблема на сервере; если только некоторые — вероятно, DPI на стороне их провайдера.

Ещё один признак DPI — ошибка connection timeout вместо connection refused: пакеты просто игнорируются, а не отклоняются активно. Если SSH работает, а VPN нет, это почти всегда сигнатура блокировки протокола.

Обход блокировки: смена порта и SNI

Самый простой способ обойти DPI — сменить порт с 443 на высокий порт (например, 52731). DPI часто сканирует только стандартные порты, экономя ресурсы. Если после смены порта соединение восстанавливается, значит, блокировка была порт-ориентированной. Не забудьте открыть новый порт в файрволе и обновить конфигурацию клиента.

Второй шаг — смена SNI (Server Name Indication). В Reality параметр sni должен указывать на сайт, чей TLS-отпечаток вы имитируете. Если вы используете популярные SNI (google.com, yandex.ru, vk.com), они могут быть заблокированы. Выбирайте менее известные зарубежные сайты с TLS 1.3, например:

  • www.samsung.com
  • www.asus.com
  • www.amd.com
  • speed.cloudflare.com

Проверьте поддержку TLS 1.3 через SSL Labs. Также убедитесь, что dest в конфигурации сервера указан без протокола: www.samsung.com:443, а не https://www.samsung.com:443.

Изменение TLS-отпечатка и транспорта

DPI может классифицировать трафик по TLS-отпечатку ClientHello. В Reality параметр fp (fingerprint) задаёт имитацию браузера. Если вы используете chrome, попробуйте firefox или qq. Некоторые пользователи сообщают, что пустой fingerprint (Go default) тоже работает. Измените fp в конфигурации клиента и на сервере (если используется 3x-ui, это поле uTLS).

Если смена порта, SNI и fingerprint не помогает, измените транспорт. Вместо TCP можно использовать:

  • WebSocket — трафик выглядит как обычный HTTP, хорошо работает через CDN.
  • gRPC — поток на основе HTTP/2, маскируется под API-запросы.
  • xHTTP — новый транспорт в xray, специально разработанный для обхода пост-рукопожаточного анализа DPI.

Каждый транспорт добавляет небольшую нагрузку, но значительно меняет форму трафика. Начните с WebSocket, если у вас есть домен и CDN, или с xHTTP, если хотите максимальную устойчивость.

Проверка DNS-утечек и настройка клиента

Даже если соединение установлено, DNS-запросы могут идти в обход туннеля, что раскрывает ваши посещаемые домены. Чтобы проверить, нет ли утечек, зайдите на browserleaks.com/dns и убедитесь, что видны только ваши DNS-серверы (например, 8.8.8.8 или 1.1.1.1), а не DNS провайдера.

В V2rayN (Windows) настройте Domain Strategy на IPIfNonMatch и добавьте DNS-серверы в конфигурацию. В v2rayNG (Android) включите локальный DNS и сниффинг. Пример DNS-конфигурации:

{
  "dns": {
    "servers": [
      "8.8.8.8",
      {
        "address": "1.1.1.1",
        "domains": ["geosite:geolocation-!cn"]
      }
    ]
  }
}

Также убедитесь, что системный прокси или TUN-режим активны. Если V2rayN показывает зелёную иконку, но IP не меняется, проверьте, что выбран режим Global или Rule-based, а не Direct.

Особенности блокировок в России и выбор протокола

В России ТСПУ блокирует VPN по IP-адресу и по сигнатуре протокола. WireGuard, OpenVPN и старые версии Shadowsocks полностью заблокированы. AmneziaWG 2.0 и VLESS+Reality продолжают работать, но требуют правильной настройки. Мобильные операторы (Yota, Tele2, Билайн, МегаФон) блокируют агрессивнее домашних провайдеров: если VPN работает по Wi-Fi, но не через мобильную сеть, нужен другой протокол.

Для максимальной устойчивости выбирайте VLESS+Reality с неочевидным SNI. Если нужна простота, используйте AmneziaWG 2.0 — он настраивается автоматически через приложение AmneziaVPN. Помните: если сервер заблокирован по IP, смена протокола не поможет — нужно менять IP. При этом после замены IP обязательно смените протокол, иначе новый адрес заблокируют за 1-2 дня.

Для серверов из России выбирайте хостинг в Финляндии (Хельсинки), Германии (Франкфурт) или Нидерландах (Амстердам) — там низкий пинг и стабильное соединение.

Пошаговый план действий при connection refused

  1. Проверьте SSH-доступ. Если SSH не работает, IP заблокирован — меняйте IP у хостера.
  2. Проверьте статус xray и порт. Убедитесь, что служба активна и порт открыт.
  3. Проверьте конфигурацию клиента. Сверьте IP, порт, UUID, pbk, sid, sni, fp, flow.
  4. Проверьте с другой сети. Если работает с мобильного интернета, проблема в вашем провайдере.
  5. Смените порт на высокий (например, 52731) и проверьте.
  6. Смените SNI на менее популярный сайт с TLS 1.3.
  7. Измените fingerprint на firefox или пустой.
  8. Смените транспорт на WebSocket или xHTTP.
  9. Проверьте DNS-утечки и настройте клиент.
  10. Если ничего не помогло, рассмотрите переход на AmneziaWG 2.0 или другой протокол.

Каждый шаг занимает несколько минут. Не меняйте все настройки сразу — тестируйте после каждого изменения.

Профилактика и долгосрочная устойчивость

Ни одно решение не вечно: DPI постоянно эволюционирует. Чтобы минимизировать простои, поддерживайте два inbounds с разными портами и SNI. Если один вариант блокируют, пользователи могут переключиться на другой без ожидания.

Регулярно обновляйте xray-core до последней версии — новые версии добавляют обходные методы. Следите за сообществом (например, net4people/bbs) для получения информации о свежих блокировках.

Используйте автоматические проверки: скрипт, который периодически тестирует соединение и уведомляет о сбоях. Это позволит быстро реагировать на блокировки.

И главное: не полагайтесь на один сервер. Имейте запасной сервер у другого хостера и в другой стране. Если основной заблокирован, переключение займёт минуты.

Вопросы и ответы

Что делать, если VLESS connection refused, но SSH работает?

Если SSH подключается, сервер доступен, и проблема в протоколе или конфигурации. Проверьте, запущен ли xray, открыт ли порт, и сверьте параметры клиента (UUID, pbk, sid, sni). Если всё верно, вероятно, DPI блокирует сигнатуру протокола. Попробуйте сменить порт на высокий, SNI на менее популярный сайт, fingerprint на firefox или транспорт на WebSocket/xHTTP.

Как понять, что IP-адрес сервера заблокирован?

Если SSH-подключение к серверу не устанавливается (timeout), а раньше работало, скорее всего, IP заблокирован ТСПУ. Проверьте с другой сети (мобильный интернет). Если SSH не работает отовсюду, меняйте IP у хостера. После замены обязательно смените протокол, иначе новый адрес заблокируют за 1-2 дня.

Какие SNI лучше использовать для VLESS Reality в России?

Избегайте популярных SNI: google.com, yandex.ru, vk.com, bing.com — они заблокированы. Выбирайте малоизвестные зарубежные сайты с TLS 1.3: www.samsung.com, www.asus.com, www.amd.com, speed.cloudflare.com. Проверьте поддержку TLS 1.3 через SSL Labs. Убедитесь, что dest и sni совпадают и указаны без протокола.

Помогает ли смена порта с 443 на высокий порт обойти DPI?

Да, часто помогает. DPI часто сканирует только стандартные порты (443, 80), экономя ресурсы. Высокие порты (40000+) часто пропускаются. Если после смены порта соединение восстанавливается, значит, блокировка была порт-ориентированной. Не забудьте открыть новый порт в файрволе и обновить конфигурацию клиента.

Что делать, если VPN работает по Wi-Fi, но не через мобильную сеть?

Мобильные операторы блокируют VPN агрессивнее домашних провайдеров. Используйте AmneziaWG 2.0 или VLESS+Reality — они лучше работают в мобильных сетях. Также проверьте, не блокирует ли оператор конкретный порт или SNI. Попробуйте сменить порт на высокий или использовать другой транспорт.

Как проверить, нет ли DNS-утечек при использовании VLESS?

Зайдите на browserleaks.com/dns и посмотрите, какие DNS-серверы отображаются. Если видны DNS вашего провайдера, значит, DNS-запросы идут в обход туннеля. В V2rayN настройте Domain Strategy на IPIfNonMatch и добавьте DNS-серверы (8.8.8.8, 1.1.1.1). В v2rayNG включите локальный DNS и сниффинг.

Какие протоколы сейчас работают в России, а какие заблокированы?

Полностью заблокированы WireGuard, OpenVPN, Shadowsocks (Outline), старые версии AmneziaWG. Работают AmneziaWG 2.0 и VLESS+Reality с неочевидным SNI. VLESS с популярными SNI (google.com, yandex.ru) работает частично. Если нужна простота, выбирайте AmneziaWG 2.0; для максимальной устойчивости — VLESS+Reality.