Linux网络唤醒

Linux网络唤醒,第1张

在Linux下,当机器处于睡眠或待机状态时,想通过网络进行唤醒(WOL,wake on lan)时,可以通过如下相关命令来实现:

在A机(嵌入式设备)上,让其睡眠,可以使用如下命令:

ethtool -s eth0 wol g

echo standby>/sys/power/state 或echo mem>/sys/power/state

对于echo到state里面的内容,可以cat下state,就知道可以设置什么值了,而eth0可以根据实际需要通过哪个网口来唤醒设置。

在B机上(嵌入式设备或PC),唤醒A时需先知道A的MAC地址,才可以通过局域网进行唤醒,唤醒时使用如下命令:

ether-wake -i eth0 XX:XX:XX:XX:XX:XX

对于eth0可以根据实际设置,必须是跟A机连接到同一网段的网卡接口,而XX:XX:XX:XX:XX:XX则是A机的MAC地址。

对于上面用到的所有命令,要根据实际看有没有,没有则需要安装或交叉编译移植下,还有要注意电源管理部分内容,看能不能提供相关 *** 作。

关于WOL,可以参考如下网址了解:

http://hi.baidu.com/jzinfo/blog/item/158203e978d58a3fb90e2d03.html

关于睡眠、待机等概念,可以参考如下网址了解:

http://hi.baidu.com/buypro/blog/item/4e6d706737c8ef29aa184c1a.html

http://www.cublog.cn/u3/90973/showart_2281851.html#sec-5.1

网络唤醒功能就是实现在局域网中计算机能够接受特定的数据包实现开机的 *** 作

原理:计算机在关机状态时,其实电源还提供给+5V的电压给主板的部分芯片使用, 比如网卡,局域网中的电脑可以发送一个特定的数据包让关机但依然通电的计算机网卡接收,然后进行开机 *** 作

一般这种数据包时已广播形式发送的,IP是255.255.255.255(局域网内广播地址)而这种数据包就是wol magic packet

使用网络唤醒, 被唤醒机器需要满足以下条件

1.使用ATX电源

2.主板提供网络唤醒的硬件和软件支持

3.网卡支持wol

如果是集成网卡,只需要主板支持就行了 , 如果是pci网卡, 在主板和网卡会有三针的wol跳线跳线,需要将其连接好

网络唤醒工具

linux下 ether-wake

ether-wake在net-tools中集成

ether-wake 是一个linux下生成和发wake-on-lan(WOL)“Magic Packet”的工具,能够唤醒处于soft-powered-down(ACPI D3-warm 状态)下的设备,ether-wake会生成一个标准的AMD“Magic Packet"

Options

-b 发送网络唤醒包到广播地址

-D  增加Debug

-i ifname 使用的网卡名称

-p passwd 添加一个4byte或6byte的密码到包中

-V 显示软件版本信息

返回状态:

如果发送成功会返回 0 ,如果是权限问题不能发送会返回2 ,无法识别或者是非法的参数会返回3 ,没有找到网卡信息或者没有找到发送网卡去发送数据包会返回1

例:ether-wake -i eth0 -b00:22:44:66:88:aa

最近研究命令行下,远程唤醒(Wake On LAN)家里的windows台式机。

linux下可以用 etherwake 这个软件,发送魔术封包(Magic Packet)远程唤醒机器。

我用的是树莓派,记录一下远程唤醒的方法。

首先安装 etherwake (基于Debian / Ubuntu )

安装完成后,可以用下面的命令远程唤醒

或者(下面两个命令我没有亲自尝试过)

比如你的MAC地址是 AA:BB:CC:DD:EE:FF ,就可以用

发送魔术封包唤醒远程机器。

其实还有其他一些细节,以后有机会慢慢补充吧。

参考文章:

[1] HowTo: Wake Up Computers Using Linux Command [ Wake-on-LAN ( WOL ) ]


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7485367.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-06
下一篇2023-04-06

发表评论

登录后才能评论

评论列表(0条)

    保存