iNTERCEPT,一个免费且开源平台,将顶尖信号情报工具整合到一个易于访问的界面中。
支持这个开源项目的开发者
信号情报平台
面向软件定义无线电工具的 Web 界面。
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 表示核心 + 气象)。
./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
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:
# .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 历史记录功能会将飞机消息持久化到 PostgreSQL,以便进行长期分析。
自动设置(本地安装):
./setup.sh --postgres-setup
# Or use menu option 3: Database Setup
这将按需安装 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
# Or use menu option 2
检查已安装的工具、SDR 设备、端口可用性、权限、Python venv、.env 配置以及 PostgreSQL 连接。
启动后,在浏览器中打开 **http://localhost:5050**。
没有默认密码。 首次启动时,INTERCEPT 会为 admin 账户生成一个密码,将其记录到日志,并写入 instance/.initial_password。使用该密码登录后,系统会要求你在界面解锁前设置自己的密码。
如需提前自行设置密码,请在首次启动前设置 INTERCEPT_ADMIN_PASSWORD。详情以及为何此方式取代了之前的 admin/admin 默认密码,请参阅安全。
| 硬件 | 用途 | 价格 |
|---|---|---|
| RTL-SDR | 所有 SDR 功能所必需 | ~$25-35 |
| WiFi 适配器 | 必须支持混杂(监听)模式 | ~$20-40 |
| 蓝牙适配器 | 设备扫描(通常为内置) | - |
| GPS | 任何 Linux 支持的 GPS 单元 | ~10 |
大多数功能使用基本的 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