1. Обзор: почему это нужно?
Оставлять настольный компьютер включенным 24 часа в сутки в доме или офисе потребляет много электроэнергии и ведет к повышенным затратам на обслуживание.
Поэтому я задумался, как можно удаленно включать целевой настольный компьютер с помощью маленького сервера, который работает 24 часа в сутки, такого как Raspberry Pi.
Для этого я разработал стратегию, используя функцию "Wake-on-LAN (WOL)".
- Настройка BIOS настольного компьютера: включение функции WOL
- Настройка Linux (Ubuntu): сетевой адаптер должен оставаться активным даже после выключения системы
- Настройка Raspberry Pi: создание и автоматизация скрипта для отправки магических пакетов
Необходимые пакеты:
- wakeonlan
(для отправки магических пакетов с Raspberry Pi или сервера)
2. Окружение
- Целевой ПК: настольный компьютер с установленным Ubuntu 24.04
- Сервер: Raspberry Pi 5 (Ubuntu Server 24.04)
- Сеть: подключены к одной локальной сети (рекомендуется проводное соединение)
3. Настройка BIOS настольного компьютера
Для использования Wake-on-LAN очень важно правильно настроить BIOS материнской платы.
Как настроить BIOS
В BIOS настройте следующие параметры. Я использовал материнскую плату GIGABYTE, другие пользователи могут настроить похожие параметры на своих платах.
- Вход в BIOS/UEFI Setup при загрузке настольного компьютера (обычно клавиши
DEL
,F2
) - Включите следующие параметры:
ERP (связанный с режимом энергосбережения)
- Настройка ERP
: Disabled (выключить), режим энергосбережения может мешать функции WOL.
Включение CSM
- CSM Support
: Enabled
- После настройки CSM могут появиться следующие параметры (в случае материнской платы GIGABYTE):
- LAN PXE Boot Option ROM
: оставить отключенным
- Опции загрузки OpROM
: Legacy
- Другие PCI-устройства
: Legacy
Resume by LAN / Power On by PCI-E
- Некоторые платы автоматически поддерживают это без дополнительных настроек → даже если параметр не отображается, это нормально.
- Сохранение и перезагрузка
※ Названия параметров могут немного различаться в зависимости от производителя, ищите похожие параметры, такие как 'Wake', 'Power On by PCI'.
4. Настройка Linux (Ubuntu) на настольном ПК
На Ubuntu сетевой интерфейс (NIC) должен оставаться активным, даже когда система выключена.
1. Проверьте имя сетевого интерфейса
ip a
Пример результата:
2: enp4s0: ...
link/ether <AA:BB:CC:DD:EE:FF> ...
enp4s0
: проверьте имя сетевого интерфейса. (Это имя проводного LAN-устройства на настольном ПК, оно может отличаться в зависимости от устройства.)AA:BB:CC:DD:EE:FF
: MAC-адрес (целевой для магического пакета) ※ Обратите внимание на безопасность при раскрытии MAC-адреса.
2. Установите ethtool
sudo apt update
sudo apt install ethtool
3. Проверьте и настройте состояние WOL
sudo ethtool enp4s0 | grep Wake
Пример результата:
Supports Wake-on: pumbg
Wake-on: d
d
→ отключено- Включите с помощью следующей команды:
sudo ethtool -s enp4s0 wol g
Проверьте снова:
Wake-on: g
4. Настройка автоматического включения при загрузке (необязательно: применимо, если Wake-on:g отключается после перезагрузки)
После Ubuntu 20.04 /etc/rc.local
больше не поддерживается по умолчанию, поэтому рекомендуется использовать метод с сервисом systemd.
Создание /etc/rc.local
:
sudo nano /etc/rc.local
Добавьте выше exit 0
:
/sbin/ethtool -s enp4s0 wol g
exit 0
Сохраните файл и дайте права на выполнение:
sudo chmod +x /etc/rc.local
Может потребоваться дополнительная настройка службы systemd.
5. Отправка магических пакетов с Raspberry Pi
1. Установите пакет wakeonlan
sudo apt install wakeonlan
2. Выполните команду WOL
wakeonlan AA:BB:CC:DD:EE:FF # Вставьте сюда MAC-адрес, который вы проверили ранее.
3. (по желанию) Зарегистрируйте псевдоним
# Вставьте MAC-адрес удаленного ПК, который вы хотите включить, вместо AA:BB:CC:DD:EE:FF.
echo "alias wakeup_dude='wakeonlan AA:BB:CC:DD:EE:FF'" >> ~/.bashrc
source ~/.bashrc
→ После этого вы сможете легко запускать, как показано ниже:
wakeup_dude
6. Результаты
- Настольный компьютер автоматически включается после получения магического пакета, даже когда он полностью выключен
- Успешно завершено удаленное включение через Wake-on-LAN!
7. Безопасность
- Безопасность соединения SSH сервера Raspberry Pi, настройки безопасности маршрутизатора, настройки UFW и другие параметры безопасности должны быть обязательно усилены.
- Рекомендуется использовать переадресацию SSH или VPN для удаленного доступа.
8. Пример использования
# Подключение извне
ssh username@<your_ip_or_domain> -p <your_ssh_port>
# После подключения
wakeup_dude
🎉 Автоматическое включение настольного компьютера!
9. Примечания
- Wake-on-LAN работает только через проводной LAN (Wi-Fi не поддерживается)
- Некоторые платы могут работать в состоянии
Suspend
, но могут ограничиваться в состоянииShutdown
. (В платах GIGABYTE подтвержден успех даже в состоянии Shutdown)
Создавая настольную среду, которая "включается только по мере необходимости", становится возможным умное и эффективное управление серверами.
댓글이 없습니다.