公网远程开机(唤醒家庭PC)

公网远程开机(唤醒家庭PC)一、背景前一段搞使用seafile搞了私有云盘,不过不需要的时候开着电脑好像有点浪费,所以就开始了通过公网开机的道路二、关键性问题问题要说在前面,常规性的东西百度一般配置都可以搞定,如果各种面向百度的配置都已经尝试,请注意如下问题。. 一定在被开机的直连路由设备上进行MAC与IP地址绑定(原理略)。局域网直接子网内广播发送可以不用绑定。 被开机的系统需要安装对应的网卡驱动(实验CentOS7是有问题的,windows用驱动精灵安装下网卡驱动搞定)三、通过互联网公网远程开机一般性步骤按照常

大家好,又见面了,我是你们的朋友全栈君。

一、背景
使用seafile搞了一个私有云盘,性能还是很优秀的(下载的话到50M/s,上传10M/s),不过不需要的时候开着电脑好像有点浪费,所以就开始了通过公网开机的道路

二、关键性问题
问题要说在前面,常规性的东西百度一般配置都可以搞定,如果各种面向百度的配置都已经尝试,请注意如下问题。

一定在被开机的直连路由设备上进行MAC与IP地址绑定(原理略)。局域网直接子网内广播发送可以不用绑定。
被开机的系统需要安装对应的网卡驱动(实验CentOS7是有问题的,windows用驱动精灵安装下网卡驱动搞定)

三、通过互联网公网远程开机一般性步骤
按照常规步骤设置如下(如下图),假如家庭中需远程开机设备电脑地址为192.168.100,路由器192.168.0.1,为什么搞个路由器,写在本段最后

在这里插入图片描述

1、 固定家庭公网入口
如果家庭是移动宽带略过,电信宽带吧,联通不清楚。电信可以去营业厅申请(申请需求百度之即可)。2020年8月份左右申请的。宽带安装送电线光猫
为了保证固定入口,申请个花生壳域名即可
2、 公网唤醒脚本
百度之,很多。也可以自己写一个。主要通过魔幻数据包唤醒,格式固定,可以自己写个手机移动端小程序。
这个地址https://www.renyiwei.com/wakeonlan有个微信小程序可以直接用,亲测有效

大概长这样,mac地址为需要开机电脑MAC,端口为电信光猫对外映射的端口(见步骤3),地址可以填花生壳对外获取的公网域名(比较固定)
在这里插入图片描述
3、 端口转发
公网唤醒脚本发送的数据要到达家庭内部,需要在电信光猫、路由器上都设置下转发,以1999端口为例。光猫配置1999转发到192.168.0.1 1999端口,路由器上继续配置1999转发到192.168.1.100 1999端口。注意协议为udp。
4、 MAC与IP绑定
这一步是一个关键步骤,也是为了增加IP与MAC绑定关系的方便。即 在该路由器上192.168.1.100与其电脑自身设备的MAC在路由器上配置下绑定关系
***有老铁可能诧异为什么不在电信光猫配置。这个写在最后
5、 需要被开机的设备配置(两部分)
** BIOS设置:**需要在bios设置,允许网络唤醒,一般都是wake on lan之类,百度之。
** 系统配置(win10为例):**注意如下,如果驱动没装好没这个选项。可以用驱动精灵试下,Ubuntu系统可以直接用,CentOS7没搞定
在这里插入图片描述
基本到这里就可以远程开机了,如上一般操作步骤即可远程开机,最后说下优化。
四、写在最后
1、流程:还是开始的流程,这里可以把路由器去掉,这样开启完美一点,毕竟不用多经过一次NAT和转发,但是问题回到最初的问题,电信光猫一般家庭用户不支持配置MAC与IP地址绑定,只是简单支持MAC过滤,超级账户也没有。但是经过测试,可以通过telnet登录(telnet账户密码百度一般能找到),并且命令绑定后是可以通过公网开机的。不过如果家里异常停电后、路由器重启后就能不存在了,然后…不能远程开机了。
在这里插入图片描述
2、分析一下思路:
分析一下:如果异常断电来电后能够让路由器自动再写入这条记录就OK了
如果重启的话?重启,不存在的,重启一般都是人在家里,记着就行了,我相信光猫的厂家是不敢天天远程重启的,那么问题就转换了。

3、解决方式
于是在在我远程开机的设备做了如下两个操作。
 异常断电后,通电后自动开机
 每次自动开机后,延迟5分钟进行telnet远程登录路由器,写入绑定关系
新版Linux发行版开机启动可能有些费劲,参考
https://blog.csdn.net/kingredfly/article/details/115190425?spm=1001.2014.3001.5501
绑定脚本如下:使用expect完成自动交互操作

#!/usr/bin/expect -f

sleep 300
set timeout 5
spawn telnet 192.168.1.1 23
expect "Login:"
send "root\r"
expect "assword:"
send "yinchangdexin123\r"
expect "WAP>"
send "su\r"
expect "SU_WAP>"
send "shell\r"
expect "Linux) #"
send "arp -s 192.168.1.100 e0:be:13:1f:29:e3\r"

send "exit\r"
expect "SU_WAP>"
send "quit\r"
expect "WAP>"
send "quit\r"
expect eof
exit

五、失败的路
家用光猫基本上跟一般的Linux有点像,其实,最初研究尝试了下想把路由器系统先备份再恢复,在备份的一些脚本中直接加上绑定关系,这样最完美。不想岔劈了给维修师傅找麻烦姑且这样,等能确定就行系统脚本更改的话继续更新

六、其他方案
整个逻辑原理基本明了,那么肯定是存在其他方案的。可以在局域网内安装一个设备(比如向日葵开机棒),然后获取到本地一个子网IP后OK,那么公网端注册一个账号,当账号下发开机指令,开机棒及时获取开机数据包,拉取到本地执行(本地广播数据包即可)。逻辑开启是这个样子的。理论上类似于开机帮的这个东东,可以实时获取注册账号发送的关机数据包(MAC即可)
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138957.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号