howto-db/data/pages/yggdrasil/mobile_clients.txt
2024-02-10 12:53:55 +00:00

117 lines
10 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

====== Yggdrasil на смартфонах ======
===== iOS =====
[[yggdrasil:yggdrasil|Yggdrasil]] для iOS поддерживается разработчиками Yggdrasil, в частности, [[https://neilalexander.dev/|neilalexander]].
На данный момент бета-версия Yggdrasil для iOS доступна для тестирования на платформе [[https://apps.apple.com/ru/app/testflight/id899247664|TestFlight]].
Необходимо установить платформу [[https://apps.apple.com/ru/app/testflight/id899247664|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 будет предложено установить новый профиль [[wpru>VPN|VPN]] - необходимо согласиться. Этот профиль будет активирован при нажатии переключателя "Enable" в приложении Yggdrasil.
Как и в PC-версии приложения, необходимо указать пиры, к которым вы будете подключены, либо задействовать [[yggdrasil:mpd|Multicast Peer Discovery]] для поиска узлов Yggdrasil в вашей локальной сети. Настройка соответствующих параметров предусмотрена в GUI: Configuration -> Peers.
Можно вручную отредактировать конфигурационный файл Yggdrasil для iOS - для этого необходимо его экспортировать, отредактировать любым способом, а затем импортировать. Экспорт и импорт делается с помощью GUI (Configuration -> Settings -> Export (или Import)).
{{yggdrasil:mobile_clients:ios1.jpg?150 }} {{yggdrasil:mobile_clients:ios2.jpg?150 }} {{yggdrasil:mobile_clients:ios4.jpg?150 }} {{yggdrasil:mobile_clients:ios3.jpg?150 }} {{yggdrasil:mobile_clients:ios5.jpg?150 }}
===== Android =====
Клиент поддерживается пользователем [[https://github.com/vikulin/|vikulin]]. Исходный текст приложения на языке Kotlin доступен в [[https://github.com/vikulin/yggdrasil-android|GitHub-репозитории]] проекта. Установочный .apk файл находится там же в [[https://github.com/vikulin/yggdrasil-android/releases|списке релизов]] и доступен для скачивания. Работа Android-приложения основана на [[https://developer.android.com/reference/kotlin/android/net/VpnService|VpnService]].
На данный момент поддерживаются следующие функции:
* Подключение к сети Yggdrasil при активации кнопки ''Ygg me!''
* Установка статического адреса (Static IP)
* Вывод информации о текущих пирах
* Редактирование подключаемых пиров (кнопка Edit)
* Просмотр настроек DNS
* Редактирование текущих DNS
* Загрузка списка пиров с онлайн базы данных: https://publicpeers.neilalexander.dev/publicnodes.json
* Тест доступности и времени отклика от пиров
* Тест доступности и времени отклика от DNS
{{yggdrasil:mobile_clients:android2.jpg?150 }} {{yggdrasil:mobile_clients:android3.jpg?150 }} {{yggdrasil:mobile_clients:android4.jpg?150 }} {{yggdrasil:mobile_clients:android1.png?150 }} {{yggdrasil:mobile_clients:android6.jpg?150 }}
===== Android (root+termux)=====
Также можно установить 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 на компьютере:
* <code>
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</code>
- Настройка конфига (yggdrasil.conf) под требуемые параметры
- Добавление [[https://github.com/yggdrasil-network/public-peers|пиров]] в секцию ''Peers''
- Исправление значения секции ''IfName'' на YOUR_TUNTAP (например, на ygg0)
- Исправление значений ''EncryptionPublicKey'' и ''EncryptionPrivateKey'' на [[https://notabug.org/acetone/SimpleYggGen-CPP|желаемые]]
- Правим значение ''AdminListen'' на ''/data/data/com.termux/files/usr/var/yggdrasil.sock''
- Перенос всех файлов из ''~/ygg_build'' на телефон
* Необходимо сказать, что лучше класть бинарные файлы (yggdrasil и yggdrasilctl) в папку ''/data/data/com.termux/files/usr/bin'', а конфигурационный (yggdrasil.conf) в ''/data/data/com.termux/files/usr/bin''
=== Создание скрипта запуска и маршрутизации Yggdrasil ===
* Если хотите, чтобы Yggdrasil запускался вместе с системой, переходите ниже к "службе с автозапуском"
* Если нужны логи работы Yggdrasil, то перед запуском скрипта выполните команду <code> mkdir /data/data/com.termux/files/usr/var/log/yggdrasil </code>
* Не забудьте заменить в файле ''YOUR_IP'' и ''YOUR_TUNTAP''<file sh ygg>
termux-wake-lock
mkdir -p /dev/net
sudo ln -s /dev/tun /dev/net/tun
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 -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
</file>
* Лучше скрипт размещать в папке ''/data/data/com.termux/files/home/'', чтоб запускать сразу при открытии терминала.
=== Служба с автозапуском ===
Если у вас установлен Termux Boot (а если нет, то лучше поставьте), будет удобно сделать службу, благодаря чему yggdrasil будет запускаться автоматически при загрузке телефона. Копируем любую службу, например, sshd, в качестве шаблона для нашей новой службы
<code>cd /data/data/com.termux/files/usr/var/service
cp -r sshd yggdrasil</code>
Правим файл run:
<code>vim yggdrasil/run</code>
всё стираем и вносим, заменив значения на свои:
<code>mkdir -p /dev/net
sudo ln -s /dev/tun /dev/net/tun
sudo yggdrasil -useconffile /data/data/com.termux/files/usr/etc/yggdrasil.conf
</code>
Включаем и запускаем службу:
<code>sv-enable yggdrasil
sv start yggdrasil</code>
Создаём файл в автозапуске:
<code>vim ~/.termux/boot/ygg-route.sh</code>
вносим:
<code>#!/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</code>
Даём права на исполнение:
<code>chmod +x ~/.termux/boot/ygg-route.sh</code>
* Теперь Yggdrasil работает в фоне, потребляя порядка 10 МБ памяти.
* Не забудьте настроить правила файрвола!
Поздравляю, вы герой! Удачи в освоении сети Yggdrasil, и её сервисов!
====== Ссылки ======
Installing on iOS (EN): https://yggdrasil-network.github.io/installation-ios-app.html
~~DISCUSSION~~