# PhoneRail 固件 OTA 下载口(C2)。部署到 /etc/nginx/conf.d/phonerail-fw.conf。 # # 为什么不走统一门户(7755):板子过不了登录门禁。这里**故意不设门禁**,理由: # · 完整性不靠这条通道:`ota` 命令经 MQTT/TLS 带 sha256,板子哈希对不上就不切分区 # (firmware/main/ota.h)—— 明文下载被中间人改了也只是一次失败的 OTA; # · 镜像里没有机密:WiFi / broker 口令都在板子的 NVS 里,不编进固件(IF-19)。 # 仍然收得很窄:只认 `/fw/<16 位小写十六进制>.bin`(文件名 = sha256 前 16 位,猜不到), # 其余一律 404,不开目录列表。上传用 firmware/tools/ota_push.py。 server { listen 7765; listen [::]:7765; server_name _; root /root/phonerail; autoindex off; location ~ "^/fw/[0-9a-f]{16}\.bin$" { default_type application/octet-stream; add_header Cache-Control "no-store"; limit_except GET { deny all; } } location / { return 404; } server_tokens off; access_log /var/log/nginx/phonerail-fw.access.log; error_log /var/log/nginx/phonerail-fw.error.log warn; }