智能眼镜的 FTP 协议细节
本页介绍了智能眼镜硬件上 FTP 协议使用的技术方面 — 连接机制、实现最佳眼镜兼容性的服务器配置以及特定于可穿戴计算设备的协议级注意事项。
FTP 协议本身与设备无关——无论客户端是台式机、电话还是眼镜计算单元,它的工作原理都是相同的。差异在于硬件限制:输入方法、显示限制、电池灵敏度和 WiFi 可靠性。
眼镜硬件上的协议操作
网络堆栈
运行 Android 的眼镜计算单元具有标准 TCP/IP 堆栈:
- WiFi 无线电提供网络连接(2.4/5 GHz,取决于硬件)
- 标准套接字连接支持FTP的双通道设计
- 控制通道(端口21)维护会话状态
- 数据通道(被动模式动态端口)进行文件传输
眼镜上的 FTP 会话流程
1. TCP connect to server:21
2. Receive server banner (220 response)
3. USER username → 331 response
4. PASS password → 230 response (logged in)
5. TYPE I (binary mode) → 200 response
6. PASV → 227 response (data port assigned)
7. LIST (directory listing) → data transfer
8. PASV → 227 (new data port)
9. RETR filename → file download begins
10. QUIT → session ends
每个操作都遵循标准 FTP RFC 959 协议。AnExplorer 透明地处理所有协议协商。
被动模式要求
**被动模式(PASV)对于眼镜来说至关重要。**原因:
- 眼镜位于 NAT(家庭路由器)后面 — 主动模式需要 NAT 阻止的服务器到客户端连接
- 眼镜的传入连接支持可能受到限制
- 无论如何,所有现代 FTP 实现都应该使用被动模式
- AnExplorer 默认为被动模式
服务器端被动端口配置:
- 定义端口范围(例如,50000-51000)
- 在防火墙中打开此范围(如果适用)
- 如果服务器位于 NAT 之后,则配置伪装地址(用于远程访问)
Glasses 的服务器配置
推荐的服务器设置
为了与眼镜计算单元实现最佳兼容性:
# vsftpd example configuration
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=51000
idle_session_timeout=120
data_connection_timeout=120
utf8_filesystem=YES
ascii_upload_enable=NO
local_enable=YES
关键设置说明:
- 启用被动模式: NAT 后面的眼镜需要
- 慷慨的超时: 眼镜的导航速度可能会较慢;避免过早断开连接
- UTF-8 支持: 处理国际文件名
- 二进制模式默认值: 媒体文件必须以二进制形式传输
- 本地用户身份验证: 标准用户名/密码访问
用户帐户设置
创建专用眼镜用户:
# Create user with restricted shell
useradd -m -s /usr/sbin/nologin glasses-sync
echo "glasses-sync:secure-password" | chpasswd
# Create content directory
mkdir -p /home/glasses-sync/{audio,assets,configs}
chown -R glasses-sync:glasses-sync /home/glasses-sync
或者在 NAS 上(基于 GUI): 1.控制面板→用户→创建 2.名称:“眼镜同步” 3.设置权限:媒体共享只读,上传共享读写 4. 启用该用户的FTP访问
文件夹结构优化
有限显示导航的设计:
/glasses-sync/
├── audio/ ← First-level: content types
│ ├── new/ ← Second-level: status-based
│ └── favorites/ ← Quick access to known content
├── ar-assets/
│ ├── current/ ← Latest versions only
│ └── archive/ ← Old versions (rarely accessed)
└── upload/ ← For glasses-to-server transfers
原理: 眼镜浏览的最大深度为 2 层。将“最新”或“当前”文件夹保留在顶层,以实现最少的导航。
传输协议详细信息
二进制与 ASCII
始终对眼镜使用二进制传输模式:
- 音频文件(MP3、FLAC、AAC):必须是二进制文件
- 图像:必须是二进制的
- AR 资源(GLB、纹理):必须是二进制的
- 只有纯文本文件可以使用 ASCII(但二进制文件也适用于文本)
AnExplorer 默认设置二进制模式。无需用户配置。
恢复支持(REST 命令)
FTP 恢复允许中断的传输继续:
- 如果 WiFi 在传输过程中中断,请重新连接并从最后一个字节恢复
- 服务器必须支持 REST 命令(大多数都支持)
- 对于 WiFi 稳定性可能会有所不同的眼镜来说尤其重要
- AnExplorer 尝试自动恢复中断的下载
传输大小限制
没有固有的 FTP 协议大小限制。眼镜的实际限制:
- 设备上的可用存储空间(在大量传输之前检查)
- 传输期间的电池寿命(大文件需要时间)
- WiFi 会话稳定性(传输时间越长 = 中断的可能性越大)
眼镜协议比较
| 方面 | FTP | SFTP | 中小企业 | 网络DAV |
|---|---|---|---|---|
| 港口 | 21 | 2122 | 22445 | 445443/80 |
| 加密 | 无 | 完整 | 可选 | 可选(HTTPS) |
| 认证 | 用户/通行证 | 密钥或密码 | 用户/密码 | 用户/密码 |
| 流媒体能力 | 否(仅下载) | 没有 | 是的 | 部分 |
| 恢复支持 | 是(休息) | 是的 | 有限公司 | 部分 |
| 最适合 | 批量转账 | 安全传输 | 媒体流 | 云接入 |
| 防火墙友好 | 中等 | 好 | 差(远程) | 优秀 |
对于眼镜音频: 用于流式传输的 SMB,用于下载的 FTP/SFTP。 对于眼镜资产: 用于批量部署的 FTP,用于敏感内容的 SFTP。
眼镜硬件上的性能
CPU 影响
FTP 本身的 CPU 开销最小(与需要加密/解密的 SFTP 不同)。在处理能力有限的眼镜计算单元上,FTP 较低的 CPU 需求意味着:
- 更快的传输(无加密瓶颈)
- 传输过程中电池消耗更少
- 下载期间系统保持响应
内存使用情况
FTP客户端内存占用:
- 控制通道:最小(基于文本的协议)
- 数据传输:缓冲区大小(通常为 8-64 KB)
- 目录列表:与文件数量成正比
- 总计:在现代 Android 设备(甚至计算单元)上可以忽略不计
WiFi 电源状态
眼镜计算单元积极管理 WiFi 电源:
- WiFi 可能会在用户交互之间休眠
- 主动 FTP 传输使 WiFi 保持唤醒状态
- 如果 WiFi 进入休眠模式,空闲连接可能会超时
- 解决方案: 保持交互移动或一次性下载所有内容
Glasses 上的 FTP 故障排除
### 连接被拒绝
- 服务器未运行或端口错误
- 防火墙阻止来自眼镜 IP 的连接
- 服务器绑定到错误的接口(仅限本地主机)
- 修复:验证服务器状态,检查防火墙规则
登录失败(530 响应)
- 凭证错误
- 用户无权访问 FTP
- 失败尝试次数过多(临时锁定)
- 修复:验证另一个客户端上的凭据,检查服务器用户权限
被动模式失败(无数据连接)
- 服务器上未配置被动端口范围
- 防火墙阻止被动端口范围
- 服务器在 PASV 响应中返回错误的 IP(NAT 问题)
- 修复:配置被动端口范围、验证防火墙、设置伪装地址
传输超时
- 传输过程中 WiFi 掉线
- 服务器数据连接超时时间太短
- 省电模式杀死了 WiFi
- 修复:增加服务器超时、保持眼镜处于活动状态、检查 WiFi 稳定性
传输后文件损坏
- 用于二进制文件的 ASCII 模式(始终使用二进制)
- 传输中断且未恢复
- 修复:以二进制模式重新下载,验证文件大小与服务器匹配
安全最佳实践
用于家庭网络
- WPA2/WPA3 WiFi 加密保护无线段
- FTP 凭证在 WiFi 隧道内加密传输
- 具有最小权限的专用用户限制暴露
- 个人媒体同步的可接受的安全性
供企业使用
- 使用 SFTP 代替 — 完整的端到端加密
- 基于证书的身份验证(无需拦截密码)
- 网络分段(单独 VLAN 上的玻璃)
- 审核服务器上的日志记录以确保合规性
眼镜上的凭证存储
AnExplorer 将 FTP 凭据保存在设备的安全存储中:
- 在现代 Android 上静态加密
- 受设备锁保护(PIN、图案、生物识别)
- 考虑:如果眼镜丢失,可以访问保存的凭据
- 缓解措施:有限权限的 FTP 帐户将损害降至最低
相关指南
- 用于智能眼镜的 FTP 客户端 — FTP 功能概述
- 智能眼镜上的 SMB — 替代协议
- 智能眼镜上的 WebDAV — WebDAV 协议访问
- SFTP 协议 — FTP 的安全替代方案
