====== Yggdrasil как socks-прокси ======
С первых релизов разработчикам [[yggdrasil:Yggdrasil]] периодически задавали вопрос о возможности запуска Yggdrasil без создания tun-интерфейса. В качестве аргумента за такой подход приводили значительное упрощение встраивания Yggdrasil в другие проекты, например, в браузер или даже в web-приложение...
И вот, в качестве эксперимента, один из разработчиков Yggdrasil ([[https://github.com/neilalexander|neilalexander]]) создал ветку проекта, в которой не используется tun-интерфейс и реализован стек сетевых протоколов, который позволяет использовать Yggdrasil в качестве socks5-прокси. Позже ветка проекта превратилась в проект с отдельным репозиторием.
Отличительные особенности такого подхода:
* для запуска Yggdrasil не требуются права суперпользователя, повышается безопасность
* для доступа к web-ресурсам сети необходимо настроить браузер на использование socks5-прокси
* для других узлов сети становятся доступны только конкретные, указанные при запуске, TCP-порты, а не весь хост
Кроме описанного выше, в проекте yggstack реализована встроенная система DNS. C помощью этой системы можно получить доступ к ресурсам по доменному имени вида ''%%<публичный ключ>.pk.ygg%%''.
Для примера, адрес [[this>|этой wiki]] будет выглядеть так: http://000000002ae375e65f5470ee29eb563a0ada764c7a3f1efaa5f5a4af91dad1cb.pk.ygg/ (доступно через socks-прокси yggstack).
===== Установка =====
Готовые бинарные файлы под различные архитектуры можно скачать здесь: https://github.com/yggdrasil-network/yggstack/releases
==== Самостоятельная сборка ====
^ **Примечание:** ^
| Для сборки необходим go-lang 1.22 и выше. Читайте об его установке: [[go:go_installation]]. |
Клонирование репозитория и сборка:
git clone https://github.com/yggdrasil-network/yggstack
cd yggstack
./build
Обратите внимание, что вы можете выполнять кросс-компиляцию для других платформ и архитектур, указав переменные среды ''%%GOOS%%'' и ''%%GOARCH%%'', например: ''%%GOOS=windows ./build%%'' или ''%%GOOS=linux GOARCH=mipsle ./build%%''.
===== Использование =====
Параметры socks-прокси и расшаривания/проброса TCP-портов задаются в командной строке.
Пример запуска socks-proxy (подобно ''%%ssh -D%%''):
./yggstack -useconffile=/etc/yggdrasil/yggdrasil.conf -socks 127.0.0.1:1080
Так же, возможны "пробросы" на локальные или удаленные порты (подобно ''%%ssh -L%%'', ''%%ssh -R%%'').
Примеры можно посмотреть здесь: https://github.com/yggdrasil-network/yggstack#run-yggstack
===== Yggstack на Android =====
Для [[wpru>Android]] существует приложение yggstack-android с GUI.
Репозиторий / описание (EN): https://github.com/DrewCyber/yggstack-android \\
Описание (RU): https://github.com/DrewCyber/yggstack-android/blob/main/README_RU.md
====== Ссылки ======
Репозиторий yggstack (EN): https://github.com/yggdrasil-network/yggstack \\
~~DISCUSSION~~