支持此开源项目的开发者
信号情报平台
一个基于 Web 的软件定义无线电工具接口。
git clone https://github.com/smittix/intercept.git
cd intercept
./setup.sh # 交互式菜单(首次运行启动设置向导)
sudo ./start.sh
首次运行时,setup.sh 会启动一个引导式向导,检测您的操作系统,让您选择安装配置文件,设置 Python 环境,并可选择配置环境变量和 PostgreSQL。
后续运行时,它会打开一个交互式菜单:
INTERCEPT 设置菜单
════════════════════════════════════════
1) 安装 / 添加模块
2) 系统健康检查
3) 数据库设置(ADS-B 历史记录)
4) 更新工具
5) 环境配置器
6) 卸载 / 清理
7) 查看状态
0) 退出
生产环境 vs 开发服务器:
start.sh自动检测 gunicorn + gevent,并运行一个使用协作式 greenlet 的生产服务器——可处理多个 SSE/WebSocket 客户端而不阻塞。如果未安装 gunicorn,则回退到 Flask 开发服务器。对于快速本地开发,您仍然可以直接使用sudo -E venv/bin/python intercept.py。
在向导或通过菜单选项 1 选择要安装的内容:
多个配置文件可以组合(例如输入 1 3 表示核心 + 天气)。
./setup.sh --non-interactive # 无人值守完整安装(与旧行为相同)
./setup.sh --profile=core,weather # 安装特定配置文件
./setup.sh --health-check # 检查系统健康状况并退出
./setup.sh --postgres-setup # 运行 PostgreSQL 设置并退出
./setup.sh --menu # 强制进入交互式菜单
git clone https://github.com/smittix/intercept.git
cd intercept
docker compose --profile basic up -d --build
注意: Docker 需要特权模式才能访问 USB SDR。SDR 设备通过
/dev/bus/usb传递。
对于多架构构建(amd64 + arm64 用于树莓派),请参见 build-multiarch.sh——它一步处理交叉编译和注册表推送。
使用环境配置器(菜单选项 5)以交互方式设置任何 INTERCEPT_* 变量。设置项保存到 .env 文件中,start.sh 在启动时自动加载该文件。
您也可以手动创建或编辑 .env:
# .env(由 start.sh 自动加载)
INTERCEPT_PORT=5050
INTERCEPT_ADSB_AUTO_START=true
INTERCEPT_DEFAULT_LAT=51.5074
INTERCEPT_DEFAULT_LON=-0.1278
ADS-B 历史记录功能将飞机消息持久化到 PostgreSQL 中,用于长期分析。
自动设置(本地安装):
./setup.sh --postgres-setup
# 或使用菜单选项 3:数据库设置
如果需要,此操作将安装 PostgreSQL,创建数据库/用户/表,并将连接设置写入 .env。
Docker:
docker compose --profile history up -d
设置以下环境变量(在 .env 中):
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):
PGDATA_PATH=/mnt/usbpi1/intercept/pgdata
然后打开 /adsb/history 查看报告仪表板。
验证您的安装是否完整且正常工作:
./setup.sh --health-check
# 或使用菜单选项 2
检查已安装的工具、SDR 设备、端口可用性、权限、Python 虚拟环境、.env 配置和 PostgreSQL 连接。
启动后,在浏览器中打开 **http://localhost:5050**。
默认凭据:admin / admin——在将应用程序暴露到网络之前,请在 config.py 中更改这些凭据(ADMIN_USERNAME / ADMIN_PASSWORD)。
大多数功能只需一个基础的 RTL-SDR 加密狗(RTL2832U + R820T2)即可工作。
| ❗ 未使用 RTL-SDR 设备? |
|---|
| Intercept 支持 SoapySDR 支持的任何设备。但您必须安装正确的设备模块!例如,如果您有 SDRPlay 设备,则需要安装 soapysdr-module-sdrplay。 |
| ❗ GPS 使用 |
|---|
| 实时定位需要 gpsd。Intercept 会在渲染任何地图时自动检查后台是否正在运行 gpsd。 |
本项目使用 AI 作为编码伙伴开发,结合了人类指导和 AI 辅助实现。目标:通过为常用 SDR 工具提供一个简洁统一的界面,使软件定义无线电更易访问。
本软件仅用于教育和授权测试目的。
Apache 2.0 许可证 - 请参阅 LICENSE
由 smittix 创建 - GitHub
rtl-sdr | multimon-ng | rtl_433 | dump1090 | AIS-catcher | acarsdec | direwolf | rtlamr | dumpvdl2 | aircrack-ng | Leaflet.js | SatDump | Celestrak | Priyom.org |
| # | 配置文件 | 工具 |
|---|
| 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 | 自定义 | 按工具勾选列表 |
| 硬件 | 用途 | 价格 |
|---|
| RTL-SDR | 所有 SDR 功能必需 | ~$25-35 |
| WiFi 适配器 | 必须支持混杂(监控)模式 | ~$20-40 |
| 蓝牙适配器 | 设备扫描(通常内置) | - |
| GPS | 任何 Linux 支持的 GPS 单元 | ~10 |