请问如何跨网段实现网络唤醒

本机ip172.16.12.x,要实现唤醒的机子有网络唤醒功能,在172.16.13.x。子网掩码貌似一样,都是255.255.255.0,请问如何操作?... 本机ip 172.16.12.x ,要实现唤醒的机子有网络唤醒功能,在172.16.13.x 。子网掩码貌似一样,都是255.255.255.0,请问如何操作? 展开
 我来答
GoddenSave
2014-10-10 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3013
采纳率:47%
帮助的人:518万
展开全部
下面的分析可以参考,跨网唤醒需要在路由上进行设置:

远程唤醒:
  1、除了在BIOS中开启远程唤醒功能外,有些主板要求开启以下功能:
AC Back Function(设置掉电重启后系统的状态)
主板的来电唤醒功能 比如一插电源线主机就启动看你想怎么设置了 使用远程唤醒将“AC BACK Function”设置为“Full-on”即可 关机,开机,先前的状态(原来开时后来电就马上开机,原来关机后来电时还保持关机状态)

  2、另外,有些网卡还要在其属性中进行另外设置:
    系统重新启动后,单击[开始]-][控制面板],然后选择[系统]。
    在“系统属性”窗口中,选择[硬件] 标签,然后单击[设备管理器]。
     在“设备管理器”窗口中,单击[网络适配器] 旁边的加号+,然后双击[marvell yukon 88e8036/8053 pci-e fast ethernet controller]。
     选择[高级] 标签,然后选择[wake from shut down] 属性。
     在“值”列表中选择[开],然后单击[确定] 以关闭对话框。
跨网段远程唤醒:

于跨网段要经过交换机或路由器,而它们是不允许广播的,所有些网友回答用 ip help address 原理么类似跨网段的DHCP,或者IP
DIRECTED BROADCAST 和 IP FORWARD PROTOCOL 需要ENABLE等。可是使用后发现还是不行,后来见到一文章:
************************************************************
远程开机,现在有两种方法,本地同一广播域内开机,远程过路由开机。
先谈谈本地开机。
 
 要打开mac地址是00-0E-7F-7B-BD-32这台主机,发起pc发出一个广播。通过sniffer的ip包。可以看到目的MAC地址是FF-
FF-FF-FF-FF-FF,这是一个广播,再看目的ip地址,192.168.200.255,是ip广播,向下看,数据包是UDP,目的端口是
2304,源端口不必理会。
 
 那么说,发一个广播,只要端口是2304就可以开机吗?显然不是,开机是有针对性的,不是发一个这样的广播,所有的机器都开机。关键就在那个数据里面。
看一下这个126字节的数据到底有什么,最初的6个子字节是全F,7到12字节就是要开机的MAC地址,然后循环出现,直到填充到126个字节为止。这才
是确定开那一台机器的关键。
  总结一下,要开机就必须让被开的机器,收到端口为2304的udp数据包,包的内容包含了被开机的MAC地址。但是没有开机的机器没有办法设定ip地址,怎么才能让其收到,于是广播就是最好的方式了。
  那么远程过路由开机怎么办,又不能进行广播。
  通过抓包可以发现,目的mac地址变成了网关的,目的ip地址变成了那台机器设定的静态ip,其它数据没有变化。那么这样可以开机吗?前面不是说过了,没有开机的机器是无法设定ip的,它如何才能把这个数据送到该网卡呢。
 
 这里就牵扯到一些路由器,交换机,hub的一些原理。hub是把所有的数据都发送到所有端口(物理),所以效率不高;交换机呢,是根据已经注册的mac
地址和端口(物理)的对应关系转发,那么没有开机的情况下,当然也没有注册mac地址了,但是交换机在对待没有注册的mac地址的时候,会把这个数据包发
往所有的端口(物理),这样也没问题了。那么作为远程的关键导入点的路由器,是工作在3层,它要查找ip地址和mac的对应关系,就用arp协议,我们知
道如果这台机器是down状态下,是不会应答arp广播的,那么这样说来无法开机了?结果却出人意料,机器却开机了,为什么?

析一下,进入路由器,察看arp
table,竟然有ip地址和mac的对应,稍作思考就明白,原来这台测试用的电脑刚刚做完开机测试,刚关机,开机的时候,即使我们什么都不
做,windows机器也会去找微软的服务器的,这已经不是秘密,那么它必然找过网关,所以网关当然就知道了这个ip和mac的对应关系,根本就不用
arp查找,直接就发出数据,机器接收到也就能开机了。为了证实这个想法,把路由器内的对应关系删除,果然不能开机了。
  远程开机不能只开刚刚关闭的机器吧,症结就在ip和mac的关系上,那么绑定对应关系,问题迎刃而解。
************************************************************
于是在交换机中加入IP与MAC地址的绑定命令:arp 192.168.1.2 0011.e4e5.2489 arpa
然后用AMD的开机软件测试,在IP地址中输入192.168.1.2,在MAC地址中输入0011.e4e5.2489 ,OK成功。
匿名用户
2019-06-10
展开全部

1. 用户端能够连接到网络唤醒的服务器.
2. 发包软件修改成发直接的IP, 不发广播包.
我用的是python实现的.核心发唤醒包代码如下:

        data = b'FFFFFFFFFFFF' + (macaddress * 16).encode()
        send_data = b''
    
        for i in range(0, len(data), 2):
            send_data += struct.pack(b'B', int(data[i: i + 2], 16))
        send_boradcast = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        send_boradcast.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
        send_boradcast.sendto(send_data, (ip, 9))
        send_boradcast.close()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式