① 电脑网络唤醒教程
我们以 Windows PC 电脑为例子,大概谈谈怎样才能设置电脑远程唤醒吧。由于不同牌子的主板、网卡、路由器在选项设置的名称和位置上都基本都不相同,下面的教程仅供参考,但思路基本思路大同小异,请大家根据实际情况进行设置。
1. 设置主板 BIOS
首先,我们要在主板 BIOS 里面设置 WOL 唤醒功能的开关,近年来的主板一般都会支持唤醒,但每个主板的 BIOS 选项不尽相同,建议参考说明书。
BIOS 里关于 WOL 网络唤醒的选项一般是类似这些字眼 wake on lan;resume on lan;power on PME;power on by PCI-E device; Power on by Onboard LAN 等等,将其设为 Enabled 即可,这是必须条件。
2. 设置网卡驱动
其次,在网卡驱动里设置开启 WOL 相关选项。在设备管理器中找到网卡设备,右键选择“属性”,然后在“电源管理”里面开启“允许此设备唤醒计算机”,然后在“高级”一栏里找到“关机网络唤醒”、“魔术封包唤醒”里设置成“开启”。
同样,这里的选项名称在不同厂商不同网卡都不一样的,有些网卡驱动是英文的,类似选项为 Wake up by Magic Packet; wait for link 等,因此需要大家自行挖掘了。
3. 设置局域网固定 IP / 获取网卡的物理地址
设置好前面的两项之后,我们就可以进行 WOL 唤醒了。实施 WOL 需要知道设备的 IP 地址以及网卡的物理地址 (MAC)。网卡的物理地址我们可以通过 ipconfig /all 命令来获得,一般是像 00-E7-0B-37-26-1F 的字符串。
同时,这里也能看到本机在局域网内的 IP 地址。但是,绝大多数的电脑默认都是通过路由器的 DHCP 动态分配 IP 的,每次开机后的 IP 可能都会变化,因此我们需要在路由器里,为电脑设置一个静态的固定 IP 地址,譬如 192.168.1.123。以 TP-Link 为例:
这样,我们就可以获得 WOL 唤醒的两个必要的参数了,至此我们已经完成了“局域网内唤醒”的配置。现在我们通过上面推荐的各种 WOL 软件即可对局域网内的电脑实施远程唤醒了。
PS:如果你使用 Windows 10 无法正常 WOL 唤醒的话,请关闭系统的“快速启动功能”再次尝试。
更进一步:设置通过互联网进行 WOL 远程唤醒
虽然 WOL (Wake on Lan) 网络唤醒原本的设计就是 LAN 局域网环境下使用的,但其实我们也是可以想办法让其在 WAN 广域网 (即互联网) 下使用——Wake On Wan。这样,在公司唤醒家里的电脑什么的就方便得多了。当然,如果你没有互联网唤醒的需求,这一步骤完全可以省略(其实挺烦的)。
广域网 WOL 主要是要在路由器里配置,首先是跟第3步一样,设置静态固定IP;其次是开启 ARP 绑定 (部分路由器没有这功能,这可能会导致广域网无法持续成功 WOL)。
开启 UDP 端口映射 (端口转发) ,新增一个 UDP 协议的端口 (一般端口号用 7 或 9),指向局域网内需要被唤醒的电脑的 IP,以确保公网的请求能到达最终内网的机器。(如果是群晖 NAS 默认端口号一般是 5000,QNAP 端口号为 4505)
你也可以贪方便“设置 DMZ 主机”指定为需要被唤醒的机器的 IP,这样所有的网络请求都会全部到达内网的指定机器,一了百了。但这样相当于你的机器所有端口都完全暴露在公网上,因此也会增加机器被黑的风险,个人更建议使用端口映射的方式。
最后,非常重要的一点是,由于家用的宽带每天的公网 IP 都会变化,因此我们还需要设置一个 DDNS (动态域名 / 动态 DNS) 来获得一个“固定的域名”,免费的 DDNS 服务有花生壳等,一些路由器或 NAS 厂商也会提供免费的 DDNS 服务。我们在成功设置好 DDNS 之后,则是使用动态域名来代替机器的 IP 地址进行 WOL 即可。
② ESXI 5.5在windows下使用BAT脚本通过SSH进行远程关机
网上搜到一段脚本用来关闭vm,再关机的
# get all the VMs identifiers
VMID=$(/usr/bin/vim-cmd vmsvc/getallvms | grep -v Vmid | awk '{print $1}')
# loop through all the VMs
for i in $VMID
do
# get their state(turned on,off,whatever)
STATE=$(/usr/bin/vim-cmd vmsvc/power.getstate $i | tail -1 | awk '{print $2}')
# if they are running,turn them off (only works correctly if
# vmware tools are installed on the VMs)
if [ $STATE == on ]
then
/usr/bin/vim-cmd vmsvc/power.shutdown $i
fi
done
#shutdown the host itself
sleep 30
/sbin/shutdown.sh
/sbin/poweroff
实际也可以通过运行命令
esxcli system maintenanceMode set -e y
进入维护模式maintenanceMode(Mode的M为大写)
esxcli system shutdown poweroff -d 60 -r test
关机
问题是虚拟机必须关闭了才能进入维护模式,又回到用脚本来自动关闭虚拟机的问题上来了。