Yggdrasil для iOS поддерживается разработчиками Yggdrasil, в частности, neilalexander. На данный момент бета-версия Yggdrasil для iOS доступна для тестирования на платформе TestFlight.
Необходимо установить платформу TestFlight для тестирования бета-версий приложений под iOS: в AppStore вводиим соответствующий поисковый запрос «TestFlight», у нужного приложения нажимаем кнопку «Загрузить» (прямая ссылка на приложение TestFlight: https://apps.apple.com/ru/app/testflight/id899247664).
Далее, в браузере (напр., Safari) переходим по ссылке: https://testflight.apple.com/join/jZNsIkRr, ссылка автоматически перехватится приложением TestFlight и откроет страничку приложения Yggdrasil c кнопкой «Установить».
При первом запуске Yggdrasil на iOS будет предложено установить новый профиль VPN - необходимо согласиться. Этот профиль будет активирован при нажатии переключателя «Enable» в приложении Yggdrasil.
Как и в PC-версии приложения, необходимо указать пиры, к которым вы будете подключены, либо задействовать Multicast Peer Discovery для поиска узлов Yggdrasil в вашей локальной сети. Настройка соответствующих параметров предусмотрена в GUI: Configuration → Peers.
Можно вручную отредактировать конфигурационный файл Yggdrasil для iOS - для этого необходимо его экспортировать, отредактировать любым способом, а затем импортировать. Экспорт и импорт делается с помощью GUI (Configuration → Settings → Export (или Import)).
Клиент поддерживается пользователем vikulin. Исходный текст приложения на языке Kotlin доступен в GitHub-репозитории проекта. Установочный .apk файл находится там же в списке релизов и доступен для скачивания. Работа Android-приложения основана на VpnService.
На данный момент поддерживаются следующие функции:
Ygg me!
Также можно установить Yggdrasil на рутированный Android с помощью эмулятора терминала. При первой установке и настройке использовался Termux, так что тут и будет описана процедура установки и запуска через него.
Преимущество такого способа установки в отсутствии занимаемого vpn подключения, что позволяет накидывать vpn поверх Yggdrasil, а также в полном функционале, в точности, в настройке своего YGGv6 адреса, открытии портов для работы публичным или приватным пиром, создании личного nodeinfo и т.п.
Итак, для установки потребуются права root пользователя на вашем смартфоне. Как их получить, можно почитать на соответствующих ресурсах 4PDA и XDA. Также стоит установить терминал, рекомендуется Termux.
Что же нам нужно сделать?
pkg install tsu
git clone https://github.com/yggdrasil-network/yggdrasil-go.git /tmp/yggdrasil cd /tmp/yggdrasil GOOS=linux GOARCH=arm64 ./build mkdir ~/ygg_build cp ./yggdrasil ~/ygg_build/ cp ./yggdrasilctl ~/ygg_build/ cd ~/ygg_build ./yggdrasil -genconf > ./yggdrasil.conf rm -rf /tmp/yggdrasil
git clone https://github.com/yggdrasil-network/yggdrasil-go.git C:/temp/yggdrasil cd C:/temp/yggdrasil set GOOS=linux set GOARCH=arm64 mkdir C:\temp\ygg_build cd C:/temp/yggdrasil/cmd/yggdrasil go build copy yggdrasil C:\temp\ygg_build\ cd C:/temp/yggdrasil/cmd/yggdrasilctl go build copy yggdrasilctl C:\temp\ygg_build\
И конфиг сгенерировать уже используя yggdrasil на windows + всё равно нужно получить IP т.ч. сразу двух зайцев.
Peers
IfName
на YOUR_TUNTAP (например, на ygg0)AdminListen
на unix:///data/data/com.termux/files/usr/tmp/yggdrasil.sock
~/ygg_build
на телефон/data/data/com.termux/files/usr/bin
, а конфигурационный (yggdrasil.conf) в /data/data/com.termux/files/usr/etc
mkdir /data/data/com.termux/files/usr/var/log/yggdrasil
ip tuntap add dev YOUR_TUNTAP mode tun
YOUR_IP
и YOUR_TUNTAP
#!/data/data/com.termux/files/usr/bin/sh # Скрипт запуска termux-wake-lock mkdir -p /dev/net sudo ln -s /dev/tun /dev/net/tun 2>/dev/null sudo yggdrasil -useconffile /data/data/com.termux/files/usr/etc/yggdrasil.conf > /data/data/com.termux/files/usr/var/log/yggdrasil/yggdrasil.log & disown %1 sleep 5 sudo ip link set YOUR_TUNTAP up sudo ip -6 ru add to 200::/7 lookup 200 prio 1000 sudo ip -6 ru add from YOUR_IP lookup 200 prio 999 sudo ip r add 200::/7 dev YOUR_TUNTAP metric 128 table 200
#!/data/data/com.termux/files/usr/bin/sh # Скрипт остановки termux-wake-lock sudo kill -9 $(sudo pgrep yggdrasil) sudo ip -6 rule del from YOUR_IP lookup 200 sudo ip -6 rule del from all to 200::/7 lookup 200 sudo ip route del 200::/7 dev YOUR_TUNTAP metric 128 table 200 sudo ip link set YOUR_TUNTAP down
/data/data/com.termux/files/home/
, чтоб запускать сразу при открытии терминала.Если у вас установлен Termux Boot (а если нет, то лучше поставьте), будет удобно сделать службу, благодаря чему yggdrasil будет запускаться автоматически при загрузке телефона. Копируем любую службу, например, sshd, в качестве шаблона для нашей новой службы
cd /data/data/com.termux/files/usr/var/service cp -r sshd yggdrasil
Правим файл run:
vim yggdrasil/run
всё стираем и вносим, заменив значения на свои:
mkdir -p /dev/net sudo ln -s /dev/tun /dev/net/tun sudo yggdrasil -useconffile /data/data/com.termux/files/usr/etc/yggdrasil.conf
Включаем и запускаем службу:
sv-enable yggdrasil sv start yggdrasil
Создаём файл в автозапуске:
vim ~/.termux/boot/ygg-route.sh
вносим:
#!/data/data/com.termux/files/usr/bin/sh sudo ip -6 ru add to 200::/7 lookup 200 prio 1000 sudo ip -6 ru add from YOUR_IP lookup 200 prio 999 sudo ip r add 200::/7 dev YOUR_TUNTAP metric 128 table 200
Даём права на исполнение:
chmod +x ~/.termux/boot/ygg-route.sh
Поздравляю, вы герой! Удачи в освоении сети Yggdrasil, и её сервисов!
Installing on iOS (EN): https://yggdrasil-network.github.io/installation-ios-app.html
Обсуждение
https://github.com/yggdrasil-network/yggdrasil-android
Немного поюзав вполне неплохое
Мне даже получилось стать пиром.
Странно почему разработчик не добавил эту функцию в самом приложении
Напишу инструкцию как это можно сделать :
Необходимо :
Статический Ip адрес + проброшеный порт на маршрутезаторе.
Root.
Какой-нибудь файловый менеджер например MiXplorer
На устройстве находим файл:
data/data/eu.neilalexander.yggdrasil/files/yggdrasil.conf
Временно меняем права на 777 чтобы отредактировать и сохранить обратно.
В текстовом редакторе откроется не стандартный конфиг, а какой-то обрезанный:
—————
{"PrivateKey":"ef2355gh7c220d6cctyb7f7b2b838150b4f7ffcc
ec4ed6a838
531dd8ae0cea4264cb025f482864b7f10117be6b1a
0222d1041a710f8dcac8",
"Peers":[tcp:\/\/itcom.multed.com:7991"],"InterfacePeers":{}
,"Listen":[],"AdminListen":"none","MulticastInterfaces":[{"Regex":".*","Beacon":true,"Listen":true,"Port":0,"Priority":0,
"Password":""}],"AllowedPublicKeys":[],"IfName":"none","IfMTU":65535,"NodeInfoPrivacy":false,
"NodeInfo":null}
—————
В котором нам надо найти “Listen":[] и в квадратные скобочки вставить ip адрес : ваш проброшеный порт - должно получится примерно так Listen":["tcp:\/\/0.0.0.0:7777"],
Сохраняем с правами 600 , перезапускаем приложениее.
Раздаем доступ в сеть своим друзьям , подключаем различные устроиства.