REALITY через мобильную сеть: почему Wi-Fi работает, а LTE нет
Разбираемся, почему REALITY-подключение может работать через Wi-Fi, но не через LTE. Пошаговая диагностика клиента, сети, DNS и сервера, а также типичные ошибки.
Содержание
Почему Wi-Fi работает, а LTE нет: общая картина
Ситуация, когда REALITY-подключение отлично работает через домашний Wi-Fi, но отказывается работать при использовании мобильного интернета, встречается довольно часто. Это не значит, что протокол нестабилен: скорее всего, причина кроется в особенностях мобильной сети, настройках клиента или окружении на сервере. В этой статье мы разберём, как системно подойти к диагностике и устранить проблему.
С чего начать диагностику: клиент, ядро, сеть
Прежде чем менять конфигурацию, важно понять, на каком уровне возникает сбой. Разделим всю цепочку на три уровня: клиент (приложение и его настройки), ядро (Xray, sing-box и его логи) и сеть (оператор, маршрутизация, DNS). Следуйте шагам по порядку.
1. Проверьте клиент
Убедитесь, что на мобильном устройстве используется актуальная версия клиента, которая поддерживает REALITY. Например, для Xray-core это v1.8.0 и новее, для sing-box — соответствующая версия с поддержкой REALITY. Откройте профиль и сверьте все поля, особенно reality.
2. Включите логирование
В настройках клиента или в конфигурации ядра включите запись логов уровня debug. Для Xray-core используйте раздел log с уровнем debug, для sing-box — log.level. При подключении через LTE посмотрите, до какого этапа доходит соединение: до установки TCP, до TLS-хендшейка или дальше.
3. Проверьте связь до сервера
Не полагайтесь только на виртуальную сеть. Используйте независимые инструменты, например ping и traceroute (или mtr), чтобы понять, доступен ли IP-адрес сервера с сети мобильного оператора. Если пакеты теряются или маршрут упирается в чёрную дыру, проблема на уровне оператора.
Сетевые ограничения оператора и обход
Мобильные операторы часто применяют DPI и блокируют порты, которые выходят за пределы стандартного веб-трафика. REALITY использует TLS поверх TCP на 443 порту, поэтому при правильной настройке он неотличим от обычного HTTPS. Однако если на сервере задан необычный SNI-сертификат или IP-адрес сервера попал в чёрный список, DPI может блокировать соединение.
- Проверьте SNI. Поле
serverNameв настройках клиента должно указывать на реально существующий и популярный сайт (например,www.cloudflare.com). Сервер должен иметь соответствующую запись в DNS. - Попробуйте другой порт. Хотя 443 — стандарт, некоторые операторы пропускают 8443 или 2053. Смените порт на сервере и в профиле клиента — это может обойти фильтрацию.
- MTU. LTE-сети имеют MTU 1400 байт и меньше. В клиенте или на самом устройстве можно уменьшить MTU для туннеля до 1350 или 1280, чтобы избежать фрагментации. В Xray-core это настраивается через
sockoptв кдиенте или ядре.
Проверка настроек клиента REALITY
REALITY использует специальное поле reality в настройках outbound. Проверьте следующие параметры:
server— IP-адрес или домен сервера.port— порт, обычно 443.security— должно бытьreality.reality: publicKey— публичный ключ сервера.reality: shortId— короткий идентификатор, может быть пустым.reality: serverName— SNI, должен совпадать с серверным.flow— если используется XTLS, укажитеxtls-rprx-vision, в противном случае не заполняйте.network— для REALITY обычноtcp.tls— включить (или через security).
На мобильном устройстве также проверьте, не включает ли клиент автоматически «обход» через прокси или другие надстройки, которые могут конфликтовать. Импортируйте профиль заново, скачав его по QR-коду или вручную вставив JSON.
Проблемы с DNS при мобильном подключении
Мобильные операторы часто подменяют DNS-запросы, принудительно направляя их на свои серверы. Если REALITY использует доменное имя сервера, но DNS резолвится неправильно, вы получите ошибку. Решение — прописать сторонние DNS-серверы в настройках клиента (например, 1.1.1.1 или 8.8.8.8) и/или включить DoH через dns в конфигурации ядра. Для Xray-core пример:
{"dns": {"servers": ["https://1.1.1.1/dns-query"]}}
В sing-box аналогично: dns.servers.
Настройка сервера и файрвола
Хотя проблема чаще на стороне клиента или оператора, проверьте и серверную часть. Убедитесь, что в файрволе сервера открыт нужный порт и разрешены входящие TCP-соединения. Если вы используете облачный сервер, проверьте правила security group. Также важно, чтобы сервер не имел строгих ограничений на время жизни соединения или количество одновременных подключений.
Некоторые мобильные операторы блокируют IP-адреса, которые активно используются для VPN. Если ваш сервер попадает под фильтрацию, попробуйте сменить IP-адрес или использовать домен, за которым стоит CDN. Однако REALITY не работает через CDN напрямую, так как CDN обычно не передаёт оригинальный TLS-хендшейк. Поэтому этот вариант сложен и требует дополнительных ухищрений (например, через WebSocket), но для REALITY это нестандартно.
Типичные ошибки и рекомендации
- Забывают указать
security: "reality"и используют простоtls— соединение проходит, но не как REALITY. - Не совпадает
shortIdна клиенте и сервере — соединение сбрасывается. - Используют значение
flowxtls-rprx-vision, но ядро не поддерживает его — нужно сверить версии. - MTU в туннеле не уменьшено, из-за чего крупные TLS-пакеты не проходят через LTE.
- Слишком маленький таймаут в клиенте — мобильная сеть медленнее устанавливает соединение.
Заключение
Если REALITY работает через Wi-Fi, но не через LTE, не паникуйте. Пройдите по шагам диагностики: проверьте клиент, включите логи, протестируйте доступность сервера. Обратите внимание на MTU, DNS и SNI. В большинстве случаев проблема решается сменой SNI, порта или настройки MTU. Если ничего не помогает, соберите логи и обратитесь к официальной документации Xray или sing-box — там есть разделы troubleshooting. Ссылки на источники приведены ниже.
Проверено на практике
- Дата проверки: 2025-03-30
- Среда: На основе официальной документации Xray и sing-box
- Версии:
Мини-чеклист
- Проверить актуальные версии клиента и ядра
- Включить debug-логирование
- Выполнить ping/traceroute до сервера
- Сверить все поля REALITY в профиле
- Уменьшить MTU до 1280-1350
- Прописать сторонние DNS или DoH
- Попробовать изменить порт или SNI
- Обновить конфигурацию сервера при необходимости
Частые ошибки
- Использование security=tls вместо security=reality
- Несовпадение shortId между клиентом и сервером
- Неправильное значение flow (например, xtls-rprx-vision без поддержки)
- Отсутствие настройки MTU для мобильной сети
- Игнорирование DNS-фильтрации оператора
- Слишком агрессивные тайм-ауты в клиенте
Источники и документация
FAQ
Почему REALITY не работает на LTE, хотя на Wi-Fi всё нормально?
Скорее всего, дело в ограничениях мобильного оператора: DPI, MTU или подмена DNS. Проверьте SNI, порт, MTU и логи. Попробуйте уменьшить MTU до 1350 и прописать сторонние DNS.
Как уменьшить MTU для REALITY?
В Xray-core в настройках outbound добавьте sockopt: {"tcpMaxSeg": 1350}. В sing-box используйте параметр tcp.max_segment_size. Также можно изменить MTU в настройках ОС для интерфейса туннеля.
Что такое SNI и как его правильно выбрать?
SNI — это имя сервера, указываемое в TLS-рукопожатии. Для REALITY выберите популярный сайт, который доступен из вашей страны и не подвержен фильтрации, например Cloudflare. Проверьте, что сайт не блокируется оператором. На сервере и клиенте поле serverName должно совпадать.
Может ли помочь смена порта?
Да, иногда оператор блокирует только 443 порт. Попробуйте 8443 или 2053, но учитывайте, что многие сети пропускают только 80 и 443. Экспериментируйте.
Нужен быстрый рабочий доступ?
Если сейчас важнее вернуть подключение, чем продолжать ручную диагностику, переходите к прямому сценарию оформления доступа.
Получить доступ