iNTERCEPT,一个免费且开源平台,将顶尖信号情报工具整合到一个易于访问的界面中。
<p align="center"> <img src="https://raw.githubusercontent.com/smittix/intercept/HEAD/static/images/readme-banner.svg" alt="iNTERCEPT — 信号情报平台" width="100%"> </p> <p align="center"> <img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="Python 3.9+"> <img src="https://img.shields.io/badge/license-Apache--2.0-green.svg" alt="Apache 2.0 许可证"> <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey.svg" alt="平台"> </p> <p align="center"> 支持这个开源项目的开发者 </p> <p align="center"> <a href="https://www.buymeacoffee.com/smittix" target="_blank"><img src="https://assets.kitploit.com/production/public/readmes/12080/608ca47c77206e90cac89def2d3fa14b17084ebc4a0a8dce231e4f0b3a78be1a.webp" alt="请我喝杯咖啡" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a> </p> <p align="center"> <strong>信号情报平台</strong><br> 面向软件定义无线电工具的 Web 界面。 </p> <p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12080/ccf5fc125324afe151202823a136a895449841e2cdd28325dcf6290230cda0d1.png" alt="截图"> </p> --- ## 功能特性 - **寻呼机解码** - 通过 rtl_fm + multimon-ng 解码 POCSAG/FLEX - **433MHz 传感器** - 通过 rtl_433 接收气象站、TPMS、IoT 设备 - **Sub-GHz 分析仪** - 通过 HackRF 对 300-928 MHz ISM 频段进行 RF 捕获与协议解码 - **飞机追踪** - 通过 dump1090 接收 ADS-B,提供实时地图与雷达 - **船舶追踪** - AIS 船舶追踪,支持 VHF DSC 遇险监控 - **ACARS 消息** - 通过 acarsdec 接收飞机数据链消息 - **VDL2** - 通过 dumpvdl2 解码 VHF 数据链模式 2 飞机数据链 - **监听站** - 宽带频率扫描器,支持实时音频监听 - **气象卫星** - 通过 SatDump 解码 NOAA APT 与 Meteor LRPT 图像,支持自动调度 - **WebSDR** - 通过 KiwiSDR 网络远程收听 HF/短波 - **ISS SSTV** - 接收来自国际空间站的慢扫描电视图像 - **HF SSTV** - 短波频率上的地面 SSTV(80m-10m、VHF、UHF) - **APRS** - 通过 direwolf 接收业余分组无线电位置报告与遥测 - **卫星追踪** - 过境预测,提供极坐标图与地面轨迹地图 - **公用事业仪表** - 通过 rtlamr 读取电表、燃气表和水表 - **ADS-B 历史** - 持久化飞机历史记录,提供报告仪表板(可选 Postgres) - **WiFi 扫描** - 通过 aircrack-ng 进行监听模式侦察 - **蓝牙扫描** - 设备发现与追踪器检测(支持 Ubertooth) - **BT 定位** - SAR 蓝牙设备定位,支持 GPS 标记信号轨迹映射与接近警报 - **WiFi 定位** - 按 BSSID 定位 WiFi 接入点,提供实时信号计、距离估算与接近音频提示 - **GPS** - 实时 GPS 位置追踪,提供实时地图、速度、高度与卫星信息 - **TSCM** - 反监视,支持 RF 基线比对与威胁检测 - **Meshtastic** - LoRa 网状网络集成 - **太空天气** - 来自 NOAA SWPC、NASA SDO 和 HamQSL 的实时太阳与地磁数据(无需 SDR) - **间谍电台** - 数字电台与外交 HF 网络数据库 - **远程代理** - 通过远程传感器节点实现分布式 SIGINT - **离线模式** - 为气隙/野外部署捆绑资源 - **无人机情报** - 通过 ASTM F3411 Remote ID(WiFi/BLE)、RTL-SDR 433/868 MHz RF 以及 HackRF 2.4/5.8 GHz 扫描进行多向量 UAV 检测,提供实时接触地图与风险评分 --- ## 安装 / Debian / Ubuntu / macOS ### 快速开始 ```bash git clone https://github.com/smittix/intercept.git cd intercept ./setup.sh # Interactive menu (first run launches setup wizard) sudo ./start.sh ``` 首次运行时,`setup.sh` 会启动一个**引导向导**,它会检测你的操作系统、让你选择安装配置文件、设置 Python 环境,并可选地配置环境变量和 PostgreSQL。 Lors des exécutions suivantes, il ouvre un **menu interactif** : ``` INTERCEPT Setup Menu ════════════════════════════════════════ 1) Install / Add Modules 2) System Health Check 3) Database Setup (ADS-B History) 4) Update Tools 5) Environment Configurator 6) Uninstall / Cleanup 7) View Status 0) Exit ``` > **生产环境与开发服务器:** `start.sh` 会自动检测 gunicorn + gevent,并以协作式 greenlet 运行生产服务器——可处理多个 SSE/WebSocket 客户端而不会阻塞。如果未安装 gunicorn,则回退到 Flask 开发服务器。对于快速本地开发,你仍可直接使用 `sudo -E venv/bin/python intercept.py`。 ### 安装配置档 在向导中或通过菜单选项 1 选择要安装的内容: | # | 配置档 | 工具 | |---|---------|-------| | 1 | 核心 SIGINT | rtl_sdr, multimon-ng, rtl_433, dump1090, acarsdec, dumpvdl2, ffmpeg, gpsd | | 2 | 海事与无线电 | AIS-catcher, direwolf | | 3 | 气象与太空 | SatDump, radiosonde_auto_rx | | 4 | 射频安全 | aircrack-ng, HackRF, BlueZ, hcxtools, Ubertooth, SoapySDR | | 5 | 完整 SIGINT | 以上全部 | | 6 | 自定义 | 逐工具清单 | 多个配置档可以组合使用(例如输入 `1 3` 表示核心 + 气象)。 ### CLI 参数 ```bash ./setup.sh --non-interactive # Headless full install (same as legacy behavior) ./setup.sh --profile=core,weather # Install specific profiles ./setup.sh --health-check # Check system health and exit ./setup.sh --postgres-setup # Run PostgreSQL setup and exit ./setup.sh --menu # Force interactive menu ``` ### Docker ```bash git clone https://github.com/smittix/intercept.git cd intercept docker compose --profile basic up -d --build ``` > **注意:** Docker 需要特权模式才能访问 USB SDR。SDR 设备通过 `/dev/bus/usb` 透传。 > **你的数据:** 设置、用户、告警规则、监视列表和解码消息存放在宿主机的 `./instance` 中,因此它们能在 `--build` 后保留。从没有该挂载的 compose 文件升级?重建前先复制出旧数据:`docker cp intercept:/app/instance ./instance`。 对于多架构构建(amd64 + arm64,用于 Raspberry Pi),请参阅 `build-multiarch.sh` —— 它一步完成交叉编译和镜像仓库推送。 ### 环境配置 使用 **环境配置器**(菜单选项 5)以交互方式设置任意 `INTERCEPT_*` 变量。设置会保存到 `.env` 文件,`start.sh` 在启动时会自动加载该文件。 你也可以手动创建或编辑 `.env`: ```bash # .env (auto-loaded by start.sh) INTERCEPT_PORT=5050 INTERCEPT_ADSB_AUTO_START=true INTERCEPT_DEFAULT_LAT=51.5074 INTERCEPT_DEFAULT_LON=-0.1278 ``` ### ADS-B 历史记录(可选) ADS-B 历史记录功能会将飞机消息持久化到 PostgreSQL,以便进行长期分析。 **自动设置(本地安装):** ```bash ./setup.sh --postgres-setup # Or use menu option 3: Database Setup ``` 这将按需安装 PostgreSQL,创建数据库/用户/表,并将连接设置写入 `.env`。 **Docker:** ```bash docker compose --profile history up -d ``` 设置以下环境变量(在 `.env` 中): ```bash INTERCEPT_ADSB_HISTORY_ENABLED=true INTERCEPT_ADSB_DB_HOST=adsb_db INTERCEPT_ADSB_DB_PORT=5432 INTERCEPT_ADSB_DB_NAME=intercept_adsb INTERCEPT_ADSB_DB_USER=intercept INTERCEPT_ADSB_DB_PASSWORD=intercept ``` 要将 Postgres 数据存储到外部存储,请设置 `PGDATA_PATH`(默认为 `./pgdata`): ```bash PGDATA_PATH=/mnt/usbpi1/intercept/pgdata ``` 然后打开 **/adsb/history** 以查看报告仪表板。 ### 系统健康检查 验证你的安装是否完整且正常工作: ```bash ./setup.sh --health-check # Or use menu option 2 ``` 检查已安装的工具、SDR 设备、端口可用性、权限、Python venv、`.env` 配置以及 PostgreSQL 连接。 ### 打开界面 启动后,在浏览器中打开 **http://localhost:5050**。 **没有默认密码。** 首次启动时,INTERCEPT 会为 `admin` 账户生成一个密码,将其记录到日志,并写入 `instance/.initial_password`。使用该密码登录后,系统会要求你在界面解锁前设置自己的密码。 如需提前自行设置密码,请在首次启动前设置 `INTERCEPT_ADMIN_PASSWORD`。详情以及为何此方式取代了之前的 `admin`/`admin` 默认密码,请参阅[安全](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md#authentication)。 --- ## 硬件要求 | 硬件 | 用途 | 价格 | |----------|---------|-------| | **RTL-SDR** | 所有 SDR 功能所必需 | ~$25-35 | | **WiFi 适配器** | 必须支持混杂(监听)模式 | ~$20-40 | | **蓝牙适配器** | 设备扫描(通常为内置) | - | | **GPS** | 任何 Linux 支持的 GPS 单元 | ~10 | 大多数功能使用基本的 RTL-SDR 接收器(RTL2832U + R820T2)即可运行。 | :exclamation: 未使用 RTL-SDR 设备? | |----------------------------------------------- |Intercept 支持 SoapySDR 支持的任何设备。但你必须安装适用于你设备的正确模块!例如,如果你有 SDRPlay 设备,则需要安装 soapysdr-module-sdrplay。 | :exclamation: GPS 使用 | |----------------------------------------------- |实时定位需要 gpsd。当渲染任何地图时,Intercept 会自动检查你是否在后台运行 gpsd。 --- ## Discord 服务器 <p align="center"> <a href="https://discord.gg/EyeksEJmWE">加入我们的 Discord</a> </p> --- ## 文档 - [使用指南](https://github.com/smittix/intercept/blob/main/docs/USAGE.md) - 每种模式的详细说明 - [硬件指南](https://github.com/smittix/intercept/blob/main/docs/HARDWARE.md) - SDR 硬件、手动安装和高级设置 - [故障排除](https://github.com/smittix/intercept/blob/main/docs/TROUBLESHOOTING.md) - 常见问题与解决方案 - [分布式代理](https://github.com/smittix/intercept/blob/main/docs/DISTRIBUTED_AGENTS.md) - 远程传感器节点部署 - [Webhooks](https://github.com/smittix/intercept/blob/main/docs/WEBHOOKS.md) - 告警规则与 webhook 集成 - [安全](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md) - 网络安全与最佳实践 --- ## 免责声明 本项目使用 AI 作为编码伙伴开发,将人类指导与 AI 辅助实现相结合。目标:通过为常见 SDR 工具提供简洁、统一的界面,让软件定义无线电更易于使用。 **本软件仅用于教育和授权测试目的。** - 仅在获得适当授权的情况下使用 - 未经同意拦截通信可能违法 - 你有责任遵守适用法律 --- ## 许可证 Apache 2.0 许可证 - 参见 [LICENSE](https://github.com/smittix/intercept/blob/main/LICENSE) ## 作者 由 **smittix** 创建 - [GitHub](https://github.com/smittix) ## 致谢 [rtl-sdr](https://osmocom.org/projects/rtl-sdr/wiki) | [multimon-ng](https://github.com/EliasOenal/multimon-ng) | [rtl_433](https://github.com/merbanan/rtl_433) | [dump1090](https://github.com/flightaware/dump1090) | [AIS-catcher](https://github.com/jvde-github/AIS-catcher) | [acarsdec](https://github.com/TLeconte/acarsdec) | [direwolf](https://github.com/wb2osz/direwolf) | [rtlamr](https://github.com/bemasher/rtlamr) | [dumpvdl2](https://github.com/szpajder/dumpvdl2) | [aircrack-ng](https://www.aircrack-ng.org/) | [Leaflet.js](https://leafletjs.com/) | [SatDump](https://github.com/SatDump/SatDump) | [Celestrak](https://celestrak.org/) | [Priyom.org](https://priyom.org/)