通过wake on lan和内网穿透实现siri远程开机
Hey!Siri,把电脑打开~
先上效果视频
可以看到,siri听到“把电脑打开”之后,执行了快捷指令,于是电脑就开机了。
现在许多主板集成网卡都支持远程唤醒功能(WOL/Wake on Lan),通常遇到这样的场景:人在外面,需要将家里的机器或公司的机器开启,进行远程控制操作。所以这里简单搭建一个wol服务,实现随时随地打开指定电脑的功能。
当然被远程唤醒的主机需要具备以下条件:
- 主板(和网卡)支持WOL功能,有些机器还需要在BIOS(和网卡设置)中设置开启该功能;
- 电脑需要插电;
一般来说wol是在局域网络下才可用,所以我们需要一台类linux系统的机器来向目标电脑发送wol命令,可以是树莓派、支持ssh的路由器或者闲置手机。然后通过内网穿透服务将22端口映射到公网,让siri执行“通过ssh执行命令”的快捷指令。这样就实现了通过siri随时随地开机。流程图如下:
准备工作
1、内网穿透服务
这里使用开源项目lanproxy:ffay/lanproxy
不过我使用的是frank-lam/lanproxy-nat集成的docker环境,并且有很详细的文档。
关于搭建内网穿透服务的流程本文不做赘述
如果没有公网主机和域名的小伙伴可以扫右侧二维码给我的公众号留言获取端口
2、设置bios和网卡允许wol
不同主板或网卡设置方法不尽相同,本文不做赘述
3、类linux系统安装wol工具
Ubuntu/Debian:
apt-get install wakeonlan
CentOS:
yum install wol --enablerepo=epel
安装完毕后可以在关机状态下试试:
Ubuntu/Debian:
# 后面的为需唤醒机器的MAC地址
wakeonlan FF:FF:FF:FF:FF:FF
CentOS:
wol FF:FF:FF:FF:FF:FF
4、iPhone设置快捷指令
新建快捷指令 > 通过ssh运行脚本 > 填写服务器相关信息 > 设置siri应答
至此相关设置已经完成,可以试试通过siri远程唤醒啦。
评论已关闭