В системе Android есть всего один слот для VPN-соединений. И это очень сильно мешает. В этой статье я расскажу, как получить доступ в Yggdrasil, когда уже активно VPN-соединение.

Допустим, у нас уже включён VPN. У меня это приложение V2RayNG с подпиской, обходящей белые списки, но у вас может быть другое. В данной статье мы рассматриваем ситуацию, когда уже запущено одно VPN-соединение на всё устройство и нельзя запустить приложение Yggdrasil, которое занимает единственный VPN-слот.

Скачиваем и устанавливаем yggstack: https://github.com/DrewCyber/yggstack-android

Функционал этого приложения довольно простой, но очень полезный. Оно позволяет организовать SOCKS5-прокси в сеть Yggdrasil и/или пробросить порты из сети с определённых адресов на localhost или наоборот. Именно этим мы и будем пользоваться.

Первым делом, после запуска приложения нужно добавить пиры, но к счастью, приложение само может подгрузить список пиров и протестировать их, если нажать на Discover Peers. Пользователю остаётся только выбрать самые быстрые и отметить их галочкой.

Интерфейс главного экрана yggstack с кнопкой Discover Peers

Если нужно пробросить какой-то один сервис#

Если вам требуется доступ только к одному адресу с портом (например, для подключения к удалённой машине), то включаем Forward Remote Port и добавляем кнопкой Add Mapping новое правило:

  • TCP/UDP — выбираем в зависимости от задачи
  • Local IP: 127.0.0.1 — не меняем
  • Local Port: 1–65535 — указываем номер порта на телефоне
  • Remote IP: 200:1234::1 — вписываем Yggdrasil IP удалённой машины
  • Remote Port: 1–65535 — указываем порт сервиса, к которому хотим подключиться

Пример:

TCP
Local IP: 127.0.0.1
Local Port: 55555 - локальный порт
Remote IP: 228:fd47:dce:9fd7:52b0:889d:f1e:29be - адрес моего сайтика в игге
Remote Port: 80 - http порт

После запуска сервиса, если в браузере перейти на http://127.0.0.1:55555, то откроется мой сайт http://[228:fd47:dce:9fd7:52b0:889d:f1e:29be].

Настройка Forward Remote Port — форма добавления нового правила

Браузер с открытым сайтом по адресу http://127.0.0.1:55555

В официальном README есть ещё пример проброса telegram-прокси из Yggdrasil: https://github.com/DrewCyber/yggstack-android/blob/main/README_RU.md

Если нужно посидеть в Yggdrasil#

Каждый сайт так не добавишь, да и некоторые сайты жёстко привязаны к 80 порту или своему адресу, поэтому через проброс может не работать. Для этого в yggstack есть режим Yggdrasil proxy.

Включаем его, указываем адрес, на котором будет открыт локальный SOCKS5-прокси (по умолчанию 127.0.0.1:1080), а также DNS-сервер. Первую строчку не меняем, а DNS лучше заменить на актуальные с https://dns.r3v.dev/ (там серверы на Adguard Home с поддержкой OpenNIC & ALFIS доменов).

Настройка SOCKS5 Proxy в yggstack — поля адреса и DNS

После запуска переходим в Firefox, устанавливаем расширение для работы с socks-прокси (я выбрал Mini Proxy). Настраиваем его, указав адрес 127.0.0.1:1080 и поставив в правилах *, что означает применение прокси для всех сайтов. Теперь мы можем ходить по сети Yggdrasil.

Настройка Mini Proxy в Firefox — указание 127.0.0.1:1080 и правила *

Сайт в Yggdrasil, открытый через Firefox с включённым прокси

Однако, чтобы снова выйти в открытый интернет через браузер, придётся отключать прокси в Firefox.

Чтобы этого избежать, можно использовать один из публичных прокси, которые уже есть в сети. Для этого заходим на http://[220:73c5:19cd:3cba:de5d:b065:807f:8b67] (сканер открытых портов у нод), доходим до 1080/socks и начинаем тестировать каждый прокси.

Используя Forward Remote Port из предыдущего пункта, пробрасываем адреса на локалку, а в Firefox уже указываем локальный адрес.

На практике не все прокси работают и с интернетом, и с Yggdrasil. Чаще они проксируют только обычный интернет. Но можно и самому поднять прокси-сервер и настроить его для работы с двумя сетями.

Страница сканера нод с открытыми SOCKS5-прокси

Если надо пробросить порт с телефона в Yggdrasil#

Существует также функционал проброски портов с телефона в Yggdrasil. Например, для хостинга сайта или игр. Инструкция похожа на предыдущую, только пункт называется Expose Local Port.

Свой IP в сети Yggdrasil можно посмотреть, перейдя на сайт http://[200:56bd:a9e9:c1fa:8f99:1d3c:3c84:6507]/

Экран Expose Local Port — настройка проброса локального сервиса

Страница с отображением собственного Yggdrasil-адреса устройства

Теперь вы можете свободно использовать Yggdrasil поверх любого VPN-соединения без конфликтов и ограничений Android!