Иггдрасиль на Android через белые списки (и любое другое VPN-соединение)
В системе Android есть всего один слот для VPN-соединений. И это очень сильно мешает. В этой статье я расскажу, как получить доступ в Yggdrasil, когда уже активно VPN-соединение.
Допустим, у нас уже включён VPN. У меня это приложение V2RayNG с подпиской, обходящей белые списки, но у вас может быть другое. В данной статье мы рассматриваем ситуацию, когда уже запущено одно VPN-соединение на всё устройство и нельзя запустить приложение Yggdrasil, которое занимает единственный VPN-слот.
Скачиваем и устанавливаем yggstack: https://github.com/DrewCyber/yggstack-android
Функционал этого приложения довольно простой, но очень полезный. Оно позволяет организовать SOCKS5-прокси в сеть Yggdrasil и/или пробросить порты из сети с определённых адресов на localhost или наоборот. Именно этим мы и будем пользоваться.
Первым делом, после запуска приложения нужно добавить пиры, но к счастью, приложение само может подгрузить список пиров и протестировать их, если нажать на 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].


В официальном 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 доменов).

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


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

Если надо пробросить порт с телефона в Yggdrasil#
Существует также функционал проброски портов с телефона в Yggdrasil. Например, для хостинга сайта или игр. Инструкция похожа на предыдущую, только пункт называется Expose Local Port.
Свой IP в сети Yggdrasil можно посмотреть, перейдя на сайт
http://[200:56bd:a9e9:c1fa:8f99:1d3c:3c84:6507]/


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