网站首页
minecraft
资源共享
个人随笔
科技圈
杂七杂八
豆丁wiki
您的位置:首页 > 笔记 > 利用树莓派远程唤醒主机
利用树莓派远程唤醒主机
2018-11-5    4823    0

之前抽奖得到一个向日葵的开机棒,可以用来远程开机,后来不知道啥原因不好使了,就想到利用树莓派来远程开机,反正树莓派24小时一直不关。我这里的树莓派是安装了树莓派系统的台式机,不过方法是通用的。

首先开启主板的网卡唤醒功能(注意把本地硬盘的启动顺序放第一,不要把网卡放第一,不然会起不来),查到自己电脑的mac地址,这个很简单就不说了。

ssh登陆树莓派,安装etherwake:

apt-get install etherwake
安装完成拿另一台局域网的主机登陆树莓派测试一下:

etherwake MAC地址(xx:xx:xx:xx:xx:xx)

正常的话不会有任何报错,并且主机也启动了。到这一步如果树莓派能够外网访问的话直接用ssh登陆下开一下就好了,后面的可以不弄,但是为了方便,下一步开始我配置了网页shell命令的方式来快速执行指令。


使用https://github.com/b374k/b374k这一php工具,把它放在服务器上,第一次使用的时候需要自定义生成一个文件,根据页面提示选择模块,我们这里不需要别的模块,可以都不要,然后设置密码后点击pack后就生成了一个b374k.php文件。然后把除了这个文件外的别的文件都删除,以免带来隐患。(注意,这个文件可操作性较高,请一定重命名文件和设置高强度密码)

然后在相同目录新建一个wake.sh脚本:

#!/bin/sh

sudo etherwake MAC地址
echo "已执行远程开机命令"

给与777权限。然后查看下网页端执行shell命令的用户是谁,我们要给它一个免输密码权限,不然无法执行需要root权限的脚本。在ssh中输入以下命令:


 lsof -i:80 


找到自己网页服务的名称,我用的是lighttpd,对应的用户为www-data。

接下来给www-data免密码执行脚本权限:

nano /etc/sudoers

添加以下语句:
www-data ALL = NOPASSWD: ALL


然后重启服务器。


之后网页访问相应文件,输入密码,在命令行输入./wake.sh回车即可,看到提示即表明命令发送成功。我是使用的frp加443端口来外网访问的,这样安全性要好一点。

至此,利用树莓派来远程开机就实现了。并且,这样一来就可以开启局域网内任意一台主机了,相比向日葵局域网版,成本可以说大大降低,因为用nanopineo的话总共硬件才几十块钱。

上一篇: 给博客增加个看板娘o(* ̄▽ ̄*)ブ
下一篇: 安装office2016报错的经历
发表评论:
您的网名:
个人主页:
编辑内容: