Перейти к содержимому

Приложение для macOS

Приложение rVPN для macOS создаёт полнотуннельное VPN-соединение с помощью Network Extension. Весь трафик идёт через зашифрованный туннель.


  • macOS 13.0 или новее
  • Развёрнутый сервер rVPN
  • Адрес сервера, ключ идентификации и набор prekey

Установите rVPN из Mac App Store.

Откройте приложение из иконки в меню-баре. Нажмите Settings… (или ⌘,). Окно настроек имеет две вкладки-сегмента — Profiles и Settings. Оставайтесь на Profiles.

Нажмите кнопку + в нижней панели инструментов (или на иконку со стрелкой в документ рядом, чтобы импортировать файл .rvpn, экспортированный с другого устройства). В окне откроется редактор профиля.

Заполните нужные поля; ключевые:

  • Name — любое имя (например, «Home HK»)
  • Colour — цветной маркер для идентификации профиля в списках и в меню-баре
  • Default Profile — коснитесь ряда со звёздочкой, чтобы сделать этот профиль по умолчанию (автоподключается при запуске)
  • Server Addresswss://your-server.com/api/v1/ws/tun
  • Trust on First Use — оставьте включённым для стандартного TOFU-закрепления или вставьте ожидаемый Server Fingerprint ниже для строгой проверки
  • Identity Key — нажмите Generate, чтобы создать новую идентичность X3DH для этого профиля, или Import…, чтобы загрузить существующий файл ключа
  • Prekey Bundle — нажмите Import Prekey Bundle и выберите JSON-файл, предоставленный вашим администратором сервера
  • DNS Servers — резолверы через запятую, используемые при локальном DNS-фолбэке (по умолчанию 1.1.1.1, 8.8.8.8)
  • Bypass Networks — дополнительные диапазоны CIDR для прямого направления
  • MTU — MTU TUN-интерфейса (по умолчанию 1420)
  • Split Tunnel — выключено направляет весь трафик через VPN; включено открывает раздел ниже
  • Bypass Country — выберите одну из встроенных стран (CN, HK, SG, JP, KR и другие), чьи диапазоны CIDR обходят туннель
  • Bypass Domains — дополнительные домены обхода
  • Tunnel Domains — домены, принудительно направляемые через туннель, даже когда Split Tunnel включён

Нажмите Save. Строки Identity Key и Prekey Bundle показывают зелёную галочку, когда они присутствуют.

Нажмите Connect в выпадающем меню в меню-баре. macOS попросит разрешить конфигурацию VPN при первом подключении. Подтвердите, чтобы продолжить.

Приложение:

  1. Подключится к вашему серверу через TLS WebSocket
  2. Установит шифрование с прямой секретностью (X3DH + Double Ratchet)
  3. Получит IP-адрес туннеля от сервера
  4. Направит весь трафик через VPN

После подключения выпадающее меню в меню-баре показывает актуальные счётчики IP, Uptime и Sent/Recv — щёлкните по иконке в меню-баре в любой момент, чтобы посмотреть.


Раздельное туннелирование находится в редакторе профиля, в разделе Traffic. Оно направляет через VPN только международный трафик, а внутренний (например, китайские сайты) идёт напрямую. Описание каждой настройки см. в списке полей выше.

Блокировка рекламы включена для каждого профиля и не отключается через интерфейс (это совпадает с поведением мобильных приложений).


Приложение поддерживает до 10 профилей. Переключайтесь между профилями через выпадающее меню в меню-баре или вкладку настроек Profiles.

Каждый профиль хранит свои:

  • Адрес сервера
  • Ключ идентификации
  • Набор prekey
  • Настройки раздельного туннелирования

Чтобы передать профиль на другое устройство — свой iPhone, другой Mac, коллеге — экспортируйте его в файл .rvpn и поделитесь удобным способом (AirDrop, почта, Файлы).

Откройте Settings › Profiles, смахните или щёлкните правой кнопкой на профиле, которым хотите поделиться, и выберите Export. Диалог спросит, включать ли ключ идентификации:

  • Export Without Identity — безопаснее. Получатель может изучить профиль и подключиться, используя свои ключи (ему нужен набор prekey от того же администратора сервера). Подходит для передачи между разными пользователями или в не полностью доверенное окружение.
  • Include Identity — получатель может подключиться на другом устройстве как есть. Выбирайте это, только если другое устройство — ваше собственное, или вы полностью доверяете получателю. Экспортированный файл содержит ваш приватный ключ.

