Интерактивное меню установки и управления пакетами nfqws-keenetic, nfqws2-keenetic и nfqws-keenetic-web для роутеров Keenetic / Netcraze с Entware.
Репозиторий также служит хранилищем готовых стратегий обхода DPI, blobs и lists.
- Скрипт:
nfqws-menu.sh(текущая версия 0.10.1) - Стратегии:
strategies/ - Hosts:
hosts - Контрольные суммы:
SHA256SUMS,strategies/blobs/SHA256SUMS
| Пакет | Репозиторий |
|---|---|
| nfqws-keenetic (v1) | https://github.com/nfqws/nfqws-keenetic |
| nfqws2-keenetic (v2) | https://github.com/nfqws/nfqws2-keenetic |
| Веб-интерфейс | https://github.com/nfqws/nfqws-keenetic-web |
Стратегии в этом репозитории сделаны на базе проекта
Flowseal/zapret-discord-youtube
и адаптированы под формат конфигов nfqws-keenetic / nfqws2-keenetic.
Подготовлены пользователем @Nare51 с использованием искусственного интеллекта.
Подключитесь к Entware (SSH, порт 222 или 22, логин root).
Рекомендуется jsDelivr —
raw.githubusercontent.comу части провайдеров отвечает 404 (DPI), хотя файл в репозитории есть.
opkg update && opkg install curl wget-ssl
wget -O /opt/nfqws-menu.sh https://cdn.jsdelivr.net/gh/rndnaame/nfqws-menu@main/nfqws-menu.sh && chmod +x /opt/nfqws-menu.sh && sh /opt/nfqws-menu.shили curl:
curl -fsSL -o /opt/nfqws-menu.sh https://cdn.jsdelivr.net/gh/rndnaame/nfqws-menu@main/nfqws-menu.sh && chmod +x /opt/nfqws-menu.sh && sh /opt/nfqws-menu.shЗапасное зеркало (Fastly):
wget -O /opt/nfqws-menu.sh https://fastly.jsdelivr.net/gh/rndnaame/nfqws-menu@main/nfqws-menu.sh && chmod +x /opt/nfqws-menu.sh && sh /opt/nfqws-menu.shwget -O /opt/nfqws-menu.sh https://raw.githubusercontent.com/rndnaame/nfqws-menu/main/nfqws-menu.sh && chmod +x /opt/nfqws-menu.sh && sh /opt/nfqws-menu.shили ghproxy:
wget -O /opt/nfqws-menu.sh https://ghproxy.net/https://raw.githubusercontent.com/rndnaame/nfqws-menu/main/nfqws-menu.sh && chmod +x /opt/nfqws-menu.sh && sh /opt/nfqws-menu.shПосле первого запуска создаётся symlink для быстрого старта:
menu(/opt/bin/menu → /opt/nfqws-menu.sh)
При запуске скрипт:
- Определяет архитектуру:
opkg print-architecture(основной) → при ошибке/opt/etc/opkg.conf→ fallbackuname -m. На части Keeneticuname/RCI отдаютmipsвместоmipsel— поэтому opkg приоритетнее. - Заголовок: Модель / Title / ARCH из RCI (
/rci/show/version). ARCH зелёный (из opkg) или жёлтый (из conf/uname). Если в RCI нетopkg-kmod-netfilter— красное предупреждение установить «Модули ядра подсистемы Netfilter». - Показывает только установленные компоненты (версии и статус) одним проходом awk по status/process-кэшу:
- пакеты NFQWS / web, usque-keenetic, tg-ws-proxy-rs, magitrickle;
- dpi-detector, awg-manager (⚡ при sing-box / amneziawg), KeenKit, telemt, opera-proxy, cron, dropbear;
- ⚡ — сервис запущен; ⭡ — доступна более новая версия (фоновая проверка, TTL 10 мин, перерисовка меню без Enter).
- Интерфейс RU / EN (пункт 77): подписи меню и общие промпты (
Your choice [0]:/Ваш выбор [0]:). ПодписьLanguage: RU|ENвсегда латиницей (удобно для Telnet). - Предлагает меню:
[::] КОМПОНЕНТЫ
1. Установка NFQWS / NFQWS2
[::] СТРАТЕГИИ / СПИСКИ
2. Выбор стратегии
3. Обновить IPSet List
4. Загрузить rkn.list (125k+ доменов)
5. Обход блокировки DoT/DoH
6. Смена активных fake:blob
7. Обновление hosts
8. Управление DoT/DoH
9. Discord: все пакеты в nfqws2
[::] УТИЛИТЫ
10. dpi-detector
11. awg-manager
12. KeenKit
13. usque-keenetic
14. MagiTrickle
15. telemt / telemt-panel
16. TG WS Proxy Rust
17. firc
[::] СЕРВИС [S] | Language: RU|EN [77]
88. Удаление пакетов
99. Обновить скрипт
00. Выход
Горячие клавиши: S — сервисные утилиты (UPX, Dropbear fix, upgrade пакетов); U — opkg update && opkg upgrade; 77 — смена языка RU↔EN.
Пример блока статуса:
Установленные компоненты:
nfqws2-keenetic 1.3.x ⚡
nfqws-keenetic-web 3.x ⚡
tg-ws-proxy-rs 2.x ⚡
dpi-detector …
⭡ - доступна более новая версия
Подменю:
1) nfqws-keenetic
2) nfqws2-keenetic
3) nfqws-keenetic-web
4) Установка / обновление .ipk (обход DPI)
0) Назад
- 1–2 — зависимости (
ca-certificates,wget-ssl), официальный opkg-репозиторий под архитектуру, установка пакета; при v2, если стоит v1 — предложение удалить старый пакет. После установки — предложение поставить веб. - 3 — веб-интерфейс (lighttpd + PHP, порт 90):
http://<IP-роутера>:90, логин/пароль Entware (root/keeneticпо умолчанию). - 4 — прямая установка .ipk (обход DPI): версии с github.io, скачивание с GitHub Releases → ghproxy → github.io, затем
opkg installлокального файла (конфиги при необходимости извлекаются из .ipk).
Фикс TLS reasm с NFQWS2 ≥ 1.3.1 входит в официальный пакет.
- Если ни одна версия NFQWS не установлена — предлагает установить.
- Показывает список
.confиз:strategies/nfqws1/— для v1strategies/nfqws2/— для v2
- Список стратегий:
SHA256SUMS→ GitHub API → локальный offline-кэш (/opt/etc/nfqws-menu/strategies/…). - Скачивание: основной raw GitHub → зеркала jsDelivr / Fastly jsDelivr / ghproxy → fallback через туннель-интерфейсы (
awg0,t2s0, …); успешный файл сохраняется в offline-кэш. - Делает бэкап текущего конфига и применяет стратегию.
- Перед записью нормализует CRLF → LF (иначе
source/iptables:: not found,invalid port/service). - Пункт 99 — восстановление из backup:
.bak.*от свежего к старому (самый свежий выделен), рядом имя стратегии изgeneral (…)в файле;fix_isp_interface, перезапуск сервиса. - После применения выполняет пост-настройку:
- Определяет интерфейс провайдера из default route (
ip route/route), сравнивает сISP_INTERFACEв конфиге и при необходимости предлагает установить правильное значение. При чтении значения снимаются\r, кавычки и пробелы (защита от CRLF в выводе меню). - Проверяет наличие глобального IPv6 (
scope global: 2a00, 2a02, 2606, 2001, …) на выбранномISP_INTERFACE(или default route) и выставляетIPV6_ENABLED=0|1. Несколько iface через пробел — достаточно одного с global.
- Если до смены стратегии в
MODE_LISTуже был--hostlist=…/rkn.list, привязка восстанавливается автоматически. POLICY_NAME/POLICY_EXCLUDE: стандартные значения (nfqws/0) не трогаются; нестандартные предлагается восстановить (по умолчанию: Нет).
Парсит установленный конфиг и находит используемые .bin (--blob=…, --dpi-desync-fake-tls=…, --dpi-desync-fake-quic=… и абсолютные пути).
- Сверяет локальные файлы с эталоном
strategies/blobs/SHA256SUMS(sha256sumилиopenssl dgst -sha256; кэш SUMS ~1 ч). - Отсутствующие или устаревшие/повреждённые (хеш не совпал) предлагает скачать заново; после загрузки — повторная проверка SHA256 (при несовпадении файл удаляется).
По запросу обновляет из strategies/lists/: user.list, exclude.list, ipset.list, ipset_exclude.list.
auto.list не трогается — его заполняет демон.
После всех шагов соответствующий сервис перезапускается.
Скачивает актуальный IP/CIDR-список из
Flowseal/zapret-discord-youtube
и записывает в ipset.list:
| Версия | Путь |
|---|---|
| nfqws-keenetic (v1) | /opt/etc/nfqws/ipset.list |
| nfqws2-keenetic (v2) | /opt/etc/nfqws2/lists/ipset.list |
Бэкап, очистка пустых строк/комментариев, перезапуск сервиса. При двух установленных версиях — можно обновить обе.
Доступно при установленном nfqws-keenetic (v1) и/или nfqws2-keenetic (v2). При обеих версиях — выбор: 1 / 2 / обе.
- Если
rkn.listуже есть — показывает размер в КБ (без медленного подсчёта 125k строк) и спрашивает, обновлять ли список (по умолчанию: Нет). При отказе скачивание пропускается. - Скачивает большой список доменов РКН из IndeecFOX/zapret4rocket
(extra_strats/TCP/RKN/List.txt). Сначала GitHub raw, затем jsDelivr / Fastly / ghproxy; при недоступности — зеркалоmizulina.shit.vc. - Записывает:
- v1 →
/opt/etc/nfqws/rkn.list - v2 →
/opt/etc/nfqws2/lists/rkn.list
- v1 →
- Добавляет
--hostlist=…/rkn.listвMODE_LISTсоответствующего конфига (с бэкапом), если его ещё нет. Вставка через awk (устойчиво к CRLF, пробелам, пустым кавычкам). - Перезапуск сервиса (
S51nfqws/S51nfqws2) только при реальных изменениях (обновлён список и/или изменёнMODE_LIST). Если hostlist уже был в конфиге и список не обновляли — перезапуск не выполняется.
Доступно при установленном nfqws-keenetic и/или nfqws2-keenetic (при обеих версиях — выбор v1 / v2 / обе).
Добавляет в NFQWS_ARGS_CUSTOM стратегию обхода блокировок публичных DoT/DoH DNS:
- nfqws1 —
strategies/dns_filter_nfqws1(классический--dpi-desync) - nfqws2 —
strategies/dns_filter_nfqws2(lua-desync)
Покрывает Cloudflare, Google, AdGuard, NextDNS, Quad9, DNS.SB, Alibaba, Xbox-DNS, Geohide и др.; при необходимости добавляет порт 853 в TCP_PORTS / UDP_PORTS и перезапускает соответствующий сервис (S51nfqws / S51nfqws2). Стратегия сначала скачивается с GitHub, при недоступности сети — встроенный fallback.
Позволяет заменить используемые в конфиге fake:blob=NAME на другой .bin-файл (переназначает путь в --blob=NAME:…).
- Быстрый разбор конфига (v1/v2) одним проходом awk: секции
NFQWS_*ARGS*, map--blob=name:path, уникальныеfake:blob=(hex пропускаются). - Показывает список найденных имён по секциям.
- Кандидаты
.bin: локальные → имена изstrategies/blobs/SHA256SUMS→ GitHub API → встроенный fallback. - При выборе файла из репозитория — скачивает его, обновляет
--blob=…, бэкап конфига. - Перезапуск сервиса — по подтверждению (по умолчанию Да).
Запись статических DNS-привязок на стороне Keenetic через ndmc (ip host DOMAIN IP / no ip host DOMAIN + сохранение конфигурации).
- Скачивает файл
hostsиз репозитория. - Секции задаются комментариями
# Имя секции; внутри — строкиIP DOMAIN. - Можно выбрать одну или несколько секций, все, либо 88 — удалить домены из hosts-файла.
- Только IPv4; битые домены (
.., ведущая.) пропускаются; один IP на домен. - Предупреждение, если уникальных записей > 64 (лимит Keenetic
ip host). - Нужен
ndmc(только Keenetic / Netcraze OS).
Управление DNS-over-TLS / DNS-over-HTTPS на стороне Keenetic через ndmc.
Подменю:
1) Добавить DoT сервер(ы)
2) Добавить DoH сервер(ы)
3) Привязать домен к DNS (Пресеты)
4) Удалить сервер(ы)
0) Назад
Возможности:
- Просмотр текущих DoT/DoH и персональных привязок к доменам
- Счётчик слотов N/8 — только секция System (Policy0/1 и
*-filtersне учитываются) - Пресеты DoT/DoH: Яндекс, Cloudflare, Google, Quad9, CleanBrowsing, OpenDNS, DNS.SB, OpenNameServer, AdGuard (Default/Family), ControlD Free, DNS4EU, Alibaba DNS, DNSPod, NullsProxy, Xbox-DNS, Comss, Malw Link, Geo Hide, Cloudflare Gateway, AstraCat, Bezmezhau, DNS-AI, Mafioznik, Shecan Free и др. или ручной ввод
- Быстрая привязка доменов (пресеты):
| № | Описание |
|---|---|
| 1 | CleanBrowsing DoT → instagram.com |
| 2 | CleanBrowsing DoH → instagram.com |
| 3 | CleanBrowsing DoT → cdninstagram.com |
| 4 | CleanBrowsing DoH → cdninstagram.com |
| 5 | sw.ext.io DoT → rutor.is & rutor.info |
| 6 | Malw Link DoH → ntc.party |
| 7 | Xbox-DNS DoT → gql.twitch.tv & usher.ttvnw.net |
| 8 | Xbox-DNS DoH → gql.twitch.tv & usher.ttvnw.net |
| 9 | NullsProxy DoT → Supercell (supercell.com, supercellid.com, brawlstarsgame.com, clashofclans.com, clashroyaleapp.com) |
| 10 | NullsProxy DoH → те же домены Supercell |
| 11 | Ввести свой домен и выбрать сервер |
- Удаление upstream-ов с сохранением конфигурации
Нужен
ndmc(CLI Keenetic/Netcraze).
При активном Интернет-фильтре часть DoT может помечаться как disregarded.
Для nfqws2-keenetic. Убирает потери в голосе и демонстрации экрана Discord, когда обход делает роутер, а не компьютер (Flowseal / winws).
nfqws2-keenetic отдаёт nfqws2 только первые 15 пакетов соединения, дальше Keenetic передаёт поток в
аппаратное/программное ускорение. winws на компьютере пропускает через себя каждый пакет. Пункт делает
так же на роутере: UDP на порты Discord (19294:19344,50000:50100) идёт в nfqws2 весь звонок, а эти
потоки исключаются из ускорения штатной целью прошивки -j PPE. Остальной трафик ускоряется как раньше.
Запускает nfqws2_fullsession.sh (отдельно: sh nfqws2_fullsession.sh — меню,
status | apply | xkeen | remove — без меню):
1) Статус / диагностика
2) Включить фикс
3) Выключить фикс и удалить
4) XKeen: исключить порты Discord (если установлен XKeen)
- Включить — цепочки
nfqws_full_post/nfqws_full_fwd, init-скриптS52nfqws2-fullsessionи хукnetfilter.d/101-nfqws2-fullsession.sh, который возвращает правила, когда прошивка перезаписывает таблицу. Скрипт копирует себя в/opt/etc/nfqws2-fullsession/; пакетnfqws2-keeneticне меняется. После включения нужно переподключиться к голосовому каналу. - Статус — правила, потери в очереди, потоки звонка в ускорении (если не 0 — переподключиться),
журнал
/tmp/nfqws2-fullsession.log. - XKeen — добавляет порты Discord в
port_exclude.lst, чтобы голос не уходил в Xray.
Стратегию пункт не меняет: голос Discord должен подключаться со стратегией из п. 2 (проверено с
профилем Discord без --out-range, как в alt*).
Через nfqws2 идут все пакеты звонка: отбор только части пакетов проверялся — потери возвращаются.
Нагрузка — около 1 % одного ядра на стрим (Netcraze NC-1812).
Инструмент для анализа цензуры трафика в России: обнаруживает и классифицирует блокировки сайтов, хостингов и CDN (TCP16–20 блокировки), а также подмену DNS-запросов провайдером.
Актуальная версия dpi-detector (ветка rust):
curl -fsSL https://raw.githubusercontent.com/Runnin4ik/dpi-detector/rust/install.sh | shЕсли бинарник уже есть (/opt/bin/dpi-detector) — очищает дубликаты (/tmp, /opt/root) и сразу запускает его. После установки — та же очистка дубликатов.
Веб-интерфейс для управления AmneziaWG VPN-туннелями на роутерах Keenetic. В тестовом режиме добавлена поддержка Sing-box (vless tcp, hysteria, trojan и др.).
Установщик awg-compressed:
curl -sL https://raw.githubusercontent.com/rndnaame/awg-compressed/main/install-compressed.sh | shВ статусе: awg-manager или awg-manager [+SB] при наличии sing-box.
Многофункциональный скрипт, упрощающий взаимодействие с роутером на базе KeeneticOS.
- Есть
/opt/keenkit.sh— сразу запускает. - Иначе — установщик KeenKit.
Адаптация неофициального клиента Cloudflare WARP с режимом MASQUE для роутеров Keenetic / Netcraze.
Через installer_usque.sh (пункт меню 13 или напрямую):
curl -fsSL https://raw.githubusercontent.com/rndnaame/nfqws-menu/main/installer_usque.sh | shПодменю:
- Установка — пакет usque-keenetic (opkg, репозиторий
side-effect-tm.github.io/usque-keenetic/all) - Обновление bin — бинарник Diniboy1123/usque с GitHub Releases →
/opt/usr/bin/usque(aarch64→arm64, mipsel→mipsle, mips→mips, x86_64→amd64) - Удаление —
opkg remove --autoremove usque-keenetic+ conf репозитория; опционально/opt/etc/usque
- Init:
/opt/etc/init.d/S51usque(start | stop | restart | status) - Конфиг:
/opt/etc/usque/usque.conf - Бинарник:
/opt/usr/bin/usque
# Интерфейс. Определяется автоматически при установке.
# Должен быть вида opkgtun*
IFACE="opkgtun0"
Утилита для точечной маршрутизации сетевого трафика по заданным доменным именам.
Установка / обновление MagiTrickle:
- Не установлен — добавление репозитория (
add_repo.sh) +opkg install magitrickle+S99magitrickle start - Установлен →
opkg update && opkg install magitrickle+ restart сервиса - Init:
/opt/etc/init.d/S99magitrickle(start | stop | restart | status) - Удаление — в п. 88 (с опциональным удалением
/opt/etc/opkg/magitrickle.conf)
Telegram MTProto-прокси на Rust (полная реализация официального алгоритма + расширения). Скрипты: augin/telemt_script (Entware / Keenetic, рекомендуется aarch64).
Подменю:
1. Установка telemt
2. Установка telemt-panel
3. Эмуляция systemD
4. Удаление
0. Назад
- Установщики запускаются с привязкой к
/dev/tty(интерактивные скрипты). - П. 3 — эмуляция systemctl для Entware (anch665/keendev и аналоги), если нужна совместимость с unit-скриптами.
- Статус telemt / telemt-panel отображается в блоке установленных компонентов; удаление — здесь или в п. 88.
В главном меню: клавиша S (или раздел «СЕРВИС»).
| Пункт | Действие |
|---|---|
| 1 | Сжать bin/sbin (UPX) — upx --lzma --best для /opt/bin, /opt/sbin, /opt/usr/bin, /opt/libexec (при необходимости ставит upx) |
| 2 | Dropbear fix — скрипт sw.ext.io/ent/_addons/dropbear_fix (с опцией сброса пароля root или без) |
| U | Обновить все пакеты — opkg update && opkg upgrade (также клавиша U из главного меню) |
tg-ws-proxy-rs — MTProto-прокси на Rust. В opkg его нет: ставит штатный install.sh проекта, он же пишет конфиг и Entware-инициализацию. Меню добавляет:
- секрет и порт прежней Go-установки (если осталась) — ссылки
tg://не меняются, Go-сервис останавливается и снимается с автозапуска; - выбор сборки — обычная или компактная (UPX), таблицей: размер на флеше и потребление памяти. По умолчанию обычная; компактная — когда флеш-памяти мало (образ распаковывается в ОЗУ и не вытесняется);
- подбор параметров по замерам — CF-домены и варианты лестницы проверяются штатной пробой бинаря, затем выводится список с временем каждого, и путь выбираете вы (Enter — быстрейший);
- проверка связи до выдачи ссылки —
resPQот DC Telegram, то есть вся цепочка, а не «порт открыт».
Конфиги: /opt/etc/tg-ws-proxy-rs/config.conf (DC_IP, CF_DOMAIN, EXTRA_ARGS), secret.conf рядом с ним.
Init: /opt/etc/init.d/S99tg-ws-proxy-rs (start / stop / status / restart)
Проба есть с версии 2.4.5; у более старого бинаря меню предложит обновиться.
Секрет меню пишет само, до установки: генератор секрета в install.sh проекта использует od -An, которого BusyBox не знает, и на боксе без готового секрета установка падает. Если секрет остался от Go-версии, переносится он — тогда ссылки клиентов не меняются.
firc — утилита для точечной маршрутизации трафика по доменам (FakeIP) на Keenetic / Entware. Нужные домены заворачиваются в выбранный интерфейс (VPN / туннель), остальной трафик не затрагивается.
Через installer_firc.sh (пункт меню 17 или напрямую):
curl -fsSL https://raw.githubusercontent.com/rndnaame/nfqws-menu/main/installer_firc.sh | sh- Установка / обновление firc —
src/gz hoaxisr→/opt/etc/opkg/awg_manager.conf(repo.hoaxisr.ru), затемopkg update && opkg install firc - Удаление firc —
opkg remove(awg_manager.confне трогаем) - Полное меню — remote
installer_firc.sh(диагностика и т.п.)
- Init:
/opt/etc/init.d/S99firc(start | stop | restart | status) - WebUI: обычно порт 666
- Целевая платформа: KeeneticOS 4+/5+ (ядро вроде
4.9-ndm-5), aarch64 / mipsel / mips - Статус в блоке установленных компонентов; удаление — здесь или в п. 88
Мгновенное переключение интерфейса ru ↔ en (файл /opt/etc/nfqws-menu.lang).
Показывает установленные компоненты и позволяет удалить выборочно:
Удаление:
[N] nfqws2-keenetic / nfqws-keenetic-web / dpi-detector /
awg-manager / tg-ws-proxy-rs / usque-keenetic / firc /
magitrickle / opera-proxy / KeenKit / telemt
[a] Удалить все пакеты NFQWS
[b] Удалить резервные копии (.bak.* / *-opkg)
[0] Назад
- Пакеты NFQWS —
opkg remove --autoremove - dpi-detector — бинарник (
/opt/bin/dpi-detectorи др.) - awg-manager —
opkg remove+rm -rf /opt/etc/awg-manager - tg-ws-proxy-rs — бинарь, init, конфиги
- usque-keenetic —
opkg remove --autoremove+/opt/etc/opkg/usque-keenetic.conf - firc —
opkg remove --autoremove(+ stopS99firc;awg_manager.confне удаляем) - magitrickle —
opkg remove+ запрос на удаление/opt/etc/opkg/magitrickle.conf - KeenKit — удаление
/opt/keenkit.sh - a) — все пакеты NFQWS + dpi-detector
- b) —
*.bak.*,*.conf-opkg,*.list-opkgв/opt/etc/nfqws/,/opt/etc/nfqws2/,/opt/etc/nfqws2/lists/
Скачивает свежую версию из репозитория, перезаписывает /opt/nfqws-menu.sh, обновляет symlink /opt/bin/menu, сразу перезапускает меню (exec).
- п. 17 firc — снова только remote
installer_firc.sh(без встраивания логики в меню)
- (отменено в 0.10.4) попытка inline-установки firc в меню
- п. 17 firc — установка через repo.hoaxisr.ru:
src/gz hoaxisr→/opt/etc/opkg/awg_manager.conf,opkg update && opkg install firc; Depends тянет opkg; conf общий с awg-manager не удаляется при remove
- Нумерация версии: переход на линейку 0.10.x (MINOR после серии 0.9.x).
- п. 17 — firc (hoaxisr/firc, repo.hoaxisr.ru): opkg install из фида; статус в show_installed
- Архитектура —
opkg print-architecture→/opt/etc/opkg.conf→uname; заголовокМодель Title ARCH; предупреждение без Netfilter-kmod - Язык RU/EN (77) — локализация основного меню и общих промптов;
Language: RU|ENвсегда латиницей (Telnet) - Проверка обновлений — TTL 10 мин;
read -tдля авто-перерисовки с меткой ⭡; dpi-detector учитывает pre-release - Компоненты — разбор
/opt/lib/opkg/status(толькоinstalled), один awk-проход; меньше зависаний при занятом opkg - rkn.list — сначала GitHub raw; очистка list через awk (в т.ч. CRLF)
- Стратегии — предупреждение о ts-фулинге (TCP timestamps на Windows)
- Промпты — единый формат
Your choice [0]:/Ваш выбор [0]:; пункт 0 вездеBack/Назад
- Нумерация меню — единый п. 1 (NFQWS / NFQWS2 / web / .ipk); стратегии/списки 2–8; утилиты 10–17 (без TG WS Proxy Go)
- п. 1 → 4 — установка
.ipkнапрямую (GitHub Releases / ghproxy / github.io) при блокировке opkg-репозитория - Проверка обновлений — фоновый опрос (меню, tg-ws-proxy-rs, dpi-detector, awg-manager…); метка ⭡ в статусе и заголовке; TTL 10 мин (
NFQWS_MENU_UPDATE_TTL) - TG WS Proxy Go убран из меню (остаётся миграция секрета/порта при установке Rust)
- TG WS Proxy Rust (п. 17) — отдельный пункт:
tg-ws-proxy-rsставится релизом с GitHub, секрет и порт прежней Go-установки переносятся - Подбор параметров — CF-домены и варианты лестницы проверяются штатной пробой бинаря (
--check-listener, 2.4.5+), список с временем каждого выводится на выбор - Сквозная проверка — ссылка выдаётся только после
resPQот DC Telegram
- Ввод — убраны
stty/tty_setupи чтение меню с/dev/tty(ломали Backspace → печать^?); обычныйread;drain_stdinсохранён - п. 1 — убран пункт «патч десинка TLS reasm» (с NFQWS2 ≥ 1.3.1 фикс в официальном пакете)
- п. 16 — telemt / telemt-panel (augin/telemt_script): install / panel / systemD-emu / remove; статус в
show_installed - S — сервисные утилиты: UPX-сжатие bin/sbin, Dropbear fix, U —
opkg upgradeвсех пакетов - п. 10–12 — без лишнего
confirmперед запуском установщиков dpi-detector / awg-manager / KeenKit - (патч TLS reasm bin — временно в 0.6.50–0.6.65, снят в 0.6.66)
- Загрузки — зеркала CDN для raw/API GitHub: jsDelivr, Fastly jsDelivr, ghproxy; offline-кэш стратегий в
/opt/etc/nfqws-menu/strategies/ - Список стратегий — SUMS → API → offline-кэш
- DNS (п. 9) — пресет NullsProxy; привязки доменов: cdninstagram, Supercell через NullsProxy (п. 9–10), свой домен → 11
- п. 3 apply_strategy —
POLICY_NAME/POLICY_EXCLUDE: стандартные (nfqws/0) не трогаются; нестандартные — восстановление по запросу (y/N)
- п. 3 → 99 backup — список
.bak.*от свежего к старому; самый свежий выделен жёлтым; рядом со стратегией из конфига (general (ALT11))
- download_file — сообщения fallback («Основной канал недоступен…», «Скачано через…») уходят в stderr, чтобы не попадали в
list=$(list_strategies …)и не ломали нумерацию меню - list_strategies — дополнительно фильтрует только строки
*.conf
- п. 3 Выбор стратегии — в конце списка добавлен 99) восстановление из backup: вывод
nfqws.conf.bak.YYYYMMDDHHMMSS(V1) /nfqws2.conf.bak.…(V2), выбор файла, запись без бэкапа текущего,fix_isp_interface, перезапуск сервиса
- Таймауты загрузок — увеличены для сильного DPI: connect 10 с, max 30 с, wget 25 с (раньше 5 / 15 / 12); для крупных файлов (rkn) — до 180 с
- п. 5 rkn.list — при недоступности GitHub raw: jsDelivr / Fastly / ghproxy / зеркало
mizulina.shit.vc; URL основного источника упрощён (…/master/…безrefs/heads)
- LBL_* — подписи пунктов совпадают с номерами меню (
LBL_5…LBL_9; удалёнLBL_7F) - DoT/DoH пресеты — Google, AdGuard Default/Family, ControlD Free, DNS4EU, Alibaba DNS, DNSPod; убраны нерабочие Tiar Japan
- proc_running —
grep -qF --(fix при именах сервисов с ведущим-)
- SHA256 blobs — проверка локальных
.binпоstrategies/blobs/SHA256SUMS; перекачка при несовпадении хеша - Список стратегий — из корневого
SHA256SUMS(без GitHub API), API как fallback - Список blobs (п. 7) — приоритет SUMS → API → fallback
- Загрузки — при блокировке основного канала
curl --interfaceчерез туннели (awg0,t2s0,nwg0,opkgtun0, …); короткие таймауты - CI — workflow
.github/workflows/sha256sums.ymlобновляетSHA256SUMSиstrategies/blobs/SHA256SUMS(push / daily / manual) - п. 3 — авто
IPV6_ENABLEDпо наличию глобального IPv6 на ISP-интерфейсе; сохранение привязки rkn.list вMODE_LISTпри смене стратегии - DNS (п. 9) — парсер только секция System (
proxy-tls/proxy-https); Policy* и*-filtersигнорируются
- п. 5 — поддержка v1 и v2 (выбор 1 / 2 / обе); размер существующего
rkn.listв КБ вместо подсчёта строк - п. 5 — вставка в
MODE_LISTчерез awk (CRLF, пустые кавычки, пробелы) - п. 10 — очистка дубликатов
dpi-detector(/tmp,/opt/root) перед запуском / после установки
- п. 8 — только IPv4; пропуск битых доменов (
.., ведущая.); один IP на домен; предупреждение при >64 записей (лимит Keenetic) - hosts — исправлены
objects.githubusercontent.com,my.telegram.org; убраны IPv6 и дубли discord
- п. 3 — при применении стратегии: нормализация CRLF → LF в скачанном
.conf(иначеS51nfqws2падает с: not found/ битыми портами iptables) - ISP_INTERFACE — при разборе значения из конфига удаляются
\rи кавычки (исправлен «съехавший» вывод[+]→"+]) - п. 8 — Обновление hosts: секции из
hostsв репозитории →ndmc ip host/ удаление (no ip host) + save
- п. 7 — ускорен разбор конфига: один проход
awkвместо shell+grep на каждую строку
- п. 5 — если
rkn.listуже есть, спрашивает об обновлении (по умолчанию Нет) - п. 5 — перезапуск
S51nfqws2только при изменениях (список и/илиMODE_LIST)
- Базовая линейка 0.6.x (см. ниже)
- п. 5 — загрузка rkn.list (125k+ доменов, zapret4rocket) + автодобавление в
MODE_LIST - п. 7 — смена активных fake:blob (локальные + из репозитория)
- п. 8 — Обновление hosts через
ndmc - п. 15 — MagiTrickle (установка/обновление/удаление)
- п. 15 — telemt / telemt-panel; п. 16 — TG WS Proxy Rust
- S / U — UPX, Dropbear fix, opkg upgrade
- п. 8 — Управление DoT/DoH: пресеты Xbox-DNS / NullsProxy / Supercell и др.
- SHA256 blobs + список стратегий из SUMS; CDN/offline-кэш; fallback через VPN-туннели
- Нумерация (0.8.x): 1 = install, 2–8 = стратегии/списки, 10–16 = утилиты
- Статус: magitrickle / telemt / tg-ws-proxy-rs; метка ⭡ при новой версии
- Без принудительного
export LD_LIBRARY_PATH(совместимость ndmc / Entware wget) - Обычный
readв меню (безstty/ принудительного erase)
- usque-keenetic (п. 14) — установка/обновление; удаление в п. 88
- DNS-счётчик — только секция System; Policy0/1 и
proxy-*-filtersне учитываются
- Счётчик DoT/DoH по слотам (записи
server-tls/server-https), а не по уникальным targets - Ужесточён парсер
show dns-proxy
- LD_LIBRARY_PATH / ndmc_cli — OPKG-путь по умолчанию;
ndmcчерез системные библиотеки (как у spatiumstas)
- TG WS Proxy Go (п. 13) — установка/обновление через feedly
- Удаление
tg-ws-proxyв п. 88 (+ опциональноfeedly.conf)
- Управление DoT/DoH через
ndmc - Утилиты: awg-manager, KeenKit; удаление — п. 88
- Быстрый запуск
menu, статус только установленного, ⚡, кэш opkg/процессов - Переключение языка (п. 77)
nfqws-menu/
├── nfqws-menu.sh # Главный скрипт меню
├── nfqws2_fullsession.sh # П. 9: фикс потерь в голосе/стриме Discord (nfqws2)
├── hosts # Секции IP DOMAIN для п. 8 (ndmc ip host)
├── SHA256SUMS # Хеши файлов репозитория (список стратегий без API)
├── README.md
├── .github/workflows/
│ └── sha256sums.yml # Автообновление SHA256SUMS
└── strategies/
├── blobs/
│ ├── *.bin # Бинарные шаблоны
│ └── SHA256SUMS # Эталоны для проверки blobs на роутере
├── lists/ # Готовые списки доменов / IP
│ ├── user.list
│ ├── exclude.list
│ ├── ipset.list
│ └── ipset_exclude.list
├── nfqws1/ # Стратегии для nfqws-keenetic (v1)
└── nfqws2/ # Стратегии для nfqws2-keenetic (v2)
- Файл
имя.confвstrategies/nfqws1/илиstrategies/nfqws2/. - Полный конфиг (
ISP_INTERFACE=,NFQWS_ARGS=/NFQWS_BASE_ARGS=и т.д.). - При необходимости —
.binвstrategies/blobs/, списки вstrategies/lists/. - После push workflow обновит
SHA256SUMS/strategies/blobs/SHA256SUMS; скрипт подхватит стратегию из SUMS (или через GitHub API).
- Установлен Entware (внутренняя память или USB).
- В веб-интерфейсе — модули ядра Netfilter (
OPKG → Kernel modules for Netfilter).
На старых прошивках компонент появляется после включения IPv6. - Рекомендуется отключить DNS провайдера и настроить DoT/DoH.
- Команды выполняются в среде Entware, не в CLI Keenetic.
# Статус сервисов
/opt/etc/init.d/S51nfqws status # v1
/opt/etc/init.d/S51nfqws2 status # v2
/opt/etc/init.d/S99tg-ws-proxy-rs status # TG WS Proxy Rust
/opt/etc/init.d/S51usque status # usque
/opt/etc/init.d/S99magitrickle status # MagiTrickle
# Порт веб-интерфейса
netstat -lnt | grep ':90'
# Перезапуск
/opt/etc/init.d/S51nfqws restart
/opt/etc/init.d/S51nfqws2 restart
/opt/etc/init.d/S99tg-ws-proxy-rs restart
/opt/etc/init.d/S51usque restart
/opt/etc/init.d/S99magitrickle restart
# Информация о пакете
opkg info nfqws-keenetic
opkg info nfqws2-keenetic
opkg info nfqws-keenetic-web
opkg info tg-ws-proxy-rs # если установлен как пакет
opkg info usque-keenetic
opkg info magitrickle
# Конфиги
vi /opt/etc/nfqws/nfqws.conf
vi /opt/etc/nfqws2/nfqws2.conf
vi /opt/etc/tg-ws-proxy-rs/config.conf
vi /opt/etc/tg-ws-proxy-rs/secret.conf
vi /opt/etc/usque/usque.conf
# Интерфейс провайдера
ip route | grep ^default
# или
route | grep ^default
# DNS-proxy (DoT/DoH)
ndmc -c show dns-proxy
# Быстрый запуск меню
menuМатериалы подготовлены в ознакомительных и научно-технических целях.
Использование на свой страх и риск. Автор не несёт ответственности за последствия.
Стратегии адаптированы на основе Flowseal/zapret-discord-youtube,
подготовлены @Nare51 с использованием искусственного интеллекта.
Официальные пакеты NFQWS: nfqws.