Домашний роутер 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.
- Бейдж состояния (
Сессия активна / Ждет вторую сторону / Нужна проверка / Ошибка), автоопрос каждые 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— если документ запросил проверку: куки через UIdocs/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-сокетов).