在自动驾驶(Autonomous Driving)的日常研发与测试中,“异地远程调试” 是每一个工程团队都避不开的痛点:
- 测试车常年驻扎在几百公里外的封闭测试场、异地矿区或公开道路测试点;
- 算法工程师或系统运维坐在办公室,遇到遥远车端的突发 Bug,需要第一时间连入车端抓 Log、复现轨迹或查看系统状态。
不少团队早期会选择向日葵、ToDesk 或 TeamViewer 等图形化远程桌面工具。但图形桌面传输的是实时视频流,对网络带宽和延迟要求极高(往往需要数 Mbps 的稳定上行带宽)。而在车载 4G/5G 移动信号较弱或网络抖动的场地,远程桌面极易出现严重卡顿、黑屏或频繁断连,排查体验非常痛苦。
程序员最需要的,其实是一个纯粹、极轻、安全且原生支持端口映射的 SSH 通道。WheelOS 团队针对这一诉求,推出了专门面向车端远程接入的基础设施工具——whl-dbg。它摒弃了昂贵的图像渲染开销,基于 FRP(Fast Reverse Proxy)+ SSH 隧道 架构,将远程连接的网络带宽占用降到了几 KB/s 级别的极低门槛,即使在弱网环境下也能秒连车端!
为什么 whl-dbg 是自动驾驶工程师的解药?
1. 弱网无压力:从 Mbps 级降到 KB 级
相比向日葵/ToDesk 等图形桌面动辄几兆的流量消耗,命令行(CLI)传输的是纯文本字符数据。结合 FRP 的高效反向代理,whl-dbg即使在蜂窝网络仅剩几十 KB/s 的恶劣信号下,依然能保持终端操作流畅响应。
2. 开发者原生友好:端口转发映射本地 Web GUI
工程师在车端不仅要敲 Shell 命令,常常还需要调阅 DreamView 等可视化界面。 通过whl-dbg建立的 SSH 隧道(SSH Tunneling),工程师可以直接把远程车端的 8888 端口(DreamView 服务)安全映射到本地电脑的 18888 端口。直接打开本地浏览器访问http://127.0.0.1:18888,即可顺畅调阅可视化 Web 界面!
3. 零外网暴露:极致的安全防护
车载边缘计算平台直接暴露 SSH 端口(22 端口)到公网是极其危险的。whl-dbg在架构设计上实现了双重隔离:
系统架构透视
whl-dbg属于 WheelOS 生态中的 Tools 基础设施工具集,不入侵车端底盘控制、感知、规划等核心运行时(Runtime)代码。
whl-dbg 基于 FRP 的反向代理与 SSH 隧道拓扑架构. 来源:Rectcircle Blog
整个数据交互与通信链路分为以下三个层次:
开发者本地端 (Developer PC):通过 SSH 命令与公网堡垒机建立带端口映射(-L 127.0.0.1:18888:127.0.0.1:8888)的通信通道。
公网堡垒机 (Bastion Server):运行frps服务(默认监听 7000 端口),并为每台建立连接的车辆在本地(127.0.0.1)分配唯一的 SSH 中转端点(60000 + vehicle_id)。
车载终端 (Vehicle Platform):运行frpc客户端,开机后自动向堡垒机发起加密的反向代理连接,将本地内网的 SSH(127.0.0.1:22)和 DreamView(127.0.0.1:8888)服务通过加密隧道暴露给堡垒机。
极简部署与使用指南
whl-dbg内置了自动化安装与管理脚本,支持 x86_64 和 aarch64/arm64 架构(完美适配主流车载工控机与 NVIDIA Jetson 平台),并优先使用 WheelOS 国内镜像源加速下载
Step 1: 堡垒机服务端部署 (Server)
在公网中转服务器/堡垒机上运行:
sudo bash server/install.sh# 根据提示输入认证 Token (auth.token)
管理命令:
bash server/manage.sh start # 启动服务bash server/manage.sh status # 查看运行状态bash server/manage.sh stop # 停止服务
Step 2: 车端客户端部署 (Vehicle)
在车载计算平台上运行安装脚本:
sudo bash car/install.sh# 根据提示输入:堡垒机 IP、Vehicle ID (如 101)、auth.token
设置开机自启(基于 Systemd):
bash car/manage.sh autostart onbash car/manage.sh start
Step 3: 工程师一键远程连入与调试
当测试车在远端联网上线后,工程师只需在本地终端执行一条命令:
# 假设 vehicle_id = 101,服务器 IP 为 1.2.3.4ssh -N -T \ -p 60101 \ -L 127.0.0.1:18888:127.0.0.1:8888 \ user@1.2.3.4
此时,你不仅可以在终端中实时执行cyber_monitor/ros2 topic查看节点状态、抓取日志,还可以打开本地浏览器:
👉 访问http://127.0.0.1:18888实时查看远端车上的 DreamView 可视化界面!
总结
whl-dbg采用“反向代理 + SSH 隧道”的轻量化设计,成功解决了自动驾驶远程调试中“网络要求高、连接不稳定、安全性差”三大顽疾:
如果您想深入了解 whl-dbg 或进一步优化车端调试体验,可以查看官方文档。