
intercept v2.33.0
iNTERCEPT, 최고의 신호 정보 도구를 단일하고 접근 가능한 인터페이스로 통합하는 무료 오픈 소스 플랫폼.
이 오픈소스 프로젝트의 개발자를 후원해 주세요
신호 정보 플랫폼
소프트웨어 정의 라디오 도구를 위한 웹 기반 인터페이스입니다.
기능
- 페이저 디코딩 - rtl_fm + multimon-ng를 통한 POCSAG/FLEX
- 433MHz 센서 - rtl_433을 통한 기상 관측소, TPMS, IoT 기기
- Sub-GHz 분석기 - HackRF를 통한 300-928 MHz ISM 대역의 RF 캡처 및 프로토콜 디코딩
- 항공기 추적 - dump1090을 통한 ADS-B, 실시간 지도 및 레이더 제공
- 선박 추적 - VHF DSC 조난 모니터링을 포함한 AIS 선박 추적
- ACARS 메시징 - acarsdec을 통한 항공기 데이터링크 메시지
- VDL2 - dumpvdl2를 통한 VHF 데이터링크 모드 2 항공기 데이터링크 디코딩
- 청취소 - 실시간 오디오 모니터링을 갖춘 광대역 주파수 스캐너
- 기상 위성 - 자동 스케줄러를 갖춘 SatDump를 통한 NOAA APT 및 Meteor LRPT 이미지 디코딩
- WebSDR - KiwiSDR 네트워크를 통한 원격 HF/단파 청취
- ISS SSTV - 국제우주정거장으로부터의 느린 주사 TV 이미지 수신
- HF SSTV - 단파 주파수(80m-10m, VHF, UHF)에서의 지상 SSTV
- APRS - direwolf를 통한 아마추어 패킷 라디오 위치 보고 및 텔레메트리
- 위성 추적 - 극좌표 플롯 및 지상 궤적 지도를 포함한 통과 예측
- 유틸리티 미터 - rtlamr를 통한 전기, 가스, 수도 계량기 판독
- ADS-B 기록 - 보고 대시보드를 갖춘 영구 항공기 기록 (Postgres 선택 사항)
- WiFi 스캐닝 - aircrack-ng를 통한 모니터 모드 정찰
- 블루투스 스캐닝 - 기기 탐색 및 트래커 탐지 (Ubertooth 지원 포함)
- BT 위치 추적 - GPS 태그 신호 흔적 매핑 및 근접 경보를 갖춘 SAR 블루투스 기기 위치 추적
- 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
빠른 시작
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을 구성합니다.
이후 실행에서는 대화형 메뉴가 열립니다:
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
프로덕션 vs 개발 서버:
start.sh는 gunicorn + gevent를 자동 감지하여 협력적 그린릿(cooperative 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 | RF 보안 | aircrack-ng, HackRF, BlueZ, hcxtools, Ubertooth, SoapySDR |
| 5 | 전체 SIGINT | 위의 모든 항목 |
| 6 | 사용자 지정 | 도구별 체크리스트 |
여러 프로필을 조합할 수 있습니다 (예: 핵심 + 기상을 위해 1 3 입력).
CLI 플래그
./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
git clone https://github.com/smittix/intercept.git
cd intercept
docker compose --profile basic up -d --build
참고: Docker는 USB SDR 액세스를 위해 권한 모드(privileged mode)가 필요합니다. SDR 장치는
/dev/bus/usb를 통해 전달됩니다.
데이터: 설정, 사용자, 경보 규칙, 감시 목록 및 디코딩된 메시지는 호스트의
./instance에 저장되므로--build후에도 유지됩니다. 해당 마운트가 없는 compose 파일에서 업그레이드하는 경우, 재빌드 전에 기존 데이터를 복사하세요:docker cp intercept:/app/instance ./instance.
다중 아키텍처 빌드(라즈베리 파이용 amd64 + arm64)는 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 기록 (선택 사항)
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 |
| Bluetooth 어댑터 | 장치 스캔 (보통 내장) | - |
| GPS | Linux에서 지원되는 모든 GPS 장치 | ~10 |
대부분의 기능은 기본 RTL-SDR 동글(RTL2832U + R820T2)로 작동합니다.
| ❗ RTL-SDR 장치를 사용하지 않으십니까? |
|---|
| Intercept는 SoapySDR이 지원하는 모든 장치를 지원합니다. 단, 사용하는 장치에 맞는 올바른 모듈이 설치되어 있어야 합니다! 예를 들어 SDRPlay 장치가 있다면 soapysdr-module-sdrplay를 설치해야 합니다. |
| ❗ GPS 사용 |
|---|
| 실시간 위치 확인에는 gpsd가 필요합니다. Intercept는 지도가 렌더링될 때마다 백그라운드에서 gpsd가 실행 중인지 자동으로 확인합니다. |
