levmnkv/sign-craze

GitHub: levmnkv/sign-craze

面向 Keenetic 路由器的一体化防火墙管理工具,集成 sing-box 透明代理、nfqws2 DPI 绕过与 Web UI,简化路由器级流量管控部署。

Stars: 0 | Forks: 0

# sign-craze 用于管理 Keenetic 路由器防火墙的 Go 实用工具。 使用 [sing-box](https://github.com/SagerNet/sing-box) 作为代理核心,并可选使用 [nfqws2.](https://github.com/nfqws/nfqws2-keenetic) ## 功能特性 - 管理 sing-box:安装、启动、停止、更新、回滚 - 三种路由模式:`proxy` (tproxy)、`dpi` (nfqws2 + NFQUEUE)、`hybrid` - 原子化应用 iptables/ipset 规则,并保证回滚 - 通过 SRS rule-set 进行 GeoIP 过滤(基于 SHA256 选择性下载) - 内置 Web UI:Zashboard + admin API,运行在端口 `9090`/`9091` - 无需重启即可管理端口和例外项 - 配置的备份与还原 - 诊断模式 (`--diag`) ## 支持的架构 | 平台 | GOARCH | 备注 | |-----------|--------|-----------| | Keenetic (MIPS LE) | `mipsle` | GOMIPS=softfloat | | Keenetic (MIPS BE) | `mips` | GOMIPS=softfloat | | Keenetic / RPi (ARM 32) | `arm` | GOARM=7 | | Keenetic Ultra / RPi 4 | `arm64` | | ## 环境要求 - 已安装 [Entware](https://help.keenetic.com/hc/ru/articles/360021214160) 的 Keenetic 路由器 - 路由器可访问互联网(用于在安装时下载 sing-box) - `/opt` 上的可用空间:至少 30 MB ## 安装 ``` # 自动检测架构并安装最新 release wget -O - https://github.com/levmnkv/sign-craze/releases/latest/download/install.sh | sh # 启动安装(交互式:将请求 proxy / outbound URL) sign-craze --install # 或无提示运行 — 从路由器配置自动检测 sign-craze --install-auto # 运行 sign-craze --start ``` ## 命令 ``` sign-craze --install Установить sing-box + правила iptables sign-craze --install-auto Установить без интерактивных подсказок sign-craze --install-offline <путь> Установить из локального бинаря sign-craze --start Применить правила + запустить sing-box sign-craze --stop Остановить + убрать правила iptables sign-craze --restart / -r Перезапуск (stop + start) sign-craze --status / -s Показать состояние сервисов sign-craze --update / -u Обновить sign-craze sign-craze --update-geo / -g Обновить гео-файлы (SRS rule-set) sign-craze --update-core Обновить бинарь sing-box sign-craze --mode proxy|dpi|hybrid Переключить режим маршрутизации sign-craze --dpi on|off Включить / выключить DPI-обход sign-craze --dpi-strategy <пресет> Установить стратегию DPI sign-craze --port-add <порт> Добавить порт в проксируемый набор sign-craze --port-del <порт> Удалить порт sign-craze --port-list Показать список портов sign-craze --exclude-add Добавить IP/CIDR в исключения sign-craze --exclude-del Удалить из исключений sign-craze --exclude-list Показать исключения sign-craze --ui on|off Включить / выключить Web UI (порты 9090/9091) sign-craze --backup / -b Создать резервную копию конфигурации sign-craze --restore <путь> Восстановить из резервной копии sign-craze --diag / -D Диагностика (PASS/WARN/FAIL по каждому пункту) sign-craze --uninstall Удалить sing-box и правила, сохранить конфиги sign-craze --purge Полное удаление включая конфиги и логи sign-craze --version / -v Показать версии sign-craze и sing-box ``` 有关每条命令的详细说明、iptables 规则及配置文件格式,请参见 [`BEHAVIOR_SPEC.md`](BEHAVIOR_SPEC.md)。 ## 从源码构建 宿主机上不需要安装 Go——构建过程在容器中进行。 ``` # 所有架构 + UPX podman run --rm \ -v $(pwd):/workspace:z -w /workspace \ golang:1.25 make build # 特定架构 podman run --rm \ -v $(pwd):/workspace:z -w /workspace \ -e GOOS=linux -e GOARCH=mipsle -e GOMIPS=softfloat -e CGO_ENABLED=0 \ golang:1.25 go build -ldflags="-s -w" -o dist/sign-craze-mipsle ./cmd/sign-craze # Tests podman run --rm -v $(pwd):/workspace:z -w /workspace golang:1.25 go test ./... # Linter podman run --rm -v $(pwd):/workspace:z -w /workspace \ golangci/golangci-lint:latest golangci-lint run ./... ``` 经过 `upx --lzma` 处理后的目标二进制文件大小:≤ 4 MB。 ## 架构 ``` cmd/sign-craze/main.go │ internal/cli (диспетчер команд) ├── internal/singbox (загрузка, установка, конфиг sing-box) ├── internal/dpi (nfqws2: загрузка, конфиг, NFQUEUE) ├── internal/firewall (iptables/ipset: tproxy / redirect / hybrid) ├── internal/service (init.d shim, lifecycle, PID-файлы) ├── internal/geo (SRS rule-set, ipset-конвертация) └── internal/web (HTTP: Zashboard + admin API) ``` 详细的数据流图请参见 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)。 ## 开发状态 | 阶段 | 状态 | 内容 | |------|--------|-----------| | 阶段 0 — 准备 | ✅ | go.mod, Makefile, CI, BEHAVIOR_SPEC.md, docs | | 阶段 1 — 脚手架 | ✅ | cli, log, locks, exectx, errors, atomicfs, version, types | | 阶段 2 — sing-box | ✅ | 下载、安装、配置模板、服务 shim、生命周期 | | 阶段 3 — 防火墙 | ✅ | iptables/ipset, tproxy/redirect/hybrid 模式, Docker 测试 | | 阶段 4 — DPI/nfqws2 | ✅ | 下载、配置、NFQUEUE 生命周期 | | 阶段 5 — GeoIP 文件 | ✅ | SRS manifest、选择性下载、ipset | | 阶段 6 — Web UI | ✅ | HTTP 服务器、REST API、Zashboard 嵌入 | | 阶段 7 — 发布 | 🔄 | GitHub Actions 流水线、install.sh | ## 路由器上的文件结构 ``` /opt/sbin/sing-box — бинарь sing-box /opt/sbin/sign-craze — этот бинарь /opt/etc/sign-craze/config.json — конфигурация sing-box /opt/etc/sign-craze/nfqws2.conf — конфигурация nfqws2 (если DPI включён) /opt/etc/init.d/S05signcraze — init.d shim (автозапуск) /opt/var/lib/sign-craze/ — состояние (гео-файлы, бэкапы) /opt/var/log/sign-craze/ — логи с ротацией /opt/var/run/sign-craze-singbox.pid — PID sing-box /opt/var/run/sign-craze-nfqws2.pid — PID nfqws2 /opt/var/lock/sign-craze.lock — эксклюзивная блокировка ```
标签:DPI绕过, Entware, EVTX分析, Google搜索, Go语言, ipset, iptables, Keenetic, Linux运维, MIPS, Netcraze, NFQUEUE, sing-box, TCP SYN 扫描, Web UI, Zashboard, 二进制发布, 代理工具, 代理核心, 家庭网络, 开源工具, 日志审计, 程序破解, 网络分流, 网络管理工具, 网络配置, 网络防火墙, 路由器管理, 路由规则, 透明代理