Skip to content

About

Home OpenWrt router as an OpenFlux exit node: one-command setup, LuCI panel (Services → OpenFlux), shared-document transports, RU docs

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

openwrt-openflux-node

Домашний роутер OpenWrt как выходная нода OpenFlux: связь с домом из любой сети через общий документ. Публичный IP не нужен — нода сама подключается наружу к документу, входящих портов не открывает.

Проверено на Xiaomi Mi Router AX3000T (aarch64, OpenWrt 25.12.x), режим l4.

Как это устроено

телефон/ноутбук ⇄ общий документ ⇄ домашний роутер (нода) ⇄ интернет

Обе стороны подключаются к одному общему документу как клиенты облака. Документ — общая точка встречи: что одна сторона записала, облако само отдает второй. Поэтому NAT и отсутствие публичного IP не мешают.

Установка одной командой

На роутере (нужен исходящий интернет):

cd /tmp
wget -qO- https://github.com/HuntezWOTB/openwrt-openflux-node/archive/refs/heads/main.tar.gz | tar -xz
cd openwrt-openflux-node-main
sh openflux_owrt_install.sh

Скрипт сам: скачает бинарь OpenFlux под архитектуру роутера, создаст общий секрет, поставит панель Службы -> OpenFlux и включит автозапуск. Чужие файлы не трогает, поставленное пишет в /etc/openflux/install.manifest.

Снос — sh openflux_owrt_uninstall.sh: удаляет только свое по манифесту.

Какие ссылки подходят

Транспорт Формат Пример
mailru cloud.mail.ru/public/XXXX/YYYY cloud.mail.ru/public/qwer/tyuiopasd
yandex disk.yandex.ru/i/… (или длинная docs.yandex.ru/edit/…) disk.yandex.ru/i/asdfghjklzxcvb
boards boards.yandex.ru/whiteboard/?hash=… …?hash=1234567890qwertyuiopasdfghjklzxc

Везде нужно право редактирования документа, иначе стороны не смогут записывать сообщения друг другу. Остальные транспорты апстрима скрыты из панели до проверки — вернуть одну строку в openflux.js.

Панель Службы -> OpenFlux

  • Бейдж состояния (Сессия активна / Ждет вторую сторону / Нужна проверка / Ошибка), автоопрос каждые 10 секунд, окно последних событий.
  • Одна кнопка Подключить / Отключить, сворачиваемые Еще действия.
  • Секрет без SSH: Новый секрет, Ввести секрет, глазок 👁 Секрет.
  • Подсказка под ссылку меняется от транспорта + проверка соответствия.
  • Пустой URL сохраняется (простой без данных), кнопка Очистить данные стирает URL, куки и останавливает ноду.

Состав

openflux_owrt_install.sh    # установка одной командой (бинарь + секрет + панель)
openflux_owrt_uninstall.sh  # аккуратный снос (только свое по манифесту)
check.sh                    # диагностика: процесс, конфиг, логи
client.conf.example         # пример второй стороны (телефон/ноутбук)
luci-app-openflux/          # пакет LuCI: Службы -> OpenFlux
  menu.d/                   # пункт меню
  rpcd/                     # права доступа (ACL)
  rpcd-exec/luci.openflux   # бэкенд: статус, лог, действия, секрет
  htdocs/.../view/openflux.js  # страница: статус, визард, проверка доступа
  root/etc/config/openflux  # UCI-конфиг по умолчанию
  root/etc/init.d/openflux  # procd-сервис (читает UCI)
docs/                       # пошаговые инструкции

Документация

  • docs/01-quickstart.md — от чистой прошивки до запущенной ноды
  • docs/02-mailru-doc.md — создание и привязка общего документа
  • docs/03-second-side.md — подключение телефона/ноутбука
  • docs/04-access-check.md — если документ запросил проверку: куки через UI
  • docs/05-troubleshoot.md — типовые случаи и команды

Безопасность

  • Общий секрет (/etc/openflux/secret.txt, права 0600) одинаковый с обеих сторон. Не публикуйте его и ссылку на документ.
  • Куки и логи держим в /tmp (RAM), чтобы не изнашивать флеш роутера.
  • Репозиторий не содержит секретов: см. .gitignore.

Совместимость

  • OpenWrt 25.x с современным LuCI (ucode/JS). Старый Lua-LuCI не поддерживается.
  • Готовые билды: amd64, arm64, arm. Для mips/mipsle соберите бинарь на ПК вручную — команда в docs/01-quickstart.md.
  • Режим ноды — l4 (пользовательский прокси, без root-функций и RAW-сокетов).

Upstream: https://github.com/p1neappleXpress/OpenFlux

About

Home OpenWrt router as an OpenFlux exit node: one-command setup, LuCI panel (Services → OpenFlux), shared-document transports, RU docs

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages