通过tailscale搭建局域网真正实现ZWO盒子的远程控制

通过tailscale搭建局域网真正实现ZWO盒子的远程控制

通过tailscale搭建局域网真正实现ZWO盒子的远程控制

一、前言

     ZWO盒子凭借操作简单、界面易懂的优点,成为目前打野出摊的常见选择。不过经过几年的使用,我发现盒子在远程控制上不是很完善,只能在asiair网络覆盖范围内进行连接,或是借助附近的wifi网络进行桥接来略微扩大连接范围。无论是直接连接还是无线桥接,人离开的范围最多只有几十米,假如离开设备几公里乃至几十上百公里,就无法及时查看盒子的拍摄情况,假如拍摄过程出现奇怪的bug就会耽误后续拍摄。

目前论坛上提出的远程控制方案都是基于远程控制手机、工控电脑的间接远程控制。实际体验下来会遇到一些问题:比如手机每次被远程控制都要手动确认权限,无法自动批准;我还尝试过使用mac连接asiair+向日葵远控mac的方案,这种方案延迟较高(网差的时候可以达到几秒),且mac版本的asiair必须在电脑上用键鼠操作,手机远控的操作手感极其反人类,拍摄的图像无法批量下载,只能手动在asiair中一张张点击下载到mac再用向日葵传回本地。更重要的是,这些间接远控方案都需要把手机、电脑放在盒子旁边,不仅增大了电源的供电需求,也需要手头有旧手机/不用的电脑,整体用下来比较麻烦。

因此,我构建了一套能够远程控制盒子进行拍摄的方案,该方案的核心是使用路由器+tailscale搭建远程通道,使得手机认为自己身边时刻存在一个asiair热点,实际的使用体验与手机直连asiair没有区别平均延迟在几十ms到一两百ms不等下载速率在5~10MB/秒。目前经过两个月的校内测试和远程台测试,整体在拍摄过程中没有遇到bug。

      先整体介绍一下这套方案的使用要求:

      盒子端(望远镜相机等设备)位于网络下,可以是公共wifi、随身wifi、手机热点、校园网及其他需要认证使用的网络、其他能连接并且上网的有线/无线网络。

      控制端(人+手机)位于网络下,不需要和盒子的网络有联系,没有局域网限制,唯一的要求是能上网。

      有一个支持openwrt的路由器,需要有中继功能,最好内置tailscale。我使用的是glinet的GL-MT3000,目前测试下来可以正常工作,且可以直接USB供电,功耗在1-2W。

准备一台电脑,有电脑设置账号和配置网络连接会方便不少,也便于在终端中ping各个节点查看连接状况。

最好准备一个监控摄像头(尤其是长期放在远程台)。

     接下来介绍从零开始的配置过程。

二、初次连接的配置流程

准备好盒子、路由器、手机,联网进行初始化测试。

1.   将路由器连接到附近的可用网络

打开路由器,手机连接到路由器的wifi,浏览器进入192.168.8.1路由器设置界面,第一次进的话按照说明书设置好路由器和wifi的账号密码。

对于有线网络,直接将网线连接到路由器的对应端口,此时路由器界面显示已经连接网络。对于无线网络,在路由器设置界面中点击网络连接-中继模式,输入wifi密码连接。

如果使用的是校园网这类需要在浏览器登录进行二次验证的网络,这里需要注意:假如无法自动弹出校园网认证界面,需要在路由器设置中进入更多设置-DNS重绑保护-关闭。假如还是不行,就先用手机断开路由器直连校园网,去手机设置-wifi-当前连接的那个wifi-MAC地址看一下,然后连回路由器-网络-MAC地址克隆本机MAC。我当时克隆了MAC之后就能正常认证了。完成这些配置后,重新中继连接校园网,这次就可以弹出认证界面了(或者直接认证通过连接上)。完成这些配置后,以后路由器每次供电都会自动中继连接到网络。

完成上述设置,此时可以做一个测试:假如盒子桥接到路由器wifi,手机也连接路由器wifi的话,是可以在asiair软件中连上盒子的。

假如是在远程台,同时存在有线网络和无线网络,可以将两个网络同时连接,并且将路由器工作模式设置在“负载均衡”模式(假如路由器支持的话),这样设置会显著减小远程控制的断连风险,尤其是远程台这种设备很多、网络拥挤的环境。

2.  在各个设备上配置tailscale

Tailscale是这套连接方案的核心,前往官网 https://tailscale.com/download 完成手机/电脑端的下载,并创建一个tailscale账号,把设备绑定到账号上。官网或者登录界面有的时候可能无法直接访问,需要科学上网,这里不再赘述。

      路由器方面,我直接使用了内置支持tailscale的路由器,所以可以在路由器的网页设置界面直接登录自己的账号,对于其他路由器,需要刷成openwrt系统再下载写入,这个我没有亲自操作过,具体细节可以问一下AI。

      完成这些配置后,可以看到各个设备都成功连接。

      以电脑客户端的配置为例,注意Use Tailscale subnets要勾选,这个是我们能够远程连接盒子的关键。

3.  将盒子连接到路由器

打开盒子,wifi-无线桥接中选择路由器的wifi网络,将盒子桥接到路由器。

此时切换回路由器的wifi,进入路由器192.168.8.1网页设置界面,可以看到当前路由器下面多了一个设备。

      这里我勾选了保留IP,这样的话每次重启路由器都会为盒子分配一个固定的IP。记住这个IP,之后还会用到。

     

4.  通过IP远程连接盒子

完成上述操作后,理论上已经搭建了盒子-路由器-手机/电脑的通道。现在尝试ping路由器和盒子的地址,理论上都是可以ping通的。在搭建设备的过程中,假如出现设备断连的情况,可以借助电脑的终端依次ping路由器和盒子的IP,逐步排查问题。

      接下来,打开手机上的asiair,进入之后大概率无法直接连接上盒子,需要点击绿色的“扫描不到?”通过IP连接,输入路由器分配给盒子的那个IP,点击连接。

      至此,便完成了连接的初始化,后续每次使用无需重新配置。路由器通电之后会自动连接到中继的wifi热点(假如是校园网的话会弹出浏览器登录认证)。盒子有的时候不会自动桥接到路由器热点,需要手动连asiair热点进去设置一下无线桥接。各设备的tailscale一般不需要重新设置,可以在手机/电脑的客户端看一下各个设备是否都在线。完成这些检查后,手机断开路由器/asiair热点,打开tailscale,进入asiair通过IP连接盒子,就能在任何有网的地方远程控制盒子。


三、 一些其他使用技巧

1.  将盒子作为虚拟硬盘挂载到本地电脑

上面的连接过程相当于将盒子、手机、电脑之间建立了一个局域网,因此可以将盒子作为虚拟硬盘映射到本地电脑,实现拍摄素材的自动存储/远程移动。值得注意的是:目前测试中发现有的时候网络不是特别稳定,传输过程会断断续续。假如传输暂停,需要重启电脑端的tailscale并连接,并且用终端ping一下路由器和盒子确保连接建立,然后继续传输。这可能是因为tailscale自动切换到了代理服务器,有需求的可以自己搭建一个服务器作为中转。

首先在资源管理器中右键此电脑-映射网络驱动器,

文件夹部分输入盒子的IP,此时点击浏览可以看到盒子的存储文件夹,其中EMMC Images是我们平时拍摄存储的那个文件夹。

      此时电脑上多了一个虚拟硬盘,点开可以查看盒子拍摄的素材


      这里测试了一下,传输的速度有些感人,比手机连接asiair之后预览图像的下载速度(10MB/秒)要慢不少。不过假如真有远程拷素材的需求,白天多花点时间也不是不能接受。

     

      这里有一个提醒,假如电脑上安装了ASIFitsView,尽量不要尝试直接打开虚拟硬盘上的原始文件,因为ASIFitsView会尝试同时加载文件夹下的全部图像,导致严重卡顿。建议想看的话挑一张下载到电脑本地再打开。

2.  同时控制多台设备

      假如想要新增设备,只需要将新的盒子桥接到路由器wifi,此时在路由器控制台可以看到多台设备:

      在使用的时候,只需要在asiair中输入对应设备的ip,就可以连接到不同设备。也可以在程序里面点击切换设备,手动输入另一台设备的ip(自动扫描一般是找不到的),完成asiair内的多设备切换。

      (注意不要手快点到滑动关机)

四、 总结

      本文提出了适用于ZWO天文盒子的远程控制方案,经过近两个月的测试,在拍摄过程中没有遇到任何问题。在远程台使用时,拍摄素材传输到本地的时候偶尔会遇到传输中断的问题,需要重新连接tailscale来解决。整体上看,这套方案为打野设备提供了一套新的远程控制思路。

      在使用的时候大家也要注意:远程控制时人不在设备旁边,因此需要提高安全意识,最好配一个摄像头辅助监控设备情况。假如自己的打野设备平时一直存在中天翻转/goto/限位的问题,最好还是放弃远控,自己守在设备旁边操作。

      最后预祝大家拍摄成功!

评 论