一句话结论
Mosquitto (MQTT) + Nginx (HTTP/HTTPS) 已经覆盖大部分物联网业务,但 ftp/tftp 是否保留,看你的业务场景,不是必须。 RK3562 只是硬件,协议是软件应用,下面分开讲清楚各自定位、取舍建议。
各协议分工(RK3562 嵌入式场景)
-
Nginx 自带 HTTP/HTTPS,负责:网页管理后台、前端页面(你之前的 Vue 平台)、静态文件、HTTP 接口、WebSocket(MQTT over WebSocket)。 ✅ 只要 Nginx 在,HTTP 协议能力就有了,不用再单独装别的 HTTP 服务。
-
Mosquitto MQTT,专门做设备实时消息、遥测、指令下发(你的 PCS 数据、告警、参数读写)。
MQTT 和 HTTP 是互补,不是替代:实时数据流走 MQTT,页面 / 文件 / 接口走 Nginx HTTP。
-
TFTP 轻量简单文件传输,无认证、明文、只适合局域网 。 典型用途:固件烧录、uboot 阶段下载镜像 (RK uboot 常用 tftp 拉内核 / 设备树)。
- 如果你需要Uboot 远程升级、批量烧板子:保留 tftp
- 如果升级全部用 HTTP(Nginx 放固件包,应用层 http 下载):可以删掉 tftp
-
FTP 文件传输协议,老协议,有主动 / 被动模式,防火墙麻烦,明文(FTPS 才加密)。 嵌入式现在不推荐新增使用 。
- 什么时候留: legacy 老设备对接,需要有人直接上传下载日志、配置文件
- 大部分新项目替代方案:
- 用 Nginx HTTP/HTTPS 做文件上传下载(简单)
- sftp(ssh 文件传输,加密,更安全,推荐替代 ftp)
分场景建议(RK3562 嵌入式 Linux)
场景 A:你的项目(PCS/PTU 管理平台,MQTT+Vue 网页)
业务:网页看数据、下发控制、设备上送遥测告警、固件升级
- ✅ 必留:mosquitto + nginx(HTTP/WebSocket)
- ⚖️ TFTP:可选
- 若只是系统内应用升级:直接用 Nginx HTTP 下载固件 → 不需要 tftp
- 产线批量烧写、Uboot 网络启动:需要 tftp
- ❌ FTP:建议直接去掉,尽量不要用。日志 / 配置文件上传下载改用 HTTP 接口或者 SFTP。
场景 B:产线批量烧录调试
需要 Uboot 网络加载镜像 → 保留 tftp,ftp 依然不推荐。
场景 C:只做成品设备,出厂后不 Uboot 升级
完全可以删掉 ftp、tftp,减少程序、端口、安全攻击面,降低漏洞风险。
安全角度(嵌入式很重要)
每多一个服务就多一个端口攻击面:
- FTP:21 端口,协议老旧,弱口令风险高,尽量不启用
- TFTP:69 端口 UDP,没有任何鉴权,任何人局域网都能读 / 写文件,成品设备上不建议开
- Nginx/Mosquitto 你可以做账号、token、acl 权限控制,可控性强很多
补充:容易混淆的点
问:Nginx 有 HTTP,是不是就不需要别的 HTTP 服务? 是的。Nginx 本身就是 HTTP 服务,不用再装 lighttpd、apache。 MQTT ≠ HTTP:MQTT 是消息总线,适合高频小数据包实时通信;HTTP 适合查询、文件、网页,两者配合。
精简选型推荐(RK3562)
- 正式产品(对外部署):mosquitto + nginx;去掉 ftp、tftp。固件升级走 HTTP。
- 产线调试阶段:临时开启 tftp,量产固件关闭 tftp,禁用 ftp。
- 如果需要远程传日志:优先 SFTP,不要 FTP。
你可以说下你的用途:是成品储能 PCS 网关,还是产线调试板子?我可以帮你确定最终需要开启的服务清单,以及对应的端口和 systemd 启停配置。