====== Установка в Android ====== Приложение можно установить из репозитория бесплатных приложений [[https://f-droid.org/ru/|F-Droid]]: https://f-droid.org/packages/eu.neilalexander.yggdrasil/ Либо вручную из apk-файла, доступного для скачивания в официальном репозитории на GitHub: https://github.com/yggdrasil-network/yggdrasil-android/releases ===== root+termux ===== Ниже приведена инструкция от [[user:nikat]]. Также можно установить Yggdrasil на рутированный Android с помощью эмулятора терминала. При первой установке и настройке использовался [[https://termux.com/|Termux]], так что тут и будет описана процедура установки и запуска через него. Преимущество такого способа установки в отсутствии занимаемого VPN подключения, что позволяет накидывать VPN поверх Yggdrasil, а также в полном функционале, в точности, в настройке своего YGGv6 адреса, открытии портов для работы публичным или приватным пиром, создании личного nodeinfo и т.п. Итак, для установки потребуются права root пользователя на вашем смартфоне. Как их получить, можно почитать на соответствующих ресурсах [[https://4pda.ru/forum/index.php|4PDA]] и [[https://www.xda-developers.com/root/|XDA]]. Также стоит установить терминал, рекомендуется [[https://termux.com/|Termux]]. Что же нам нужно сделать? - Установка root доступа в Termux: ''pkg install tsu'' - Сборка бинарников под linux arm64 на компьютере: * Linux 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 * Windows 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 т.ч. сразу двух зайцев. - Настройка конфига (yggdrasil.conf) под требуемые параметры - Добавление [[https://github.com/yggdrasil-network/public-peers|пиров]] в секцию ''Peers'' - Исправление значения секции ''IfName'' на YOUR_TUNTAP (например, на ygg0) - Исправление значений ''EncryptionPublicKey'' и ''EncryptionPrivateKey'' на [[https://notabug.org/acetone/SimpleYggGen-CPP|желаемые]] - Правим значение ''AdminListen'' на ''unix:///data/data/com.termux/files/usr/tmp/yggdrasil.sock'' - Перенос всех файлов из ''~/ygg_build'' на телефон * Необходимо сказать, что лучше класть бинарные файлы (yggdrasil и yggdrasilctl) в папку ''/data/data/com.termux/files/usr/bin'', а конфигурационный (yggdrasil.conf) в ''/data/data/com.termux/files/usr/etc'' ==== Создание скрипта запуска и маршрутизации Yggdrasil ==== * Если хотите, чтобы Yggdrasil запускался вместе с системой, переходите ниже к "службе с автозапуском" * Если нужны логи работы Yggdrasil, то перед запуском скрипта выполните команду mkdir /data/data/com.termux/files/usr/var/log/yggdrasil * Перед первым запуском возможно потребуется выполнить команды создания tun: 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 работает в фоне, потребляя порядка 10 МБ памяти. * Не забудьте настроить правила файрвола! Поздравляю, вы герой! Удачи в освоении сети Yggdrasil, и её сервисов! ====== Ссылки ====== https://yggdrasil-network.github.io/installation.html#-android ~~DISCUSSION~~