UPSNAP - WOL (Wake On Lan) сервис. Удаленное включение сервера.

Самохостятам привет!

В чатах сообщества возник вопрос про WOL и я решил перенести из описания под видео в отдельную тему команды, которые помогут Вам проверить статус и активировать WOL, так и поисковые запросы сюда Вас смогут привести.

Что такое WOL?

Кратко - это технология позволяющая с одного устройства в сети - включить другое.

Про разницу между включать и ''будить''

И не смотря на то, что мы сервер с активированным WOL можем стандартно shutdown(выключать), а не suspend(отправлять в сон).
Технически - Владимир прав, мы настраиваем некий “режим сна”.
На что это влияет? ну как минимум на потребление не 0Вт, а 1-2Вт в час, т.е. в таком режиме Ваш сервер будет потреблять 24Вт в сутки, 720Вт в месяц = при тарифе 4р за 1 кВт = 2,9 рубля в месяц.

Само собой на включаемом устройстве должна быть поддержка этой технологии.
Обычно это означает:

  • сетевая карта должна поддерживать
  • WOL активирован в BIOS
  • в Вашей хост системе WOL тоже активирован

Ну а более подробно о том:

  • как это выглядит
  • как настроить
    на примере сервиса UpSnap и применительно к системе на базе Proxmox

Команды:

  1. Установить ethtool
apt install ethtool
  1. Посмотреть информацию о сетевом устройстве
ethtool {interface id}

Пример: ethtool enp2s0

  1. Как вывести Ваши сетевые интерфейсы
ip a
  1. Включить wake on lan
ethtool -s {interface id} wol g

Пример: ethtool -s enp2s0 wol g

  1. Активируем авто включение wol g через редакцию network/interfaces
    (простой способ)
nano /etc/network/interfaces

Добавляем последней строчкой, в моем примере к vmbr0

post-up /usr/sbin/ethtool -s {interface id} wol g

Пример из ролика: post-up /usr/sbin/ethtool -s enp2s0 wol g

  1. Активируем авто включение wol g через создание systemd сервиса(более сложный способ)
nano /etc/systemd/system/wol.service

Наполнение файла

[Unit]
Description=Wake-on-LAN for {interface id}
Requires=network.target
After=network.target

[Service]
ExecStart=/usr/sbin/ethtool -s {interface id} wol g
ExecStop=/usr/sbin/ethtool -s {interface id} wol g

[Install]
WantedBy=multi-user.target

Команды для выполнения после сохранения файла сервиса

systemctl start wol.service
systemctl enable wol.service
systemctl is-enabled wol.service
systemctl daemon-reload

Всем удачного самохостинга!

доп теги для поиска:

Как удаленно включить сервер?
Как разбудить сервер?

2 лайка

Может стоит добавить в верхнее описание, что это не совсем “включить удаленно”, а именно “разбудить” специальным образом отправленное в сон устройство? Просто выключенное устройство таким образом не включишь.

added

1 лайк

я видел вол на базе есп32 кажется или типа того

там можно добавлять мак адреса в веб морде и такой контроллер ничего не потребляет

я еще подумал, что надо сделать свой контроллер, который может

  • эмулировать кнопку старта
  • эмулировать ресет
  • держать старт 5 сек до принудительного выключения
  • считывать состояние зеленого светодиода

это базовый минимум и можно это сделать на 8 каналов

а если брать епс32-с2, то можно сделать 1 канал, зато эмулировать усб клавиатуру

можно макросы писать, чтобы зайти в биос и там что-то поменять, но это гиморно уже, так что многоканальный вариант с аппратными кнопками был бы лучше

1 лайк

Случайно пропустил это видео, но в итоге собрал небольшой веб-инструмент: мини-панель управления, размещённую на том же хостинге, где крутится Proxmox для запуска ноута в той-же локальной сети.

Основной функционал

Панель — это веб-страница с карточками компьютеров. Для каждой машины отображается статус (онлайн / офлайн) и доступны кнопки управления:

  • Включить

  • Перевести в спящий режим

  • Обновить IP — запускает нужный скрипт на удалённой машине

Техническая часть

  • Бэкенд: простой PHP, работающий как API

  • Фронтенд: чистый JavaScript (ES6+) с асинхронными запросами через fetch

В итоге получился удобный инструмент для быстрого управления удалёнными машинами — всегда под рукой и без лишних действий.
Конфигурация компьютеров задаётся через файл настроек.

Если кому интересно — могу поделиться.

Ну тогда на тему WoL, для пользователей Home Assistant есть неплохой встроенный вариант работа с данным функционалом

Компонент wake on lan, предоставляет

  • Кнопку, по нажатии которой отправляется пакет
  • Переключатель, с более сложной логикой
    • Состояние берется на основе пинга хоста
    • При включении отправляется WoL пакет
    • При выключении можно вызывать собственное действие, например, подключение по SSH и выключение хоста

Пример конфигурации:

switch:
  - platform: wake_on_lan
    name: "TARGET"
    mac: XX:XX:XX:XX:XX:XX
    turn_off:
      action: shell_command.turn_off_TARGET

shell_command:
  turn_off_TARGET: "ssh hass@TARGET sudo pm-suspend"
4 лайка

накину тогда еще прогу под виндовс, может на работе кому пригодится

2 лайка