前言

为什么会想到实现这个

最近抖音刷的有点多,看到里面的博主晒自己的智能家具,我自然是心动的很。可惜,我想要拥有一套自己的房子至少还得一个年代(21世纪30年代)。即便如此,我心中那份对物联网浓浓的爱恋还是被唤醒了。于是乎,我心里的就浮现了一个想法:我的手机能不能控制点什么呢?
好嘛,我家里并没有什么物联网设备,唯一能让我拽过来做实验的也就是我这台电脑了。那就做这个课题吧:移动设备对其他设备的远控。

这个实现的横向扩展

虽然我的移动设备是iPhone12,电脑的系统是Ubuntu,但并不代表安卓+Windows的组合就不行,但是大概率不会这么丝滑。(ios的快捷指令做的还是蛮不错的。)

题外话:其他人的方案

1.利用服务器做中间商

呐,对于我这种懒鬼,第一步肯定是先去网上找别人的方案啦。但是找了一大圈,都没有比较满意的(不是说人家的方案不好,而是我和他的需求不一样,导致实现方案不一样)。
其中有一位不错的思路是利用快捷指令向服务器发送信息,其他设备再查询服务器上的信息,来执行命令。

2.内网穿透

先进行内网穿透,再通过快捷指令向本地机发送指令。

3.动态查询IP实现内网穿透

这个是我在其他地方看到的一个关于内网穿透的新方案。大概就是在Cloudflare Worker上写一个脚本,来查询本地机当前的ip地址,来实现内网穿透。利用快捷指令的读取网页内容就可以动态的获取ip,然后向本地机发送指令。

正篇

我的思路其实很简单,因为我的需求主要是在内网里操作(涉及远程操作的我会选择内网穿透),所以我更偏向使用快捷指令的通过SSH运行脚本来对我的Linux主机进行控制。

1.安装openssh

Ubuntu默认是没有打开SSH功能的,我们要手动安装:

1
sudo apt install openssh-server

对了,有防火墙的通过一下ssh的端口:22。

2.固定内网ip地址

为了让我们不用频繁的更改快捷指令,我们需要把被控制端的内网ip固定。这里拿Ubuntu20.04作演示,其他的系统也请大家自行搜索。

设置-网络-连接设置(靠上方的齿轮图标)-IPv4-勾选手动
然后在地址上填上合适的ip,子网掩码和网关按照你之前默认的填,下面两项都勾选自动,点击应用。
如何查看子网掩码和网关还请自行搜索(小提示:ip addr )。这个设置错了要不然系统不会让你应用更改,要不然就会更改后连不上网,要谨慎修改,最好不要通过命令行修改。
PS:这个修改方法也有可能失败,具体方法大家还是自己检索吧。

3.设置快捷指令


咱这边也是在Termius上试了一下,已经可以通过SSH连接电脑了,那我们就开始下一步吧。
打开快捷指令,创建新快捷指令,选择脚本,通过SSH运行脚本,然后填入你的配置,输入快捷指令名称,保存即可。

咱来测试一下,我的是在桌面目录里创建了一个test目录(手机录屏还要转gif太麻烦了,就不放上来了):

圆满成功,下面进行搞活阶段!
PS:最美滋滋的是快捷指令在AppleWatch上也可用,终于有科技感了。

搞活

1.实现手机短信同步

这个实现的比较粗糙,不依靠设备上的程序,如果在Linux上写一些配套的程序,实现起来会更美丽。
现在自动化里添加一个信息到达的触发:

然后配置SSH脚本(这里因为我总是找不到合适的体现信息的变量,所以拿时间做了代替,同样也是信息到达触发)。


原理暂且是被验证了:

2.打造一个简单的SSH工具

快捷指令允许我们在使用时提供一个变量,我们可以用这个特性做一个简单的SSH工具。
其他的配置不多说了,主要讲一下怎么配置内容。

将内容改为 每次均询问 即可,然后将其加入到桌面。

点开试一试~

圆满成功~

后记

其实仅凭基础的命令和快捷指令就可以实现很多复杂的功能,但如果再有一些配套的应用,就可以让这一切更加系统化,高效化。更多的玩法还需要我们去挖掘!害,我为啥总有买一个iPhoneSE来捣鼓这个的想法……对了,以上的指令是可以通过语言唤醒的,也可以通过Shazam快捷指令来玩出更多花活。呐,有点高端了~