之前抽奖得到一个向日葵的开机棒,可以用来远程开机,后来不知道啥原因不好使了,就想到利用树莓派来远程开机,反正树莓派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的话总共硬件才几十块钱。
发表评论: