之前购买的向日葵开机棒出现了bug,客服给解决不了,想跟客服通个电话,客服表示不提供电话服务,无语。结果只能放在一边吃灰了。转念一想家里的树莓派可以用作远程唤醒,但是需要解决一个问题,就是内网穿透。何如访问树莓派来唤醒局域网的主机是个问题。我这种实现方法有2个要求:
1.有一个公网上的服务器,我的是腾讯云的学生机
2.需要远程唤醒的主机支持WOL(在BIOS中有WOL开关的选项,网卡可以选择唤醒设备)
环境差不多就是这样的
1.首先在树莓派上安装Etherwake用作网络唤醒
#apt install etherwake
查看需要唤醒的主机网卡MAC,我需要唤醒的是一台windows主机,WIN+R输入cmd回车,在CMD界面输入ipconfig /all,找到物理网卡,记录下其MAC地址
2.关机之后尝试用树莓派唤醒
#etherwake 11:22:33:44:55:66(之前记录的网卡mac地址,注意格式,win上是-连接,这里要换成:)
这里我报错了
SIOCGIFHWADDR on eth0 failed: No such device
因为我的环境是Ubuntu mate系统,网卡默认不是eth0,这里输入ifconfig看一下网卡名称
修改命令带上接口选项
#etherwake -i enxb827eb610cce(刚刚查询的网卡名) 11:22:33:44:55:66
这个时候如果成功唤醒主机,任务已经完成了一半。
3.修改树莓派和VPS的sshd配置,以防ssh回话超时
#vim /etc/ssh/sshd_config
添加以下两行:
ClientAliveInterval 60
ClientAliveCountMax 3
#service sshd restart
以上操作在树莓派和VPS都做。
4.配置SSH反向代理
在树莓派上
raspberry_pi#ssh -fCNR 9123(自己设定一个端口):localhost:22 root@1.2.3.4(VPS公网地址)
在VPS上
vps#ssh -p 9123(之前设定的端口) root@localhost
这个时候成功ssh到树莓派上就算成了
之后etherwake成功唤醒主机,配合teamviewer或者向日葵这类远控软件就能实现远程开机+远控了。