啥是飞常准
- 飞常准是家公司(废话...)
- 他们做飞机相关的东西, 航班动态,各种预测,轨迹记录,订机票酒店,都干
- 坐过飞机的,通常见过它, 分旅客版和业内版, 看名字就知道区别了吧
旅客版, 面向普通消费者, 通常叫做"飞友", 对应飞常准的英文名 variflight(原本叫feeyo)
业内版,面向专业用户,通常是机场/飞机相关的单位,功能更专业
官网地址: http://www.variflight.com/
啥是ADSB
广播式自动相关监视(英语:Automatic dependent surveillance – broadcast,缩写ADS–B)是一种飞机监视技术,飞机通过卫星导航系统确定其位置,并进行定期广播,使其可被追踪。空中交通管制地面站可以接收这些信息并作为二次雷达的一个替代品,从而不需要从地面发送问询信号。其他飞机也可接收这些信息以提供姿态感知和进行自主规避。
ADS–B是一种“自动”系统,它不需要飞行员或其他外部信息输入,而是依赖飞机导航系统的数据。
注意,ADS-B是自动的,周期性的,非加密的,频率和格式公开的无线电报文. 这意味着, 只有合适的设备,你或其他任何人,都能接收并解码其中的内容.
啥是飞常准ADSB
先看硬件
飞常准官方, 提供一个硬件设备,叫飞常准adsb, 这个样子的:
图片来源是这里: https://sudonull.com/post/10875-VariFlight-ADS-B-Flightradar-in-Chinese
用中文来说, 这是一个 树莓派 + RTL2832U(软件定义无线电)+天线
- 树莓派, 用于运行dump10090和上传数据的脚本
- RTL2832U, 本来是做电视棒的, 后来变成一款被广泛使用的廉价但效果不错的SDR(软件定义无线电),用于解调指定频率下的无线电信号
- 天线, 安装在室外或楼顶, 越高越能收到距离遥远的飞机, 靠近机场安装能收到更多地面飞机的数据
然后是软件
- 操作系统, 树莓派官方系统是Linux, 飞常准adsb也是在官方系统上定制的
- 解码软件, dump1090, 从RTL2832U读取原始的无线电信号, 然后解码出adsb数据. 重点 非linux系统也有移植
- 上传脚本, 用于从dump1090读取adsb数据,上报到飞常准的服务器
透过现象看本质
一句话概括: 跑dump1090,把RTL2832U的数据解码后,上传到飞常准服务器
树莓派和操作系统
- 飞常准adsb的硬件是树莓派
- 已知树莓派跑的是linux, 飞常准稍微定制了一下(其实就改了root密码)
- linux能跑在很多硬件
- dump1090在linux和windows都能跑
所以, 只要有一个硬件能跑linux或windows就满足条件了,所以下面的组合都可以
- 树莓派+Linux
- 香橙派+Linux
- 路由器+Linux(openwrt定制)
- PC+Linux
- PC+windows
dump1090
神器, 但原作者已经停更, 国内外的adsb服务商有继承, 但核心一直没变过, 都能通用
- 原本dump1090, github上可以找到, 依赖rtl-sdr开发包
- piaware分支, pa分支, 国外adsb服务商自行维护的版本
- apt官方包, 通过
apt install dump1090-mutability
就能安装,后面会详细描述 - windows版dump1090, 你没看错, windows也有的!! 百度/谷歌都能找到
上传脚本
工作流程, 读取dump1090的30003端口, gzip压缩后, 通过http api发送到服务器, 来源:
- 官方脚本安装包 https://flightadsb.variflight.com/
- golang版 https://github.com/dextercai/feeyo-adsb-golang
- wendal修改版feeyo安装包 http://nutzam.com/feeyo.tgz 解压到/root,执行setup.sh即可.
RTL2832U
来源多样
- 官方adsb设备有一块定制的板子
-
淘宝/闲鱼买一个, 但注意不要买错, 某些新款不支持1090Mhz,无法使用.
通常来说, 就上图里面的装备, 就含了RT2832U+天线了, 能做到一般的接收效果, 最求极致体验的话, 需要玻璃钢天线,专门的滤波器,防雷器,傲视群雄的高度(追求总数量和距离)或近在咫尺的大型机场(1km以内,追求地面飞机数),这里暂不讨论了
到底往飞常准服务器上传了什么呢?
dump1090读RT2832U硬件, 解码出adsb数据, 监听8080/30001/30002/30003端口. 上传脚本从30003读取数据, 打包发送到服务器
首先, 从dump1090的30003看看
30003端口, 输出的是BaseStation格式的数据, 格式说明可以看看这个http://woodair.net/SBS/Article/Barebones42_Socket_Data.htm
下面是实际输出, 一行一条
MSG,3,1,1,780D41,1,2020/04/09,17:19:47.258,2020/04/09,17:19:47.275,,14175,,,23.54314,113.39488,,,0,,0,0
MSG,8,1,1,780E65,1,2020/04/09,17:19:47.345,2020/04/09,17:19:47.382,,,,,,,,,,,,0
MSG,7,1,1,7812F1,1,2020/04/09,17:19:47.347,2020/04/09,17:19:47.383,,29100,,,,,,,,,,
MSG,3,1,1,7812F1,1,2020/04/09,17:19:47.347,2020/04/09,17:19:47.384,,29100,,,24.23305,113.98082,,,0,,0,0
MSG,4,1,1,7812F1,1,2020/04/09,17:19:47.357,2020/04/09,17:19:47.385,,,524,80,,,640,,,,,0
MSG,5,1,1,78127C,1,2020/04/09,17:19:47.366,2020/04/09,17:19:47.386,,23300,,,,,,,0,,0,
MSG,6,1,1,78127C,1,2020/04/09,17:19:47.373,2020/04/09,17:19:47.386,,,,,,,2016,3101,0,0,0,
数据的打包过程
完整的过程是这样的:
- 读取UUID值, 每个盒子都有自己的唯一id, 这个值在盒子第一次启动时生成, 存入变量mid
- 从30003端口读取8192字节的数据, 先用zlib压缩,然后base64编码, 存入变量source_data
- 合成表单数据
{'from':mid,'code':source_data}
- 发送到config.ini里面的url(具体值就不贴了,给飞常准留一条底裤_)
未完待续
TODO
其他资料,备用
香橙派pi zero安装飞常准(树莓派通用)
#
开头的行是注释, 不需要输出
强烈建议先修改镜像地址, 请查阅 https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/
# 更新库数据库
apt update
# 安装dump1090-mutability
apt install dump1090-mutability wget vim socat
# 启用lighttpd(可选,非必须,会占用80端口)
apt-get install lighttpd
lighty-enable-mod dump1090
# 安装udev规则
cd /etc/udev/rules.d/
wget http://nutzam.com/rtl-sdr.rules
# 修改dump1090默认规则
# 使用你熟悉的编辑器,例如vim, nano, 修改 /etc/default/dump1090-mutability
vim /etc/default/dump1090-mutability
# 找到 _USER="dump1090" 改成 _USER="root"
# 找到 "127.0.0.1" 改成 "0.0.0.0"
# 保存好, 重启
reboot
# 启动完成后, 检查dump1090是否启动好, 应该监听了30003端口
netstat -anp | grep dump1090
# 安装飞常准脚本,必须root用户
cd /root/
wget https://nutzam.com/feeyo.tgz
tar xf feeyo.tgz
bash /root/setup.sh
# 期间提示选择编辑器, 选nano后, 保存退出即可(ctrl+O, ctrl+X)
# 如果一切顺利, 会看到UUID的值, 记下来, 就可以到飞常准的页面登记设备了
#如果设备使用的是wifi连接, 修改 /root/get_message/get_ip.py
# 把里面的eth0 改成 wlan0
# 重启后, 看 /root/get_message/UUID 文件, 获取UUID值
# 如果安装了Lighttpd, 假设树莓派ip为192.168.1.100,那么访问 http://192.168.1.100/dump1090/gmap.html
关于飞常准官方镜像的密码(2020-03-01之前的镜像)
具体密码就不写了, 给点提示: 长度8位, 均为数字或字母.
推荐用hashcat, 搭配rockyou.txt字典,. (该软件为群里大佬推荐, 非常给力, GPU下几分钟出结果)
VirtualRadar 安装并显示轮廓
哔哩哔哩地址: https://www.bilibili.com/video/BV1tz411B7xv/
安装 RPI Monitor
apt update
apt install librrds-perl libhttp-daemon-perl libjson-perl libipc-sharelite-perl libfile-which-perl libsnmp-extension-passpersist-perl
apt-get install dirmngr aptitude
wget https://nutzam.com/rpimonitor_2.12-r0_all.deb
dpkg -i rpimonitor_2.12-r0_all.deb
/etc/init.d/rpimonitor update
然后访问网址 http://树莓派ip:8888