公网远程开机(唤醒家庭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)
blank

相关推荐

  • 检查文件是否有更新,监控文件状态

    检查文件是否有更新,监控文件状态

  • ASP.net错误:Control’ctl00_ctl00_ContentPlaceHolder2[通俗易懂]

    ASP.net错误:Control’ctl00_ctl00_ContentPlaceHolder2[通俗易懂]表现:当然也可能是另外一个什么控件必须放置在Form里边。原因:如果是普通情况,当然直接加一个Form就可以了,但如果是使用了masterpage,这个错误的真正原因是在masterpage中ContentPlaceHolder被错误放置到<form>外面了:<formid=”form1″runat=”server”&g…

  • Java快排实现(java快速排序代码)

    快速排序:基本实现思路取一个标准位置的数字用其他位置的数字和标准数进行对比如果比标准数大则放到标准数的右边,如果比标准数小则放到标准数的左边然后使用递归进行持续比对(注意:递归要有入口如果当前数组有数据并且多个才进行排序),然后我们用代码实现packagesort;importjava.util.Arrays;/***Created…

  • GTA5快速进入线上模式

    GTA5快速进入线上模式话不多说,上资源:链接:https://pan.baidu.com/s/1oWE6L0J1s33R_2zfcxiG_A提取码:b9tf解压后,先启动GTA5,进入游戏菜单界面然后打开Xenos(32位)或者Xenos64(64位)将文件夹下的GTAO_Booster.dll拖动进列表框内Process选择GTAV.exe(每次启动游戏进程ID会有所不同)最后点击Add将加速模块注入近gtaji…

  • 精彩编码 【进制转换】

    精彩编码 【进制转换】

  • Squid 代理服务器之 ACL 访问控制

    Squid 代理服务器之 ACL 访问控制文章目录1.ACL访问控制方式2.ACL规则优先级3.ACL的定义步骤4.定义访问控制列表4.1方法一4.2方法二1.ACL访问控制方式根据源地址、目标URL、文件类型等定义列表格式为:acl列表名称列表类型列表内容…针对已定义的acl列表进行限制格式为:http_accessallow或deny列表名称…2.ACL规则优先级一个用户访问代理服务器时,Squid会以从上至下的顺序匹配Squid中定义的所有规则列表,

发表回复

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

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