野外深空拍摄有两个网络问题需要处理:ASIAIR 自带的 Wi-Fi 覆盖范围有限,iPad 接入该网络后无法访问互联网。另外,希望拍摄期间就把文件同步到家里的 NAS,收工后不必再把设备搬回家、通过家庭 Wi-Fi 传输。

本文记录这套组网与回传方案,以及实施过程中实测得到的结果。

拓扑

1
相机 ──5G Wi-Fi── 旅行路由 ──STA 上行── 现场 Wi-Fi ──Tailscale── 家里的 NAS
  • 相机与 iPad 接入旅行路由的 5 GHz 热点,处于同一局域网,ASIAIR 监看正常。
  • 路由以 STA 模式接入现场已有的 Wi-Fi,提供互联网上行;iPad 的流量经此上行,监看期间仍可访问外网。
  • 路由通过 Tailscale 与家庭网络建立隧道,用于把文件写入 NAS。

路由上行实测为 5 GHz、信号 −35 dBm、协商速率 866.7 Mbit/s(PHY 速率,非应用层吞吐)。

下文用 CAM_IP 代指相机的固定地址,用 192.168.3.0/24 作为路由内网的示例网段。

ASIAIR 提供的信息

SMB 共享。 ASIAIR 将存储以 SMB 共享出来,名称为 EMMC Images。目录结构为 Autorun/<类型>/<目标>/,类型包括 Light、Flat、Dark、Bias;每张 FIT 旁附一个 _thn.jpg 缩略图。本方案只挂载该共享,且挂载为只读。

App 状态。 拍摄进度、单张剩余时间、相机温度、导星曲线显示在 iPad 上的 ASIAIR App 中。这些信息用于现场判断,但没有可供脚本读取的稳定接口。

接口与日志。 本方案未使用 ASIAIR 的接口,所有判断都以文件为准:目录结构、文件名中的时间戳、文件大小。判断依据单一,避免 App 显示与实际文件不一致时产生歧义。

链路与实测带宽

用途路径实测速度
现场监看、参数调整iPad 连路由的 Wi-Fi16.9 MB/s
路由读取相机存储同一局域网约 10 MB/s
路由写入 NASTailscale 隧道0.48–0.53 MB/s
家庭网络直接读取相机文件Tailscale 隧道0.40–0.59 MB/s

局域网链路不构成瓶颈;隧道是全程最慢的一段,约 0.5 MB/s。

传输能力与拍摄节奏

单张曝光 300 秒,一张 FIT 约 50 MB(实测 52,188,480 字节)。按 0.48–0.53 MB/s 计算,单张传输耗时约 100–110 秒,占 300 秒曝光窗口的三分之一左右,可与拍摄并行。

按一晚 8 小时、每张另计 30 秒开销估算,约 87 张、合计 4.3 GB;全部传输约需 2.5 小时,分散在整晚完成。稳态下隧道带宽不影响拍摄。

风险在积压:链中断 1 小时后,需要补传十余张,约 20 分钟才能追平。因此脚本按文件比对,已完成则跳过,链路恢复后从缺失的文件继续。

验证过程

以下结论来自设备上的实际读取与测试,由 AI 协助逐项完成:

检查项方法结果
隧道能否到达相机所在网段查看本机路由表,ping 网关192.168.3.0/24 经 utun9,网关往返 19–35 ms
路由发布了哪些子网读取 Tailscale prefs广告两条,仅批准相机所在的一条
相机地址是否固定读取路由的 DHCP host 表已配置地址保留
上行连接方式读取无线配置,查看链路状态STA 接入现场 Wi-Fi,5 GHz,−35 dBm,866 Mbit/s
各段链路带宽分段实测局域网 16.9 MB/s,隧道 0.48–0.53 MB/s
单张传输耗时52,188,480 字节 ÷ 0.48 MiB/s约 104 秒
传输工具选择同一链路对照测试rsync 两次停滞于 10.5 MB,dd bs=64k 完成
负载下路由是否稳定连续传输时观察 uptime23:02 出现一次归零,原因未确定

其中两项问题是通过检查发现的:

  • 子网路由范围。 路由同时广告了相机网段和上行网段。若家庭网络恰好使用同一网段,批准上行路由会使家庭局域网流量被错误导向远端,打印机与 NAS 将无法访问。
  • 只读挂载未生效。 挂载参数中指定 ro 后,首次挂载时 /proc/mounts 仍显示 rw,需要重新挂载并确认。

回传流程

拍摄期间,路由挂载 ASIAIR 共享(只读)与 NAS 共享,逐文件写入并按大小校验:

1
2
3
4
5
6
7
8
SRC=/mnt/asiair/Autorun
DST=/mnt/nas/media/activities/$NIGHT
find "$SRC" -type f | while read -r f; do
  rel=${f#$SRC/}; d="$DST/$rel"
  [ -s "$d" ] && [ "$(stat -c%s "$f")" = "$(stat -c%s "$d")" ] && continue
  mkdir -p "$(dirname "$d")"
  dd if="$f" of="$d" bs=64k 2>/dev/null || logger -t astro_sync "FAIL $rel"
done

源端不做任何修改或删除。文件大小一致视为传输完成,重连后从缺失的文件继续。

配置要点

固定相机地址。 在路由上为相机的 MAC 配置 DHCP 地址保留,避免重连后地址变化导致脚本路径失效。

仅启用 5 GHz。 路由的 2.4 GHz 热点保持关闭,相机与 iPad 均使用 5 GHz,减少需要排查的频段。

子网路由只批准相机网段。 路由会同时广告自身网段与上行网段(示例为 192.168.3.0/24 与 192.168.1.0/24),仅批准前者。若家庭网络也使用 192.168.1.0/24,批准上行网段会造成网段冲突。

CIFS 缓冲区设为 64 KB。 该路由内存为 120 MB,默认 4 MB 的 rsize/wsize 会带来内存压力:

1
2
mount -t cifs "//$CAM_IP/EMMC Images" /mnt/asiair \
  -o guest,ro,vers=3.0,iocharset=utf8,rsize=65536,wsize=65536,cache=none,actimeo=1

确认只读挂载生效。 挂载后执行:

1
2
mount -o remount,ro /mnt/asiair
grep mnt/asiair /proc/mounts

确认输出以 ro 开头后再开始传输。相机存储是当晚唯一的原始数据副本,写入错误无法恢复。

已知问题

  • rsync 在同一链路上两次停滞于约 10.5 MB,其中一次伴随路由器重启;现改用逐文件 dd。
  • 路由器在负载下重启过一次(23:02,uptime 归零),原因未确定,可能是供电或内存压力;拆分传输并调小缓冲后未再复现。
  • 当前供电使用普通适配器,未验证长时间传输下的电流余量。
  • 自动搬运脚本与定时任务尚未部署到路由器,目前为手动触发。

结论

该方案解决了两项现场网络需求:扩展 ASIAIR 的 Wi-Fi 覆盖,并在监看期间保留互联网访问。数据回传提前到拍摄期间完成,收工时 NAS 上已有当晚的原始帧,不再需要搬运设备后重新传输。

隧道带宽约 0.5 MB/s,低于局域网,但在 300 秒的拍摄节奏下足以并行完成单张传输;主要风险是链路中断造成的积压,而不是稳态带宽。