ADS-B Receiver 系统逐步安装部署指南
ADS-B Receiver 逐步安装部署技术方案
目录
- 方案概述
- 环境准备
- 第一阶段:基础环境搭建
- 第二阶段:解码器安装
- 第三阶段:数据分发配置
- 第四阶段:Web Portal部署
- 第五阶段:扩展组件安装
- 第六阶段:系统验证
- 第七阶段:配置优化
- 第八阶段:监控维护
- 故障排查指南
- 附录
1. 方案概述
1.1 方案特点
本方案提供逐步式、可执行的安装部署指南,特点如下:
✅步骤清晰: 每个步骤都有明确的输入和输出
✅检查点: 关键步骤后提供验证方法
✅可回退: 支持在任何阶段停止或重新开始
✅场景化: 支持不同的部署场景选择
✅实战导向: 所有命令都经过验证可用
1.2 部署路线图
环境准备 ↓ ┌───────────────────────────────────────────────┐ │ 第一阶段: 基础环境搭建 │ │ - 系统更新 │ │ - 依赖安装 │ │ - 用户配置 │ └───────────────────────────────────────────────┘ ↓ ┌───────────────────────────────────────────────┐ │ 第二阶段: 解码器安装 │ │ - ADS-B 解码器 (dump1090/readsb) │ │ - UAT 解码器 (dump978) │ │ - ACARS/VDLM2 解码器 (可选) │ └───────────────────────────────────────────────┘ ↓ ┌───────────────────────────────────────────────┐ │ 第三阶段: 数据分发配置 │ │ - FlightAware PiAware │ │ - ADS-B Exchange │ │ - Flightradar24 │ │ - 其他 Feeders │ └───────────────────────────────────────────────┘ ↓ ┌───────────────────────────────────────────────┐ │ 第四阶段: Web Portal 部署 │ │ - Lighttpd 配置 │ │ - Portal 文件部署 │ │ - 数据库配置 │ │ - 后台服务配置 │ └───────────────────────────────────────────────┘ ↓ ┌───────────────────────────────────────────────┐ │ 第五阶段: 扩展组件 (可选) │ │ - Beast Splitter │ │ - tar1090 │ │ - Graphs1090 │ │ - DuckDNS │ └───────────────────────────────────────────────┘ ↓ ┌───────────────────────────────────────────────┐ │ 第六阶段: 系统验证 │ │ - 服务状态检查 │ │ - 数据流验证 │ │ - Web 界面访问 │ └───────────────────────────────────────────────┘ ↓ 部署完成1.3 时间预估
| 阶段 | 耗时 | 说明 |
|---|---|---|
| 环境准备 | 15-30分钟 | 取决于网络速度 |
| 解码器安装 | 20-40分钟 | 编译时间 |
| Feeder 配置 | 10-30分钟 | 数量影响 |
| Portal 部署 | 15-25分钟 | 数据库配置 |
| 扩展组件 | 10-20分钟 | 可选组件 |
| 系统验证 | 5-10分钟 | 测试验证 |
| 总计 | 75-125分钟 | 约1-2小时 |
2. 环境准备
2.1 硬件检查清单
2.1.1 必需硬件
最低配置检查:
# 1. 检查 CPU 架构cpu_arch=$(uname-m)echo"CPU 架构:$cpu_arch"# 期望: armv7l, aarch64, x86_64# 2. 检查可用内存total_mem=$(free-m|grepMem|awk'{print $2}')echo"总内存:${total_mem}MB"# 最低要求: 1GB (Lite), 2GB (Advanced)# 3. 检查可用磁盘空间disk_space=$(df-BG/|awk'NR==2 {print $4}')echo"可用磁盘:${disk_space}GB"# 最低要求: 16GB# 4. 检查网络接口ipaddr show|grep"state UP"# 至少需要一个网络接口推荐配置检查:
# 检查 CPU 性能 (需要支持多线程)nproc=$(nproc)echo"CPU 核心数:$nproc"# 推荐: 4核心以上# 检查内存性能available_mem=$(free-m|grepMem|awk'{print $7}')echo"可用内存:${available_mem}MB"# 推荐: 4GB 以上# 检查磁盘 I/O (如使用 SSD)disk_type=$(lsblk-d-orota,name|grep"$(df/|awk'NR==2 {print $1}'|sed's|/dev/||')")echo"磁盘类型:$disk_type"# 推荐: SSD (rota=0)2.1.2 SDR 设备检查
# 1. 检查 USB 设备lsusb# 查找 RTL-SDR 设备 (Realtek, ID 0bda:2832)# 2. 检查设备权限ls-l/dev/bus/usb/# 确认当前用户有访问权限# 3. 检查内核模块lsmod|grepdvb# 如存在 dvb_usb_rtl28xxu,需要黑名单# 4. 测试设备 (如果已安装 rtl_test)rtl_test-t常见 RTL-SDR 设备:
- Generic RTL2832U
- Nooelec NESDR Mini
- FlightAware Pro Stick
- RTL-SDR Blog V3
2.2 软件环境准备
2.2.1 操作系统更新
# 更新软件包列表sudoapt-getupdate# 升级已安装的软件包sudoapt-getupgrade-y# 发行版升级 (可选,推荐)sudoapt-getdist-upgrade-y# 清理不需要的包sudoapt-getautoremove-ysudoapt-getautoclean-y2.2.2 安装基础依赖
# 安装必需的软件包sudoapt-getinstall-y\git\bc\lsb-base\lsb-release\whiptail\wget\curl\unzip\build-essential\cmake\pkg-config# 验证安装git--versionpython3--versionphp--version2.2.3 配置时区和时间
# 设置时区 (根据地理位置)sudotimedatectl set-timezone Asia/Shanghai# 或: sudo dpkg-reconfigure tzdata# 同步系统时间sudoapt-getinstall-yntpsudosystemctlenablentpsudosystemctl start ntp# 验证时间datetimedatectl2.3 网络配置
2.3.1 配置静态 IP (推荐)
# 编辑网络配置sudonano/etc/network/interfaces# 添加静态 IP 配置auto eth0 iface eth0 inet static address192.168.1.100 netmask255.255.255.0 gateway192.168.1.1 dns-nameservers8.8.8.88.8.4.4# 重启网络sudosystemctl restart networking2.3.2 配置防火墙
# 安装 UFW (如未安装)sudoapt-getinstall-yufw# 基本策略sudoufw default deny incomingsudoufw default allow outgoing# 允许必要端口sudoufw allow22/tcp# SSHsudoufw allow80/tcp# HTTPsudoufw allow443/tcp# HTTPS (稍后配置)sudoufw allow30005/tcp# Beast 数据端口# 启用防火墙sudoufwenable# 查看状态sudoufw status2.4 用户和权限配置
# 创建专用用户 (可选,但推荐)sudoadduser--system--groupwww-data adsb-usersudousermod-aGwww-data,adm,dialout,video adsb-user# 配置 sudo 权限sudovisudo# 添加:# adsb-user ALL=(ALL:ALL) NOPASSWD: /usr/bin/systemctl restart dump1090-fa# adsb-user ALL=(ALL:ALL) NOPASSWD: /usr/bin/systemctl restart piaware3. 第一阶段: 基础环境搭建
步骤 1.1: 下载安装脚本
# 克隆项目仓库cd~gitclone https://github.com/jprochazka/adsb-receiver.gitcdadsb-receiver# 验证文件ls-l# 应该看到: install.sh, bash/, build/, README.md 等# 赋予执行权限chmod+x install.sh验证检查点:
- ✅ 文件下载完整
- ✅ 版本正确 (查看 CHANGELOG.md)
- ✅ 有执行权限
步骤 1.2: 执行安装脚本
# 标准安装./install.sh# 或使用参数./install.sh--branch=master --no-logging# 显示帮助./install.sh--help安装脚本会执行:
- ✅ 检测操作系统和版本
- ✅ 检测硬件架构
- ✅ 安装依赖包 (bc, git, whiptail)
- ✅ 配置环境变量
- ✅ 创建日志目录
预期输出:
The ADS-B Receiver Installer v2.8.9 Starting ADS-B Receiver Installer package dependency check ------------------------------------------------------------------------------ Updating package lists for all enabled repositories and PPAs Downloading the latest package lists... Ensuring that all required packages are installed [OK] bc [OK] git [OK] lsb-base [OK] lsb-release [OK] whiptail ------------------------------------------------------------------------------ ADS-B Receiver Installer package dependency check complete Press enter to continue...验证检查点:
- ✅ 依赖包全部安装成功
- ✅ 日志目录已创建 (
logs/) - ✅ 系统信息正确检测
步骤 1.3: 欢迎界面和仓库更新
安装脚本会自动执行bash/init.sh:
执行流程:
# 1. 显示欢迎界面┌────────────────────────────────────────────────────────────────┐ │ The ADS-B Receiver Project │ ├────────────────────────────────────────────────────────────────┤ │ More information on this project can be found at: │ │ https://www.adsbreceiver.net │ │ │ │ Do you wish tocontinuesetup? │ │ │ │<Yes><No>│ └────────────────────────────────────────────────────────────────┘# 2. 选择是否更新系统 (推荐选择 Yes)┌────────────────────────────────────────────────────────────────┐ │ Operating System Updates │ ├────────────────────────────────────────────────────────────────┤ │ It is recommended that you update your system before │ │ building. This script candothisforyou. │ │ │ │ Would you like to update your operating system │ │ now? │ │ │ │<Yes><No>│ └────────────────────────────────────────────────────────────────┘如果选择更新系统:
# 系统将执行:sudoapt-get-ydist-upgrade# 预期时间: 10-30分钟 (取决于更新数量)验证检查点:
- ✅ 系统更新成功
- ✅ 无错误信息
- ✅ 所有包都已更新
步骤 1.4: 检查 Git 更新
自动执行的更新:
# 1. 检查本地修改gitstatus--porcelain--untracked-files=no# 2. 如有修改,提示是否 Stash# The ADS-B Receiver Project├────────────────────────────────────────────────────────────────┐ │ Stash Changes To Branch master │ ├────────────────────────────────────────────────────────────────┤ │ There appears to be changes to the current │ │ branch. These changes will need to be stashed. │ │ Would you like to stash these changes now? │ │ │ │<Yes><No>│ └────────────────────────────────────────────────────────────────┘# 3. 切换/拉取指定分支gitcheckout mastergitfetch origingitreset--hardorigin/master验证检查点:
- ✅ 代码已更新到最新版本
- ✅ 分支正确切换
- ✅ 本地修改已保存 (如有)
4. 第二阶段: 解码器安装
步骤 2.1: ADS-B 解码器选择
执行bash/main.sh后,会看到解码器选择菜单:
┌────────────────────────────────────────────────────────────────┐ │ ADS-B Decoder Selection │ ├────────────────────────────────────────────────────────────────┤ │ The following ADS-B decoders are available: │ │ │ │ 1. None │ │ 2. dump1090-fa │ │ FlightAware's version of the dump1090 │ │ 3. readsb │ │ Wiedehopf's detached fork of readsb │ │ │ │ <Ok> <Cancel> │ └────────────────────────────────────────────────────────────────┘选择建议:
- 新手: dump1090-fa (文档完善,社区支持好)
- 高级用户: readsb (更多功能,性能优化)
- 测试: 安装两个,通过 Beast Splitter 切换
步骤 2.2: 安装 dump1090-fa
2.2.1 确认安装
┌────────────────────────────────────────────────────────────────┐ │ FlightAware Dump1090 Decoder Setup │ ├────────────────────────────────────────────────────────────────┤ │ FlightAware Dump1090 is an ADS-B, Mode S, │ │ and Mode 3A/3C demodulator and decoder... │ │ │ │ Website: https://www.flightaware.com/ │ │ GitHub: https://github.com/flightaware/dump1090│ │ │ │ Would you like to begin the setup process? │ │ │ │ <Yes> <No> │ └────────────────────────────────────────────────────────────────┘选择Yes继续。
2.2.2 设备分配
┌────────────────────────────────────────────────────────────────┐ │ Device Assignment │ ├────────────────────────────────────────────────────────────────┤ │ Please select the SDR device to use for: │ │ │ │ [ ] dump1090-fa (ADS-B) │ │ │ │ <Ok> <Cancel> │ └────────────────────────────────────────────────────────────────┘可用设备列表(自动检测):
/dev/bus/usb/001/002(RTL-SDR #1)/dev/bus/usb/001/003(RTL-SDR #2)/dev/bus/usb/002/001(其他 SDR)
2.2.3 依赖安装
脚本自动执行以下安装:
# 自动安装的包sudoapt-getinstall-y\build-essential\debhelper\devscripts\fakeroot\libbladerf-dev\libhackrf-dev\liblimesuite-dev\libncurses-dev\librtlsdr-dev\libsoapysdr-dev\lighttpd\pkg-config预期输出
