Проблемы с wakeonlan в Ubuntu 20.04

Я выполнил инструкции на https://help.ubuntu.com/community/WakeOnLan , но мне трудно заставить его работать. Мой BIOS включен для пробуждения по локальной сети, и я смог сделать это, используя спящий / спящий режим Windows с той же сетевой картой.

0
задан 29 May 2020 в 10:57

2 ответа

Недавно я обновился до 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
1
ответ дан 6 August 2020 в 23:59

Если причина в том, что настройки 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
    
7
ответ дан 14 September 2020 в 17:13

Другие вопросы по тегам:

Похожие вопросы: