Приложение для iOS
Приложение rVPN для iOS создаёт полнотуннельное VPN-соединение с вашим сервером. Весь трафик устройства идёт через зашифрованный туннель.
Требования
Заголовок раздела «Требования»- iOS 16.0 или новее
- Развёрнутый сервер rVPN
- Адрес вашего сервера, а также либо экспорт профиля
.rvpnс другого устройства, либо набор prekey от администратора вашего сервера
Установка
Заголовок раздела «Установка»Установите rVPN из App Store.
Добавьте первый профиль
Заголовок раздела «Добавьте первый профиль»Приложение построено вокруг профилей — каждый профиль объединяет адрес сервера, ключ идентификации, набор prekey и правила раздельного туннелирования. Вы можете иметь до 10 профилей и переключаться между ними на главном экране.
Откройте приложение. На главном экране коснитесь карточки профиля («No Profile Selected»), чтобы открыть переключатель профилей, или перейдите на вкладку Settings → Manage Profiles.
У вас есть два варианта:
Импортировать существующий профиль
Заголовок раздела «Импортировать существующий профиль»Если кто-то поделился с вами файлом .rvpn (экспортированным с другого устройства или предоставленным вашим администратором), откройте переключатель профилей с главной карточки и коснитесь иконки импорта внизу. Выберите файл. Профиль появится в вашем списке со всеми ключами.
Создать профиль с нуля
Заголовок раздела «Создать профиль с нуля»Коснитесь Add New Profile. В редакторе профиля заполните:
- Name — любое имя (например, «Home HK»)
- Colour — цветной маркер, помогающий узнавать профиль
- Server Address —
wss://your-server.com/api/v1/ws/tun - Identity Key — коснитесь Generate, чтобы создать новую идентичность X3DH, или Import, чтобы загрузить существующий файл ключа
- Prekey Bundle — коснитесь Import Prekey Bundle и выберите JSON-файл, предоставленный вашим администратором сервера
Строки Identity Key и Prekey Bundle показывают зелёную галочку, когда они присутствуют. Коснитесь Save в правом верхнем углу.
Подключение
Заголовок раздела «Подключение»На главном экране коснитесь большой кнопки Connect. iOS попросит разрешить конфигурацию VPN при первом подключении — подтвердите, чтобы продолжить. Приложение:
- Подключится к вашему серверу через TLS 1.3 WebSocket
- Установит шифрование с прямой секретностью (X3DH + Double Ratchet)
- Получит IP-адрес туннеля от сервера
- Направит весь трафик через VPN
После подключения главный экран показывает назначенный IP, время сессии и счётчики отправленных/полученных байт. Коснитесь кнопки снова, чтобы отключиться.
Переключение профилей
Заголовок раздела «Переключение профилей»На главном экране коснитесь карточки активного профиля, чтобы открыть переключатель. Коснитесь другого профиля, чтобы сделать его активным. Если туннель уже поднят, приложение отключится, переключится и переподключится с новым профилем.
Поделиться профилем
Заголовок раздела «Поделиться профилем»Чтобы передать профиль на другое устройство — свой iPad, телефон друга, другой Mac — экспортируйте его в файл .rvpn и поделитесь любым удобным способом (AirDrop, Сообщения, Файлы).
Откройте переключатель профилей с главной карточки, смахните влево профиль, которым хотите поделиться, и коснитесь Export. iOS спросит, включать ли ключ идентификации:
- Без ключа идентификации — безопаснее. Получатель может изучить профиль и подключиться, используя свои ключи (ему нужен набор prekey от того же администратора сервера). Подходит для передачи между разными пользователями или в не полностью доверенное окружение.
- С ключом идентификации — получатель может подключиться на другом устройстве как есть. Выбирайте это, только если другое устройство — ваше собственное, или вы полностью доверяете получателю. Экспортированный файл содержит ваш приватный ключ.
Затем iOS покажет лист «Поделиться» — AirDrop, Файлы, Сообщения, что подходит. Файл имеет расширение .rvpn.
Экспортированный файл также несёт в себе закреплённую идентичность сервера (отпечаток ik:1:), если вы уже хотя бы раз подключались. Это значит, что клиент получателя откажется подключаться, если сервер вдруг предъявит другой ключ, и отдельная внесистемная проверка не требуется — отправитель поручился за сервер, передав вам файл. Полная модель описана на странице Закрепление идентификации сервера.
Раздельное туннелирование
Заголовок раздела «Раздельное туннелирование»Направляйте через VPN только международный трафик, а локальный — напрямую.
Откройте редактор активного профиля (Settings → Manage Profiles → коснитесь профиля). В разделе Traffic:
- Split Tunnel — включите
- Bypass Countries — коды стран через запятую, чьи диапазоны CIDR обходят туннель (по умолчанию
CN) - Bypass Domains — дополнительные домены обхода
- Tunnel Domains — домены, принудительно направляемые через туннель, даже когда Split Tunnel включён
Сохраните. Следующее подключение будет использовать новые правила.
Маршрутизация через несколько серверов (серверы выхода)
Заголовок раздела «Маршрутизация через несколько серверов (серверы выхода)»(Приложение v1.2.9 и новее.)
Профиль может отправлять трафик для конкретных доменов или диапазонов IP через другие серверы rVPN, а всё остальное — через собственный (основной) сервер профиля. Типичный сценарий: весь трафик по умолчанию идёт через Гонконг, а google.com — через выход в США, чтобы геозависимый контент отдавался как для США. Каждый выход должен быть доступным сервером rVPN — трафик по-прежнему шифруется end-to-end через каждый из них.
Добавить сервер выхода
Заголовок раздела «Добавить сервер выхода»Серверы выхода выбираются из других существующих профилей — ручного ввода сервера нет. Откройте редактор активного профиля → Exit Servers → Add Exit Server и выберите профиль, чей сервер вы хотите использовать. Адрес сервера, закреплённый TOFU-отпечаток и набор prekey подставятся из этого профиля, а имя выхода образуется от имени профиля. У каждого выхода свой отпечаток идентификации сервера, независимый от отпечатка самого профиля.
Настроить маршруты
Заголовок раздела «Настроить маршруты»У каждого выхода есть поля Route Domains и Route IPs:
- «Голый» домен — суффиксное совпадение:
google.comнаправляет google.com и все поддомены;*.google.com— только поддомены. Двухбуквенные TLD и короткие домены работают без проблем. - В поле IP принимаются диапазоны CIDR (например,
1.1.1.0/24).
Когда домен из маршрутов резолвится, туннель запоминает адреса из ответа в таблицу ip→выход (на время TTL ответа), так что последующие подключения к этим IP пойдут через тот же выход. Статические CIDR-правила срабатывают напрямую. Всё остальное идёт через основной сервер.
Трафик маршрутов никогда молча не переключается на основной выход: если сервер выхода недоступен, его трафик падает с ошибкой, а не утекает через другой выход. Дополнительные выходы запускаются при первом маршрутизированном обращении и переподключаются независимо — отображаемое состояние туннеля всегда отражает основной сервер.
Правила загружаются при запуске туннеля — после изменения серверов выхода или маршрутов отключитесь и подключитесь заново.
DNS и экспорт/импорт
Заголовок раздела «DNS и экспорт/импорт»Каждый выход резолвит DNS по HTTPS через собственный туннель, поэтому домены из маршрутов получают ответы, локальные для этого выхода (без сюрпризов с гео-DNS). Начиная с v1.2.9 туннель iOS отвечает на DNS внутри Network Extension — та же архитектура, что всегда была на macOS, — именно это делает маршрутизацию по выходам возможной на iOS.
Экспорт/импорт профиля переносит всю конфигурацию мультисерверности. Наборы prekey для выходов встраиваются при экспорте с ключом идентификации; экспорты от старых версий приложения импортируются чисто — с пустым списком выходов.
У CLI-клиента с v1.3.3 есть отдельный мультисерверный пул на TOML (только SOCKS5) — см. Справочник конфигурации клиента. Общей конфигурации с этой функцией у него нет.
По умолчанию DNS разрешается через туннель. Чтобы использовать собственные upstream-резолверы, отредактируйте профиль → Network → DNS Servers и введите список через запятую (например, 1.1.1.1, 8.8.8.8).
Идентичность сервера (TOFU)
Заголовок раздела «Идентичность сервера (TOFU)»«Доверие при первом использовании» (TOFU, включено по умолчанию для каждого профиля) принимает и запоминает идентификацию сервера при первом успешном подключении. Отпечатки записываются в канонической форме ik:1:<base32> и хранятся в самом профиле.
Если сервер когда-либо предъявит другой ключ, приложение откроет диалог Server identity changed с закреплённым и полученным отпечатками рядом и тремя вариантами: Cancel, Delete Profile или Trust New Identity. Если оператор сменил ключ по подписанной церемонии ротации, приложение обновит отпечаток молча — без диалога.
Для более строгой проверки вставьте отпечаток (полученный от оператора в форме ik:1:) в поле профиля Server Fingerprint до первого подключения.
Если в момент нажатия Connect у профиля не хватает ключа идентификации или набора prekey, приложение теперь показывает понятное предупреждение («Профилю “X” нужен ключ идентификации и набор prekey. Отредактируйте профиль и выполните Generate Identity / Import Prekey Bundle.») до попытки поднять туннель — никаких молчаливых бесконечных «Connecting…».
Полная модель — формат отпечатка, церемония ротации, модель угроз — на странице Закрепление идентификации сервера.
Устранение неполадок
Заголовок раздела «Устранение неполадок»«Failed to start VPN»
Заголовок раздела ««Failed to start VPN»»- Убедитесь, что адрес сервера правильный и начинается с
wss:// - Убедитесь, что строка Identity Key показывает зелёную галочку
- Убедитесь, что строка Prekey Bundle показывает зелёную галочку
- Убедитесь, что ваш сервер доступен на порту 443
«No IP assigned»
Заголовок раздела ««No IP assigned»»Пул IP-адресов на сервере исчерпан. Свяжитесь с администратором сервера, чтобы расширить диапазон DHCP в rvpn.toml.
Раздельное туннелирование не работает
Заголовок раздела «Раздельное туннелирование не работает»- Убедитесь, что Split Tunnel включён в редакторе профиля
- Убедитесь, что код страны обхода правильный (например,
CN, а неChina) - Переключите режим полёта, чтобы обновить таблицу маршрутизации
Медленное соединение
Заголовок раздела «Медленное соединение»- Попробуйте другие DNS-серверы
- Проверьте нагрузку на сервер
- Убедитесь, что Split Tunnel не отправляет слишком много трафика напрямую
Больше советов по устранению неполадок см. в Руководстве по устранению неполадок.