328 字
2 分钟
Linux配置Wake On LAN(WOL)

参考 https://zhuanlan.zhihu.com/p/666676538

  • 搞一个名为wol的脚本:
vim wol.sh
  • 粘贴以下内容(已包含网络设备自动识别):
#!/bin/bash
# 判断系统发行版
if [ -f /etc/redhat-release ]; then
DISTRO="centos"
elif cat /etc/issue | grep -q -E "Debian"; then
DISTRO="debian"
elif cat /etc/issue | grep -q -E "Ubuntu"; then
DISTRO="ubuntu"
elif cat /etc/issue | grep -q -E "Proxmox"; then
DISTRO="debian"
else
echo "无法识别发行版,请检查!"
exit 1
fi
# 安装 ethtool
case "$DISTRO" in
centos)
yum -y install ethtool net-tools
;;
debian|ubuntu)
apt-get update
apt-get -y install ethtool net-tools
;;
*)
echo "不支持的发行版: $DISTRO"
exit 1
;;
esac
# 获取网络设备名并编号
echo "检测到以下网络设备:"
ip link show | awk -F ': ' '/^[0-9]+:/{print $1 ": " $2}'
# 提示用户选择网络设备
read -p "请输入要配置的网络设备编号: " CHOICE
# 获取用户选择的设备名
DEVICE=$(ip link show | awk -F ': ' '/^[0-9]+:/{print $2}' | sed -n "${CHOICE}p")
# 确认用户选择
read -p "您选择的设备是: $DEVICE,是否确认?(y/n): " CONFIRM
if [[ "$CONFIRM" != "y" ]]; then
echo "操作已取消。"
exit 1
fi
# 生成服务文件
cat >/etc/systemd/system/wol.service<<EOF
[Unit]
Description=Configure Wake On LAN
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s $DEVICE wol g
[Install]
WantedBy=basic.target
EOF
# 启用服务
sudo systemctl enable wol.service
sudo systemctl start wol.service
echo "WOL配置完成,请关闭计算机后测试启用情况"

完成后输入保存退出

Linux配置Wake On LAN(WOL)
https://iiii.fun/posts/linux/linux-wol-setup/
作者
慶靈
发布于
2025-04-06
许可协议
CC BY-NC-SA 4.0