Files
p1neappleXpressandClaude Opus 4.8 38867720ac integrate: fold openfluxfork features onto the encrypted-logging hotfix
Base is hotfix/oflx-encrypted-logging-context; in every place both trees
touched the same code, the hotfix version wins (3-level logger, heard-first
routing + MarkStalled, replay window, boards JSON API, robust SOCKS5 auth).

Brought over from meepo161/openfluxfork@fork-main (the mobile/ Android bridge
is intentionally left in the Android fork):
- provision/ + node_wizard.go + --node-wizard: SSH VDS exit-node install.
- deploy/node-install.sh + .github/workflows/node-release.yml: pinned,
  hash-verified node release.
- netbind/ + tun_windows.go + --inbound=tun on Windows (Wintun): full tunnel
  with the core's own sockets bound to the real interface; dial sites in
  direct/boards/vyandex/cupsonline/mailru/yandex now dial bound.
- transport/yandex/cookies.go + --yandex-cookies-file: Netscape cookie import
  into the shared vyandex jar (sessions and single-transport alike).
- yandex: CheckVolgaDocument (doc suitability for the wizard) and the PoW
  captcha fix (a rejected challenge is a captcha, not a bad document).
- --http-proxy: HTTP CONNECT proxy over the same tunnel as SOCKS5.
- ipcStatusLoop: per-second IPC Status frame with the active carrier
  (Session.LiveTransports / ActiveTransport).

Builds for darwin, windows and linux; go vet and the full test suite pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-27 02:47:49 +03:00

6.8 KiB
Raw Permalink Blame History

Подключение через Яндекс Документы

Эта инструкция относится к vyandex в данном форке: одна exit-нода на Linux VPS и один клиент на Android или ПК. Сначала настройте один канал и проверьте его. Для каждого одновременно работающего устройства создавайте отдельный документ Яндекса, отдельный ключ и отдельную exit-ноду; один документ для нескольких клиентов может приводить к потере ответов.

Что подготовить

  • Linux VPS с Docker и Compose, доступом к Яндекс Документам и возможностью запускать контейнер с NET_RAW и NET_ADMIN.
  • Новый документ Яндекса с доступом на редактирование у используемого аккаунта. Сохраните его полную ссылку вида https://docs.yandex.ru/edit/d/... только в локальном .env.
  • Netscape cookies.txt, экспортированный из браузерной сессии этого аккаунта. Если без cookies ваш документ доступен и CAPTCHA не появляется, файл всё равно требуется в приведённых шаблонах; для анонимного варианта удалите строку --yandex-cookies-file и соответствующий volumes из обоих шаблонов.
  • Секретный ключ канала. На Linux: openssl rand -hex 32 > channel.key. Содержимое файла должно совпадать на клиенте и VPS. Для Android введите этот текст в поле ключа.

Cookie-файл даёт доступ к Яндекс-аккаунту, а ссылка на документ и ключ — к каналу. Не добавляйте их в Git, не публикуйте QR с ключом и ограничьте права локальных файлов (chmod 600 channel.key yandex-cookies.txt .env на Linux).

1. Exit-нода на VPS

git clone https://github.com/meepo161/openfluxfork.git
cd openfluxfork
docker build -t openflux:local .
mkdir -p ~/openflux-phone-1
cp deploy/vyandex-exit.compose.yml ~/openflux-phone-1/compose.yml
cd ~/openflux-phone-1
printf 'DOC_URL=%s\n' 'https://docs.yandex.ru/edit/d/ВАШ_ID_ДОКУМЕНТА' > .env
openssl rand -hex 32 > channel.key
# Положите сюда свой экспорт браузера: yandex-cookies.txt
chmod 600 .env channel.key yandex-cookies.txt
docker compose up -d
docker compose logs --tail 30

Убедитесь, что в журнале есть Running as EXIT NODE. Сохраните channel.key для клиента и передавайте его только защищённым способом. Cookie-файл клиента также должен содержать действующую сессию Яндекса. Сборка образа сама по себе не подтверждает работу канала: проверьте реальный запрос с клиента ниже.

2а. Android

Используйте приложение из Android-форка с arm64-бинарником OpenFlux. Установите APK поверх предыдущей версии, если подпись совпадает. Откройте приложение, добавьте профиль вручную и укажите:

Поле Значение
Транспорт vyandex / Yandex Volga
Ссылка тот же URL документа, что в .env exit-ноды
Ключ шифрования точное содержимое channel.key
Legacy codec выключен на обеих сторонах
Debug выключен для обычной работы

После сохранения нажмите «Подключить». При первом запуске выберите yandex-cookies.txt в системном окне выбора файла и разрешите создание VPN. Если сессия Яндекса позже истечёт, откройте меню профиля и выберите «Импорт сессии Яндекса» для нового cookie-файла. Откройте на телефоне https://api.ipify.org: должен отобразиться IP вашей VPS.

2б. ПК через SOCKS5

На ПК с Docker соберите тот же образ из этого репозитория. Создайте отдельную папку клиента и скопируйте туда deploy/vyandex-client.compose.yml как compose.yml, .env с тем же DOC_URL, channel.key и свой yandex-cookies.txt. Запустите docker compose up -d. По умолчанию SOCKS5 доступен только на 127.0.0.1:1081. Другой локальный порт задаётся строкой SOCKS_PORT=1082 в .env; это не создаёт новый канал без отдельного документа и exit-ноды.

Укажите в браузере SOCKS5 127.0.0.1:1081 и включите DNS через прокси. Проверка в PowerShell:

curl.exe --max-time 30 --proxy socks5h://127.0.0.1:1081 https://api.ipify.org

Результатом должен быть IP VPS. SOCKS5 направляет через OpenFlux только программы, настроенные на этот прокси.

Если сайт не открывается

Проверьте docker compose ps и журналы exit-ноды, затем одинаковую ссылку, ключ и кодек на обеих сторонах. 401, CAPTCHA или ошибка авторизации означают, что сессию Яндекса нужно обновить. Если статус клиента «Работает», но сайты не открываются, выполните запрос к api.ipify.org и посмотрите, растёт ли счётчик полученных пакетов. Транспорт автоматически обновляет авторизацию при переподключении WebSocket, планово меняет сессию и пытается восстановить канал после 60 секунд без ответа на пользовательский пакет. Это не заменяет ручное обновление истёкших cookies.