Я выполнил инструкции на https://help.ubuntu.com/community/WakeOnLan , но мне трудно заставить его работать. Мой BIOS включен для пробуждения по локальной сети, и я смог сделать это, используя спящий / спящий режим Windows с той же сетевой картой.
Недавно я обновился до Linux Mint 20. После переустановки пакета "wakeonlan" я заметил, что он не работает. Оказалось, что при выключении отключалась опция wakeonlan. Вот как я работал над этим.
На компьютере, на котором вы хотите иметь возможность удаленного пробуждения...
Стать пользователем root...
sudo su
Установите программу wakeonlan на компьютер, который вы хотите удаленно активировать.
apt install wakeonlan
Найдите свой сетевой адаптер, мой называется enp10s0 (обычно называется eth0).
ifconfig -a
Проверьте адаптер Ethernet, чтобы узнать, какое значение установлено для параметра «Пробуждение при включении». См. ссылку ниже для различных опций и их значения. https://www.thomas-krenn.com/en/wiki/Wake_On_LAN_under_Linux
ethtool enp10s0
Неинтерактивное создание скрипта, который установит для параметра «Wake-on» значение «g», что означает «Пробуждение по MagicPacket». . Чтобы следующий шаг (systemd) работал правильно, вы должны включить строку she-bang в первую строку файла.
cat >> /root/wol_fix.sh <<EOF
#!/bin/bash
ethtool -s enp10s0 wol g
EOF
Установите правильные разрешения для сценария исправления.
chmod 755 /root/wol_fix.sh
Неинтерактивное создание скрипта, который будет запускаться при загрузке для запуска скрипта исправления.
cat >> /etc/systemd/system/wol_fix.service <<EOF
[Unit]
Description=Fix WakeOnLAN being reset to disabled on shutdown
[Service]
ExecStart=/root/wol_fix.sh
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
Перезагрузите конфигурацию диспетчера systemd.
systemctl daemon-reload
Включите сервисный скрипт wol_fix.
systemctl enable wol_fix.service
ПРИМЕЧАНИЕ: необходимо перезагрузить компьютер, чтобы загрузочный сценарий вступил в силу. Или вы можете запустить скрипт /root/wol_fix.sh вручную, на этот раз только перед следующим выключением или перезагрузкой.
reboot
На компьютере, который вы хотите использовать для удаленного пробуждения другого компьютера...
# [another_computer]$
Неинтерактивное создание сценария для пробуждения компьютеров в сети. «255» означает только широковещательную передачу на определенное подмножество диапазона IP-адресов в локальной сети.
cat >> /home/$USER/wakeuppc.sh <<EOF
wakeonlan -i 192.168.1.255 <MAC ADDRESS>
EOF
Добавить разрешение на выполнение для сценария вызывающего абонента wakeonlan.
chmod +x /home/$USER/wakeuppc.sh
Если причина в том, что настройки WoL не сохраняются после перезагрузки, как описано в предыдущем ответе, есть более простое решение, которое опубликовано здесь: https://askubuntu.com/a/1051894/883129
ethtool
и wakeonlan
. /etc/network/if-up.d/wol_fix
со следующим содержимым:
#!/бин/ш
/sbin/ethtool -s [карта] wol g
где [карта] — имя вашего сетевого адаптера, например eth0
, enp4s0
и т. д. (вы можете проверить это с помощью команды ifconfig
). sudo chmod +x /etc/network/if-up.d/wol_fix