lts есть способ включить режим сна и просыпаться на LAN?

Мне было интересно, возможно ли сделать мой сервер спать после определенного периода времени, но все равно слушать запросы lan. Я использую свой сервер в качестве медиа-сервера, который может использоваться 3 или 4 часа в день, и это действительно пустая трата времени, чтобы он работал все время. Однако я не хочу бегать на второй этаж, чтобы включить его, когда мы хотим посмотреть фильм. Я видел несколько сообщений о прекращении этого, но как вы его активируете?

2 Solutions collect form web for “lts есть способ включить режим сна и просыпаться на LAN?”

Wake on LAN – это функция BIOS и NIC, а не функция ОС, то есть вам нужен поддерживающий BIOS и сетевой адаптер.

После того, как вы включили его в свой BIOS (если можете), вы можете проверить, поддерживает ли NIC поддержку WOL, проверяя вывод ethtool [interface] .

Если значение Supports Wake-on содержит g , ваш NIC поддерживает магические пакеты WOL.

Чтобы проверить, действительно ли он включен, взгляните на значение Wake-on . Если он содержит g , ваш сетевой адаптер поддерживает магическую поддержку пакетов.

Если он не включен, выполните следующие действия:

 ethtool -s [interface] wol g 

Вы должны будете выпустить эту команду каждый раз, когда запускается ваша система, поэтому добавьте ее в соответствующее место. В Ubuntu, возможно, лучшее место было бы как правило up в /etc/network/interfaces или эквивалент для вашего сетевого менеджера.

Я знаю, что это было задано год назад, но я нашел несколько решений. Первый использует powernap и скрипт для проверки конкретных запущенных процессов и может быть найден здесь .

Во-вторых, я видел онлайн вопросы по Linux . Это использует пинг на другой машине.

Я также пропустил маршрутизатор с DD-WRT, чтобы опробовать wd -wrt wiki . Это очень красивые изящные решения, но проблема, с которой я столкнулся, заключается в том, что они не подходят для внутреннего медиа-сервера, потому что журнал только улавливает принятые пакеты извне сети. Если вам нужен только внутренний медиасервер, это просто не работает.

Для dd-wrt это дает действительно хорошее решение для этого, используя VLAN. По сути, сервер на своей внутренней подсети и отслеживает трафик на эту VLAN, тогда работает предыдущий скрипт. Это хорошо работает, но, по моему опыту, маршрутизатор и сборка dd-wrt всякий раз, когда я использовал функцию vlan, сбой DHCP.

Я решил, что я хочу, чтобы решение для разбудить и приостановить мой медиа-сервер автоматически при доступе, которое не зависело от dd-wrt. У меня есть малина pi, поэтому я использовал это. Окончательное решение, которое я нашел для себя, заключалось в написании небольшого сценария bash. Зависимости малины-пи – это etherwake и tcpdump. Оба не установлены по умолчанию на rasbian.

 sudo apt-get install etherwake sudo apt-get install tcpdump 

Сценарий слежения выглядит следующим образом:

 #!/bin/bash pingInterval=60 #time interval, in seconds, between checks that the server is still awake. target=192.168.xx #WOL target ip address targetMAC=00:11:22:33:44:55 #WOL target MAC wake () { tcpdump -i eth0 -c 1 -p host $target etherwake $targetMAC #echo WOL sent to $target at $targetMAC return } while sleep $pingInterval; do varPing=`ping -s 1 -c 2 $target > /dev/null; echo $?` if [ $varPing -eq 0 ]; then #echo ping success else #echo ping fail wake fi done 

Основная идея заключается в том, что она запускается из моей малины-пи, которая разбудит сервер, если он замечает один ARP-запрос для сервера. Если сервер бодрствует, тогда он не будет слушать запрос arp, но посылает несколько писем каждый раз, чтобы убедиться, что он все еще бодрствует.

Я назвал файл wol.sh и сделал его исполняемым. Затем поставьте его в sudo crontab, чтобы запустить @reboot как root. Это для tcpdump, которому необходим повышенный доступ для прослушивания eth0 и etherwake.

 sudo chmod +x /home/pi/wol.sh sudo crontab -e 

добавьте это на дно

 @reboot sh /home/pi/wol.sh > /dev/null 

Спящий скрипт запускается с медиасервера по тому же принципу. Если на сервере нет трафика (за исключением icmp или arp), то в течение интервала сканирования я выбрал 1 минуту. Затем он добавляет счетчик, который я назвал сонливость. После того, как сонливость достигает 10 или 20, это означает, что у него не было движения в течение и 20 минут, тогда он устанавливает, что сонливость равна нулю, тогда он выдает команду pm-suspend чтобы заснуть. Пакеты получаются и sleepiness!=0 тогда это сонливость -1. Поэтому, если он захватывает бродячий пакет или какой-то способ, который вы делаете с маршрутизатора, он не сбрасывает счет обратно до нуля, а просто выполняет -1 из счетчика. Я помещал это там, потому что это позволяет период отсрочки мягко падать в сон, поскольку пакеты уменьшаются в течение определенного периода времени, а не имеют абсолютно нулевые пакеты в течение 20 последовательных минут.

Это, может быть, не самое лучшее, потому что он должен вызывать tcpdump на обеих машинах, вовлекает постоянную запись на диск (на стороне сервера). Для записи на диск я монтировал жертвенный USB-накопитель, и этот файл сохранения сохранен для предотвращения износа моего реального жесткого диска. Я новичок, но я гордился своим маленьким решением.

  • Запуск сценария на Debian 8 (Jessie) с помощью etherwake не будет работать
  • Может ли один ping сетевой адаптер MAC
  • Есть ли способ найти mac-адрес удаленной машины, с которой я подключился, с ssh?
  • Как я могу загружать свой рабочий стол с помощью Wake-on-LAN?
  • Запустить сервер удаленно с помощью SSH
  • Пробуждение по локальной сети через PHY и одноадресную рассылку работает только в первые 30 секунд после pm-suspend
  • Поместите Linux-сервер в режим сна и разбудите его с помощью WOL-пакетов
  • Interesting Posts

    Почему, когда и где используется phy

    NTP не синхронизирует время даже с `tinker panic 0` в /etc/ntp.conf в Centos 7.3. Просмотр VM из приостановленного состояния

    FreeBSD Переустановка постфикса с поддержкой mysql

    Как исключить каталоги NFS с помощью find?

    Как запустить новую оболочку, передать ей новые переменные среды и работать там до выхода?

    Как узнать, кем я являюсь Мошт?

    Не удалось подключить debian к android через bluetooth

    Невозможно использовать ретрансляцию EPEL, получить ошибку NSS -5990 (PR_IO_TIMEOUT_ERROR)

    / proc / net / wireless не отображает значения, если они выполняются как root

    Как перечислить все сетевые подключения Centos 7 (отслеживание соединений)

    Как увеличить лимит открытых файлов для всех процессов?

    nfsroot замерзает каждый раз в то время, предположительно из-за сбоя сети

    Удаление текста с HTML-страницы

    Как сделать фона терминала ярче белого?

    Как я могу повторить последнюю команду без использования клавиш со стрелками?

    Linux и Unix - лучшая ОС в мире.