Затем macOS откроет панель сохранения .rvpn файла — оттуда вы можете отправить его через AirDrop, вложить в письмо или перетащить в Сообщения.

Экспортированный файл также несёт в себе закреплённую идентичность сервера (отпечаток ik:1:), если вы уже хотя бы раз подключались. Это значит, что клиент получателя откажется подключаться, если сервер вдруг предъявит другой ключ, и отдельная внесистемная проверка не требуется — отправитель поручился за сервер, передав вам файл. Полная модель описана на странице Закрепление идентификации сервера.


«Доверие при первом использовании» (TOFU, включено по умолчанию для каждого профиля) принимает и запоминает идентификацию сервера при первом успешном подключении. Отпечатки записываются в канонической форме ik:1:<base32> и хранятся в самом профиле.

Если сервер когда-либо предъявит другой ключ, приложение покажет предупреждение Server identity changed с закреплённым и полученным отпечатками рядом и тремя вариантами: Cancel, Delete Profile или Trust New Identity. Если оператор сменил ключ по подписанной церемонии ротации, приложение обновит отпечаток молча — без предупреждения.

Для более строгой проверки вставьте отпечаток (полученный от оператора в форме ik:1:) в поле профиля Server Fingerprint до первого подключения.

Полная модель — формат отпечатка, церемония ротации, модель угроз — на странице Закрепление идентификации сервера.


Приложение показывает «Connected», но трафик не проходит

Заголовок раздела «Приложение показывает «Connected», но трафик не проходит»
  1. Убедитесь, что ваш сервер работает и доступен на порту 443.
  2. Проверьте, что адрес сервера в профиле правильный (должен начинаться с wss://).
  3. Проверьте логи сервера на ошибки подключения.

«Failed to start VPN» или подключение сразу не удаётся

Заголовок раздела ««Failed to start VPN» или подключение сразу не удаётся»
  1. Убедитесь, что и ключ идентификации, и набор prekey присутствуют в редакторе профиля (зелёные галочки).
  2. Убедитесь, что в адресе сервера нет лишних пробелов.
  3. Если проблема сохраняется, пересоздайте ключ идентификации и заново импортируйте набор prekey.

VPN перестал работать после обновления приложения

Заголовок раздела «VPN перестал работать после обновления приложения»

macOS хранит VPN-профили в системных настройках независимо от приложения. После обновления сохранённый профиль может ссылаться на устаревшее расширение туннеля.

Исправление:

  1. Откройте Системные настройки > VPN (или Системные настройки > Основные > VPN и фильтры на более новых macOS).
  2. Удалите запись rVPN.
  3. Заново откройте приложение rVPN и подключитесь. Приложение создаст свежий профиль.

Это исправлено в версии 1.2.4 и новее, которая автоматически обнаруживает и заменяет устаревшие профили.

VPN-профиль отображается в Системных настройках, но приложение показывает «Disconnected»

Заголовок раздела «VPN-профиль отображается в Системных настройках, но приложение показывает «Disconnected»»

VPN-профиль, вероятно, создан предыдущей версией или другой сборкой. Удалите его:

  1. Откройте Системные настройки > VPN.
  2. Нажмите кнопку info (i) рядом с записью rVPN и удалите её.
  3. Заново откройте приложение rVPN. При следующей попытке подключения оно создаст новый профиль.

Туннель подключается, но DNS не разрешается

Заголовок раздела «Туннель подключается, но DNS не разрешается»

Приложение запускает локальный DNS-прокси для разрешения DNS в split-tunnel режиме. Если DNS не работает:

  1. Проверьте, что адрес сервера доступен.
  2. Попробуйте отключить раздельное туннелирование в редакторе профиля, чтобы использовать режим полного туннеля.
  3. Проверьте логи сервера на ошибки DNS-прокси.

Логи уровня Rust пишутся в файл в контейнере App Group:

Окно терминала
cat ~/Library/Group\ Containers/group.org.rvpn.client/rvpn_tunnel_rust.log

Для системных логов:

Окно терминала
log show --predicate 'subsystem == "org.rvpn.tunnel"' --last 5m --level debug