OpenWebRX是一个国外开源项目,基于Python语言编写,配合SDR设备使用,支持后台解码各种数字信号,将SDR接收软件Web化,通过网络实现多用户远程访问,功能非常强大。
目前OpenWebRX版本已经到1.2了,但不知什么原因项目停更了,而后又衍生出一个OpenWebRX+分支,博主近日对这个分支版本做了测试,发现改进和优化非常多,加入了很多新的功能,总结如下:
- 加入AIS, SSTV, FAX, FLEX, HFDL, VDL2, ISM, SAM, RTTY, CW, DTMF, EEA, EIA, CCIR, ZVEY, SELCALL等新的解码器,其中SSTV可以实现后台解码并保存图片。

- 加入NR噪声过滤功能,耳朵舒服多了。

- 加入录音功能,无论是台友相互测试信号,还是干扰举报取证,都有很大帮助。

- 针对触屏设备做了优化,手机平板操作起来更方便,还支持SSL证书和会话超时,远程访问更安全。

以上几点功能足以让博主狂喜一番,目前已测试树莓派、Dcoker两种镜像,一切顺利,本文就以Docker镜像方式为例带大家部署OpenWebRX+:
准备
建议x86 64位主机或群晖。
ARM的话S905刚好,推荐S912,OpenWebRX后台解码很消耗CPU。
系统Linux,装好Docker。
开工
插好SDR并在宿主机添加设备黑名单,防止因内核占用导致容器无法调用SDR,完成后重启。
cat > /etc/modprobe.d/owrx-blacklist.conf << _EOF_
blacklist dvb_usb_rtl28xxu
blacklist sdr_msi3101
blacklist msi001
blacklist msi2500
blacklist hackrf
_EOF_
docker pull slechev/openwebrxplus-softmbe
宿主机创建存储目录:
mkdir /root/openwebrx/set
mkdir /root/openwebrx/etc
开容器:
docker run -d --name openwebrx \
--device /dev/bus/usb \
-p 8073:8073 \
-v /root/openwebrx/set:/var/lib/openwebrx \
-v root/openwebrx/etc:/etc/openwebrx \
--restart unless-stopped \
slechev/openwebrxplus-softmbe
进入容器并创建admin管理账号:
docker exec -it openwebrx python3 openwebrx.py admin adduser admin
博主使用的是群晖图形化来配置Docker:
(群晖Docker界面没有映射USB设备的选项,因此需要在命令行下创建容器,而博主使用rtl_tcp方式调用局域网其它主机上的SDR,绕开了本机USB映射,此方式在下文中讲解。)


账号创建完成后就可以浏览器访问“IP:8073”打开页面了(如需外网访问请自行申请公网IP或者搭建内网穿透,并使用强壮密码,请勿随意分享自己的站点,更不要触及敏感波段,切记!!!),浏览守听无需登录,需要对站点进行自定义时点击右上角的“Settings”使用刚才创建的账号登录修改。
OK,就这么简单。
避坑指南
OpenWebRX+可能会出现FT8无法解码的情况,报错日志如下:

解决办法(x86平台):
进入容器:
docker exec -it openwebrx /bin/sh
执行如下命令:
apt update
apt install binutils
strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
经验分享
- 在上文开容器时使用了“–device /dev/bus/usb”将宿主机的SDR设备映射进容器中,其实我们不必局限于宿主机,博主早在之前的博文《集中管理的的SDR们》中提到使用RTL_TCP和RSP_TCP服务将USB有线连接方式转换为网络套接字,局域网内的OpenWebRX通过IP+端口的方式调用服务器上的SDR,以此解决布线等诸多问题。
博主使用了廉价的玩客云小主机,刷入armbian Linux做SDR TCP Server,群晖Docker跑 OpenWebRX使用如下配置通过局域网调用小主机上的SDR:

文章来自https://bg9ega.cn/778.html