- Разбудить компьютер по сети linux
- WOL: Приключения «Волшебного Пакета» в Linux
- Приступим
- Операционные системы Astra Linux
- Аппаратная часть
- Прошивка / BIOS
- Настройка интерфейса
- stretch
- Squeeze
- После squeeze
- Отправка WOL сообщений
- WOL чувствительность
- WOL Persistence
- Kernel 2.6
- Debugging state with ethtool
- Conclusion
- 5. Настройка Wake-on-Lan¶
- Требование к ведомому компьютеру¶
- Требование к ведущему компьютеру¶
- Принцип работы¶
- Реализация¶
Разбудить компьютер по сети linux
Как настроить Wake On Lan в Linux-01
Всем привет сегодня расскажу как настроить Wake On Lan в Linux.
WakeOnLan (WOL) — это технология позволяющая включить компьютер, методом отправки на него специального пакета данных, называемыми Magic Packet. Принцип работы этой технологии таков, что при выключении компьютера он переходит в дежурный режим и переводит сетевую карту в режим пониженного потребления, просматривая все поступающие пакеты из сети. Если сетевой адаптер обнаружит Magic Packet, он выдаст сигнал на включение компьютера. Примечание: для использования данной технологии необходима поддержка данной функции (технологии) сетевым адаптером, почти все современные сетевые адаптеры поддерживают данную технологию.
В данном посте мы рассмотрим настройку данной функции на примере ОС Linux.
1. В первую очередь мы просмотрим список наших сетевых интерфейсов используя утилиту ethtool:
ifconfig
В ответ получим список наших используемых сетевых интерфейсов (в моём случае он 1):
eth0 Link encap:Ethernet HWaddr 6c:62:6d:f0:ce:b4
inet6 addr: fe80::6e62:6dff:fef0:ceb4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4528 errors:0 dropped:0 overruns:0 frame:0
TX packets:491 errors:0 dropped:0 overruns:0 carrier:1
collisions:0 txqueuelen:1000
RX bytes:686281 (670.1 KiB) TX bytes:61590 (60.1 KiB)
Нам необходим интерфейс который имеет доступ к внешней сети (в моём случае eth0). Теперь проверим поддерживает ли сетевой адаптер данную технологию и настроим её используя утилиту ethtool. Устанавливаем её:
apt-get install ethtool — для Debian
yum install ethtool — для CentOS
и запустим её, для просмотра информации о сетевом интерфейсе:
ethtool eth0
В ответ мы получим всю информацию о нашем сетевом интерфейсе:
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: pg
Wake-on: d
Current message level: 0x0000003f (63)
drv probe link timer ifdown ifup
Link detected: yes
Где Supports Wake-on: pg — означает что наш сетевой интерфейс поддерживает технологию Wake On Lan, Wake-on: d — но она отключена.
Wake On Lan можно включить вручную 1 командой, но при каждой перезагрузке нашей машины он будет деактивироватся, для этого мы создадим и будем использовать специальный скрипт.
Для этого выполняем следующее:
cd /etc/init.d/
nano wakeonlanconfig
Даём права скрипту:
chmod a+x wakeonlanconfig
Проверяем что всё нормально вводим команду:
/etc/init.d/wakeonlanconfig
Если ничего в ответ не получили, значит всё хорошо и можно проверить на практике.
Вот так вот просто настроить Wake On Lan в Linux
WOL: Приключения «Волшебного Пакета» в Linux
Совсем недавно LeeMiller описал как воспользоваться посылкой «волшебного пакета» для удаленного включения компьютера под управлением Windows, большое ему спасибо.
Очень странно, что ни кто не спросил в комментариях, — А как же быть с Линуксом? Ничего не получается, у него нет, как минимум, Пуск — Панель Управления — Сетевые Подключения!
Либо все и так всё знают, либо это никому не надо, но я, всё же, рискну об этом написать.
Пост будет творческой переработкой моего стародавнего HowTo, опубликованного на forum.ubuntu.ru, написанного, в свою очередь, после чтения англоязычных мануалов.
UPD: перенёс в «Железо», поближе к топику-мотиватору. Смотрится странно, выслушаю пожелания на перенос в другое место.
Всю теорию и настройку BIOS’а я опускаю, её замечательно разобрал LeeMiller.
Нашей задачей будет заставить сетевую карту оставаться в ждущем режиме после выключения компьютера. Если в Windows для этого достаточно поставить одну галку, то в Linux настройки сетевой карты не запоминаются и надо их производить при каждом запуске системы. Для этого понадобится сделать скриптик и поставить его на загрузку ОС.
Опыты ставились над Ubuntu, но я думаю что с «другими линуксами» проблем возникнуть не должно.
Приступим
Наблюдаем результат наподобие
eth0 Link encap:Ethernet HWaddr 01:23:45:67:89:ab
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::215:f2ff:fe6f:3487/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:71495 errors:0 dropped:0 overruns:0 frame:0
TX packets:76190 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23164212 (22.0 MiB) TX bytes:7625016 (7.2 MiB)
Interrupt:217 Base address:0xd400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1290 errors:0 dropped:0 overruns:0 frame:0
TX packets:1290 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:161182 (157.4 KiB) TX bytes:161182 (157.4 KiB)
В данном примере у нас одна сетевая карта, eth0. Если карт несколько, то их несколько 🙂
— Теперь создаем сам скрипт, для этого сначала необходимо получить права администратора:
Здесь я хочу обратить внимание на параметры: -s eth0 wol значит «заставить WOL карточки eth0» g — «ждать волшебного пакета». У WOL есть еще пяток вариантов чего ждать, но к данной теме это не относится.
Если никакого вывода не последовало и показалась следующая строка ввода — значит всё прошло гладко.
— Проверяем на практике.
Распечатываем данное руководство, выключаем первый компьютер и идём ко второму 🙂
Шлём пакет одним из предложенных LeeMiller’ом способов. Если способы не нравятся — рекомендую свой любимый, простенький веб-сервис, которым можно воспользоваться даже при помощи браузера в сотовом телефоне.
Хочу обратиться к тем, кто умнее меня, — если есть (наверняка есть) более красивый способ реализации — сообщайте, будем обновлять знания!
И благодарю LeeMiller’a за то что отсыпал кармы из волшебного пакета, без этого ничего бы не вышло.
Операционные системы Astra Linux
Оперативные обновления и методические указания
Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).
1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).
Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».
На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.
Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!
Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.
Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.
В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.
Очередные обновления (версии) предназначены для:
Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:
Ввиду совершенствования нормативно-правовых документов в области защиты информации и в целях обеспечения соответствия информационных актуальным требованиям безопасности информации, а также обеспечения их долговременной эксплуатации, в том числе работоспособности на современных средствах вычислительной техники, рекомендуется на регулярной основе планировать проведение мероприятий по применению очередных и оперативных обновлений операционной системы.
Немного заметок об особенностях работы Wake On LAN (WOL) в операционной системе Debian.
Аппаратная часть
Более новые материнские платы с встроенными сетевыми картами поддерживают Wake On LAN без необходимости каких-либо выводов / кабелей.
Прошивка / BIOS
Настройка интерфейса
stretch
Добавьте этот файл:
перезагрузитесь. Проверьте работу:
Директива Wake-on: g означает, что всё работает.
Squeeze
Для Squeeze ethtool параметры могут быть установлены непосредственно из /etc/network/interfaces. Результат выше может быть достигнут так:
Скрипт /etc/network/if-up.d/ethtool будет заботиться о вызове ethtool по ifup. Читайте /usr/share/doc/ethtool/README.Debian для более полной информации.
Дальше можете выключить систему и приготовить остальные системы, чтобы разбудить её.
После squeeze
После аппаратной активации Wake On LAN также необходимо активировать его в программном обеспечении. Это делается с использованием программы ethtool, которая говорит интерфейсу отвечать на волшебный пакет (the magic packet). Замените eth0 на имя вашего сетевого интерфейса:
Это можно автоматизировать с помощью записи в /etc/network/interfaces:
Это запускает ethtool после каждого подъёма интерфейса eth0, а также после его отключения, таким образом WOL должен работать даже в случае, когда сеть отключена некорректно.
Отправка WOL сообщений
Я установил пакет etherwake в контролирующей системе для отправки «Magic Packet» к моему компьютеру для пробуждения. Программа должна быть запущена от имени root для отправки пакета (Я использую sudo для её запуска).
WOL чувствительность
Я нашёл, что не хочу каких-либо Wake On LAN настроек, за исключением Wake on «Magic Packet» (g). Я хочу только включать мою машину тогда, когда я ей это говорю, ни одноадресных (u), широковещательных (b) или многоадресных (m) сообщений.
WOL Persistence
Kernel 2.6
With a 2.6 kernel we’re using /etc/modprobe.d. You may be using /etc/modprobe.conf, but if it’s not including /etc/modprobe.d you’re probably getting told about that each time you boot and some stuff may not be configured properly. I’m using /etc/modprobe.d and I added a file local.conf into the directory. It says:
ethtool comes from the ethtool package, so you’ll need to install that unless your card supports a load option to set WOL. If that’s the case I’d make an local.conf file with the appropriate options line, maybe something like:
Testing on another machine with a C3905B-TXNM and a 3C905C-TXM that uses the 3c59x module to drive them both I found that ethtool was unable to query them or set the WOL setting, but that the enable_wol=1 setting did work and was required.
While I was messing with these settings, I noticed that both 8139too and 8139cp were loading, but loading just 8139cp alone failed since my chipset isn’t new enough so I blacklisted it.
Debugging state with ethtool
After an hour struggling with why my system still didn’t work I started throwing in the ethtool query command all over the place to see what the deal was:
I found that (at least with my 8139too driver on Debian 3.1/Sarge) the install line was working when I’d modprobe 8139too, but ifup also resets the WOL setting, so I added an up line to /etc/network/interfaces under eth0:
I kept the ethtool command in /etc/modprobe.d/local.conf in case I boot and ifup isn’t executed before shutting down.
Conclusion
Wake On LAN works on Debian and opens some new options up to me.
I can log into my gateway and boot my desktop, grab what I need and then power it back off remotely. I’m using DHCP with MAC-to-IP mappings so I can look in that file on my gateway system to know the MAC address of the system I wish to wake up. If I didn’t have that I could keep a text file.
My next feat is to have non-essential systems power-off (not just halt) on a power outage to extend the battery runtime for the essential systems and then use WOL to power the other systems back on after power is restored and the battery has hit some specific charge level. I think some settings with halt or APM or ACPI are not right on those systems. See OffAndOnAgain.
5. Настройка Wake-on-Lan¶
Требование к ведомому компьютеру¶
Требование к ведущему компьютеру¶
Принцип работы¶
Ведомый компьютер находится в дежурном режиме (stand by) и выдает питание на сетевой адаптер. Сетевой адаптер находится в режиме пониженного энергопотребления, просматривая все пакеты, приходящие на его MAC-адрес, но ничего не отвечая на них. Если один из них окажется Magic Packet, то сетевой адаптер выдаёт сигнал на включение питания компьютера.
Реализация¶
Для того, чтобы перевести сетевую карту в режим WoL, используется команда
Для выключения режима WoL
Сетевой адаптер может поддерживать сохранение состояния, в которое его перевели, но может и сбрасывать (чаще всего на d), поэтому при каждой загрузке необходимо будет устанавливать нужный режим WoL.
Для пробужения компьютера используем утилиту wol на ведущем компьютере
При работе с программами следует учитывать, что не все компьютеры включаются сразу после подключения в электрическую сеть. Это связано с отсутствием процесса инициализации подачи питания на сетевую карту (компьютер еще не включался и не знает, какие устройства следует питать чтобы получать специальные сигналы, среди которых будет магический пакет). Поэтому следует произвести одно предварительное включение вручную. Если существует необходимость избавиться от данной проблемы (например, сервер закрывается на ключ или находится очень далеко), следует установить в BIOS параметр питания Wake After Power Fail в значение ON.