分享

通过Wake On LAN遠程開機(以遠程機器Linux爲例)

 用勿龍潛 2019-12-28
只要主板BIOS設置裏有Wake On LAN這個功能設置,即可開啟遠程開機功能。
前置條件:
待開機器与操作機器在同一網段內
待開機器電源和網線都已接通
待開機器網卡和主板均支持遠程開機並在BIOS裏已經設置了網絡喚醒(WOL)開機。

一、開始配置待開機:

登錄需遠程喚醒開機的機器,這裏以Linux系統爲例,如果是WINDOWS系統,則可以直接點開網卡的屬性,打開相關WOL的設置即可。這裏只講LINUX下如何操作:
1、運行ethtool命令查看網卡是否支持WOL:
ethtool eth0
這裏eth0即待喚醒機器的網卡,不同linux發行版可能名稱不同,可以用ifconfig或ip a 命令查看一下,如果提示ethtool命令沒找到則自行安裝即可,archlinux用pacman -S ethtool來安裝,centos用yum install ethtool命令安裝。

在ethtool命令的輸出信息中找到這兩行:
supports wake-on: pumbg
wake-on: d

d 表示 disable,意思就是禁止,我們要啟用一下:
ethtool -s eth0 wol g
再ethtool eth0看一下,顯示wake-on: g 則表示網卡的WOL功能已開啟

但是這裏有一個問題,每當機器重啟或關閉後再次開機,這個設置就失效了,又恢復默認值了,要讓它永久生效有兩個辦法:
解决方法一:
修改/etc/sysconfig/network-scripts/ifcfg-eth0 ,添加如下內容:
ETHTOOL_OPTS="wol g"
解决方法二:
將ethtool設置寫入/etc/rc.d/rc.local文件中,這樣系統每次啟動之後就會自動執行ethtool命令。

最後用ifconfig或ip link命令查看一下網卡的MAC地址,並記下來,之後喚醒此機器時需要指定MAC地址。

解決方法三:

前兩個解決方法适用於採用了sysV init體系的CentOS 7之前的版本,已經不适用於以systemd替換sysV的linux發行版,比如Arch Linux,我使用的系統正是Arch Linux,要使這個設置永久生效就得自己編寫一個systemd風格的啟動文件:

vim /usr/lib/systemd/system/rc.local.service

[Unit]
Description="/etc/rc.local Compatibility"

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardInput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

保存退出。具體每一行都是什麼意思就不細說了,只要注意ExecStart這個參數,它指定了開機自啟動的腳本文件:/etc/rc.local,創建這個文件,加入以下內容:

#!/bin/sh

/usr/bin/ethtool -s enp3s0 wol g

保存退出。將此文件設置爲可執行:chmod +x /etc/rc.local

然後註冊並啟用rc.local.service服務:

systemctl enable rc.local.service

至此,問題解決。

二、在操作機上安裝WOL客戶端軟件:

  1. 在Linux系統中可安裝一個命令行的工具,archlinux可以執行pacman -S wol來安裝,其他Linux系統可用各自的包管理工具來查找並安裝。

  2. 關閉目標機器,在操作機上運行wol命令:

        wol xx:xx:xx:xx:xx:xx
        wol命令後面直接跟待開機器的MAC地址,每兩位以:隔開。

此時,待開機器就會啟動了,過一會就可以通過ping命令驗證機器是否已經正常啟動了。

如果操作機是WINDOWS系統,則可以自行去下載wol for windows的軟件來操作,這類軟件多如牛毛,就不細說了。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多