WOL开启教程 ​

WOL是啥? ​

  • 一种局域网开机协议,只要你的电脑都在局域网内,并且是插了网线,就可以根据mac地址来远程开机。
  • 例如。电脑a与电脑b电脑c都是一个局域网,a为开机状态,b,c为关机状态,可以通过a输入指令来开机b,c电脑。前提,a,b,c电脑均为有线连接的方式上网,并且都插了电源。

准备工作: ​

  1. 需要主板支持(大部分新电脑从2010后都支持)

  2. 需要去主板BOIS开启相关设置(下面以华硕主板为例)。

  3. 电脑关机,按F2进入BIOS设置。

  4. 选择右下角的高级设置(Advance Mode)

  5. 选择高级,APM(高级电脑管理)设置

  6. 开启下面几个设置。断电后电源状态(可选,电源开启),CEC就绪(可选功能,可以不开启),ErP支持(可选,如果有就开一下,),PCI-E设备唤醒(必选,打开为开机状态,有的主板直接叫Wake on Lan)

image.png

3. 退出,保存并退出。
image.png

Windows开启WOL设置(被唤醒机) ​

  1. 打开设备管理器(win10是右键左下角菜单,可以显示出),打开网络适配器,选择第一个有线网卡(也不一定是第一个,反正看名称带PCIe的那个网卡就对了)。

image.png

2. 双击网卡名称,选择电源管理,开启允许此设备唤醒计算机,开启“只允许魔书包唤醒计算机”并且检查“允许此设备唤醒计算机”已经打开。

image.png

3. 获取你的网卡MAC地址(非常关键)

以win11为例:设置-网络和Internet-以太网-属性,找到最下面的物理地址(MAC)即可。

image.png

win10的话,就是去右下角,有个有线上网的图标,查看网络连接信息,然后点击上面的“复制”,复制后得到所有网络连接信息,可以从中筛选出mac地址。

不懂得可以去百度一下哈。

Linux打开Wol设置(被唤醒机,以Ubuntu为例) ​

  1. 搜索wol软件包。
bash
apt search wol

2. 共有两个软件,都安装一下(其实装一个也可以)

bash
sudo apt install wakeonlan etherwake

3. 查询网卡名称以及mac地址,输入ifconfig

bash
enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.xx.xx  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::f22f:74ff:fedb:ccfa  prefixlen 64  scopeid 0x20<link>
        ether xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 83277  bytes 66831484 (66.8 MB)
        RX errors 0  dropped 2  overruns 0  frame 0
        TX packets 38928  bytes 9133089 (9.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

其中inet为内网ip地址,ether为Mac地址。

4. 查看该网卡是否开启wol

bash
sudo ethtool enp4s0

显示如下:

bash
Settings for enp4s0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                             100baseT/Half 100baseT/Full 
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: yes

其中最关键的是Wake-on: g,如果不是g而是d,说明网卡没有开启wol功能,如果没有这个设置,那可能网卡就不支持局域网唤醒。

假设你的是显示d,你需要用这条命令开启wol唤醒。

bash
sudo ethtool -s enp4s0 wol g  # 其中enp4s0为网卡名称

然后重新查看一下,你会发现Wake-on:d`会变成Wake-on:g了

注意:如果你是手动用上面的命令开启的远程唤醒,那么,下次开机后Wake-on:g又会变成Wake-on:d,你需要把ethtool -s enp4s0 wol g加到开机自启动命令里面。可以参考rc.local的方式,或者systemd的方式,此处不在扩展。

用Ubuntu来唤醒客户端主机 ​

  • 假设我想用ubuntu来唤醒任意一个局域网主机,windows或者linux。
  • 可以用下面两条命令中的任意一条。
bash
wakeonlan xx:xx:xx:xx:xx:xx # 后面接待开机主机的MAC地址,推荐用这种方式。
  • 也可以用这种方式
bash
sudo etherwake -i enp4s0 xx:xx:xx:xx:xx:xx  # enp4s0为ubuntu的网卡名称,非客户端网卡,后面是客户端MAC地址

用CenterOS来唤醒客户端主机 ​

  • 假设公司有一个centerOS服务器,并且长期开机,并且你能够利用ssh登录这台服务器。
  • 确保,已经安装这个软件
bash
sudo yum install net-tools
  • 唤醒开机方式
bash
sudo ether-wake -i eno1 xx:xx:xx:xx:xx:xx  # eno1是CenterOS的有线网卡名称,非客户端网卡,后面是MAC地址。

用windows来唤醒客户端主机 ​

[参考这篇](https://www.betaflare.com/3380.html)

补充: ​

  • 问:远程开机有啥用?
  • 答:可以省电,不用一直开着电脑,想用就用。
  • 问:开机后我该如何连接刚刚被开机的电脑?
  • 答:可以在被唤醒的机器提取装好远程软件,比如向日葵,Todesk,然后把软件设置为开机自启,这样被唤醒的机器远程开机后,这些远程软件自动开启,你就可以通过远程来控制你的办公电脑了。

补充-安装todesk ​

  1. 下载软件:[官网](https://www.todesk.com/)
  2. 注册账号,登录(推荐,这样不用记自己的远程id了)
  3. 打开安全设置,设置临时密码与安全密码都可以使用,这样就可以用自己设置的安全密码登录,更加方便。

image.png

4. 勾选基本设置的开机自启动,这样每次被唤醒该软件都可以开启了。

image.png

其它:openvpn使用教程: OpenVpn使用教程 ​