Yggdrasil как socks-прокси

С первых релизов разработчикам Yggdrasil периодически задавали вопрос о возможности запуска Yggdrasil без создания tun-интерфейса. В качестве аргумента за такой подход приводили значительное упрощение встраивания Yggdrasil в другие проекты, например, в браузер или даже в web-приложение…

И вот, в качестве эксперимента, один из разработчиков Yggdrasil (neilalexander) создал ветку проекта, в которой не используется tun-интерфейс и реализован стек сетевых протоколов, который позволяет использовать Yggdrasil в качестве socks5-прокси. Позже ветка проекта превратилась в проект с отдельным репозиторием.

Отличительные особенности такого подхода:

  • для запуска Yggdrasil не требуются права суперпользователя, повышается безопасность
  • для доступа к web-ресурсам сети необходимо настроить браузер на использование socks5-прокси
  • для других узлов сети становятся доступны только конкретные, указанные при запуске, TCP-порты, а не весь хост

Кроме описанного выше, в проекте yggstack реализована встроенная система DNS. C помощью этой системы можно получить доступ к ресурсам по доменному имени вида <публичный ключ>.pk.ygg.

Для примера, адрес этой wiki будет выглядеть так: http://000000002ae375e65f5470ee29eb563a0ada764c7a3f1efaa5f5a4af91dad1cb.pk.ygg/ (доступно через socks-прокси yggstack).

Установка

Готовые бинарные файлы под различные архитектуры можно скачать здесь: https://github.com/yggdrasil-network/yggstack/releases

Самостоятельная сборка

Примечание:
Для сборки необходим go-lang 1.22 и выше. Читайте об его установке: Установка Go.

Клонирование репозитория и сборка:

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

Для 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

Обсуждение

d4708, 2024/04/25 16:28, 2024/04/25 16:52
Пробую установить yggstack, указал настройки Socks 5 в ФФ, но не работает доступ в интернет.

Опыта особо нет с прокси, как лучше сделать чтобы интернет и yggdrasil работали через браузер?

По сути нужна маска :443 или *.*.*.* но такое не поддерживается, пока работает только *.com
https://www-archive.mozilla.org/quality/networking/docs/aboutno_proxy_for

Thunar, 2024/04/25 16:47
Чтобы работал и доступ в интернет, и доступ к сайтам Yggdrasil можно настроить отдельный прокси, с более гибкими настройками, который будет выбирать нужный апстрим в зависимости от адреса.
Можно погуглить расширение для браузера, которое так же, в зависимости от адреса, будет пускать либо через прокси, либо напрямую.
Либо погуглите, как на узле Yggdrasil (который socks) настроить маршрутизацию 6to4 для универсального доступа в интернет.

d4708, 2024/04/25 16:54, 2024/04/25 16:59
Да вот, выше обновил, почти сделал штатно - я не пользуюсь аддонами да и браузером особо.
По идее оно фильтрует до резольва, отсюда заминка. Только хостнейм :/

Thunar, 2024/04/25 17:01
acetone видео как-то делал: https://youtu.be/8r2bo-EEooM
d4708, 2024/04/25 17:10, 2024/04/25 17:14
спасибо, в курсе такой опции, хотелось по-простому, так я могу и на полноценный роутер с yggdrasil подключиться.
получается нет особого смысла в yggstack кроме как отсутствие рута или ограничения виртуализации

newbie, 2024/10/26 08:45, 2026/05/04 11:47
Ранее ветка проекта называлась netstack.
Только авторизованные участники могут оставлять комментарии.
yggdrasil/yggdrasil_as_socks_proxy.txt · Последнее изменение: 2026/05/04 12:05 — newbie
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki