====== Установка в 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~~