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

44 lines
3.8 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 как socks-прокси ======
^ :!: **Важно!** ^
| **Описываемая ниже ветка [[https://github.com/yggdrasil-network/yggdrasil-go/tree/netstack|netstack]] не совместима с [[yggdrasil:yggdrasil|Yggdrasil]] v. 0.5** и разработчики не планируют дальнейшую её поддержку. |
Разработчикам [[yggdrasil:Yggdrasil]] в [[https://matrix.to/#/#yggdrasil:matrix.org|чате]] периодически задают вопрос о возможности запуска Yggdrasil без создания tun-интерфейса. В качестве аргумента за такой подход приводят значительное упрощение встраивания Yggdrasil в другие проекты, например, в браузер или даже в web-приложение...
И вот, в качестве эксперимента, один из разработчиков Yggdrasil ([[https://github.com/neilalexander|neilalexander]]) создал ветку проекта, в которой не используется tun-интерфейс и реализован стек сетевых протоколов, который позволяет использовать Yggdrasil в качестве socks5-прокси.
Отличительные особенности такого подхода:
* для запуска Yggdrasil не требуются права суперпользователя, повышается безопасность
* для доступа к web-ресурсам сети необходимо настроить браузер на использование socks5-прокси
* для других узлов сети становятся доступны только конкретные, указанные при запуске, TCP-порты, а не весь хост
Кроме описанного выше, в ветке netstack реализована встроенная система DNS. C помощью этой системы можно получить доступ к ресурсам по доменному имени вида ''%%<публичный ключ>.pk.ygg%%''.
Для примера, адрес [[this>|этой wiki]] будет выглядеть так: http://000000002ae375e65f5470ee29eb563a0ada764c7a3f1efaa5f5a4af91dad1cb.pk.ygg/ (доступно через socks-прокси ветки netstack).
===== Установка =====
Готовых бинарников нет, приложение собирается из исходников.
//**Примечание:** для сборки необходим go-lang. Читайте об его установке: [[go:go_installation]].//
Непосредственно сборка:
<code>git fetch origin netstack && git checkout netstack
go build -o yggstack cmd/yggstack/main.go</code>
===== Использование =====
Параметры socks-прокси и расшаривания/проброса TCP-портов задаются в командной строке.
Пример:
<code>./yggstack -useconffile=/etc/yggdrasil.conf -socks :1080 -exposetcp 80:127.0.0.1:8080</code>
Socks-прокси будет ожидать соединение на порту 1080 (указывается в браузере); из вне становится доступным порт 80, который пробрасывается на порт 8080 localhost (предполагается, на localhost:8080 будет работать web-сервер).
====== Ссылки ======
Ветка netstack (EN): https://github.com/yggdrasil-network/yggdrasil-go/tree/netstack \\
Канал telegram Popura (RU): https://t.me/PopuraChan/137 \\
~~DISCUSSION~~