Коротко: такая ситуация — «VPN подключён, но трафик не идёт» — обычно вызвана либо проблемами с транспортом/TLS/ALPN/DNS/MTU на стороне клиента iOS или серверной конфигурацией, либо особенностями iOS (Network Extension, профили). Поскольку на Mac всё работает — скорее всего проблема либо в клиенте/настройках на iPhone, либо в том, как сервер обрабатывает соединения от iPhone (SNI/ALPN/ciphers/ipv6/mtu и т.п.). Ниже — простая инструкция по диагностике и самые частые решения.
Что проверить сначала (простыми шагами)
1. Переключите режим прокси в приложении на «Global» (везде проксировать). Иногда стоит включить/выключить режим и попробовать снова.
2. Перезагрузите iPhone и переустановите клиент (удалить приложение — установить снова), затем заново импортируйте конфиг.
3. Попробуйте другой клиент (Shadowrocket, Quantumult X, Kitsunebi) — вы уже пробовали HApp, но если есть возможность, проверьте ещё один платный/популярный клиент. Если везде одинаково — это указывает на сервер/конфиг.
4. Проверьте дату и время iPhone — некорректное время ломает TLS.
5. Проверьте DNS: в Safari откройте https://1.1.1.1 или https://example.com по IP (если сайт открывается по IP — DNS было), или временно смените DNS на 8.8.8.8 в настройках Wi‑Fi. Если DNS не резолвится — это объясняет «нет данных».
6. Попробуйте подключиться через личную точку доступа с Mac (подключите Mac через iPhone hotspot). Если Mac через тот же интернет и конфиг работает — значит проблема в iPhone/клиенте, а не в сети оператора.
Диагностика в приложении (логи)
- Включите в приложении подробные логи / debug logs. После попытки соединения скопируйте лог и посмотрите ошибки (TLS handshake failed, no route to host, read timeout, dns failed и т.д.). Если не понимаете — пришлите лог, помогу расшифровать.
- Если в логе видите, что соединение к серверу устанавливается, но сразу закрывается или нет запросов — похоже на mismatch transport/TLS или проблема маршрутизации на сервере.
Что проверить на сервере (если у вас есть доступ или можно попросить хостинг/поставщика)
1. Логи v2ray / xray: journalctl -u v2ray -f или tail -n 200 /var/log/v2ray/access.log и /var/log/v2ray/error.log — смотрите, приходят ли запросы от iPhone IP и какие ошибки.
2. Посмотрите, не различаются ли подключения от Mac и iPhone по SNI/ALPN/версии TLS — иногда сервер настроен на h2/ALPN и iOS клиент использует другой ALPN, и после TLS handshake данные не проходят.
3. Проверьте, не включены ли какие‑то ограничивающие правила в firewall (ufw/iptables) по user‑agent/порту или rate limiting.
4. Если сервер использует только IPv4, а iPhone по мобильной сети — IPv6 (или наоборот) — возможны проблемы. Проверьте, что сервер доступен по IPv6 (если нужен) или включите dualstack/прозрачный NAT.
Частые конкретные причины и решения
- Неверная конфигурация транспорта (VLESS + xtls/xtls-rprx?) — iOS клиенты иногда не поддерживают XTLS корректно. Попробуйте использовать VLESS+TLS+WebSocket (ws+tls) с корректным path и SNI — это надёжнее для iOS.
- Проблемы с TLS/сертификатом: самоподписной или неполная цепочка — iOS может «пропустить» подключение частично. Проверьте сертификат: openssl s_client -connect your.domain:443 -servername your.domain и убедитесь, что цепочка полная и доверенная.
- ALPN (HTTP/2) — некоторые серверы настроены на h2/HTTP/2 ALPN, клиенты iOS могут вести себя иначе. Попробуйте переключить ALPN на http/1.1 или явно разрешить h2.
- MTU/фрагментация — на iPhone иногда пакеты фрагментируются иначе; в конфиге клиента можно уменьшить mtu/mss (если есть такая опция) или на сервере включить mss clamp.
- DNS-утечка/непроксирование DNS — если DNS не идёт через туннель, многие сервисы не работают. Убедитесь, что в клиенте стоит «remote DNS» (если есть) или вручную пропишите 1.1.1.1/8.8.8.8 в iPhone.
- iOS VPN/Network Extension баги после обновлений iOS — иногда помогает удалить VPN-профиль и заново установить, или дождаться обновления клиента. Также проверьте, есть ли у приложения все разрешения VPN.
Что можно сделать прямо сейчас (пошагово, для нетеха)
1. В приложении включите режим Global, включите логи (если есть), подключитесь, затем скопируйте лог и пришлите мне (или своему провайдеру).
2. В Safari на iPhone откройте ваш домен (тот, что в конфиге) по https — откроется ли страница? Есть ли предупреждение про сертификат?
3. Поменяйте DNS на 8.8.8.8 в настройках Wi‑Fi (или в настройках профиля, если клиент это позволяет) и проверьте.
4. Попробуйте временно в конфиге сменить transport на websocket+tls (ws+tls) с path=/ и SNI=ваш_домен (если сейчас другой transport). Если не умеете сами — напишите текущий transport (как он записан) — помогу как изменить.
5. Попросите у провайдера конфиг для VMess/VLESS другого типа (например, vmess+ws+tls) и попробуйте его — это поможет понять, серверная ли это проблема.
Если хотите, я помогу дальше — пришлите:
- Логи клиента (после попытки соединения),
- Скрин конфигурации (transport/port/domain/cert/тип VLESS, ws/tcp/xtls и т.д.),
- Сообщение из серверных логов (если есть доступ) за момент подключения.
Готов помочь разобрать логи и объяснить, что именно не проходит.