OpenSource в заметках
Удалённое выключение Linux-системы не представляет особого труда, лишь бы был доступ к SSH. А вот с аппаратным включением системы дело обстоит несколько иначе. В этой статье я расскажу о том, что и как необходимо сделать, чтобы удалённо включить компьютер, поддерживающий технологию Wake On Lan. Wake On Lan поддерживается практически во всех современных материнских платах. Для того, чтобы иметь возможность разбудить компьютер удалённо, необходимо, чтобы в нём был установлен источник питания ATX версии не ниже 2.01, материнская плата, поддерживающая Wake On Lan, а также сетевая плата с поддержкой этой технологии.
Настройка
Определить, поддерживает ли материнская плата вашего компьютера Wake On Lan, можно. зайдя в настройки CMOS Setup в раздел настроек управления питанием. Найдите там опцию «Wake On Lan» и убедитесь, что она включена.
После загрузки системы установите, если необходимо, пакет ethtool, при помощи которого можно в том числе и переключать сетевую плату в режим пробуждения по сигналу Wake On Lan от других машин:
Далее, необходимо определить, поддерживает ли установленная сетевая плата Wake On Lan, и включена ли эта опция:
В строке Supports Wake-On перечислены механизмы, поддерживаемые сетевой платой. В моём примере я пользуюсь методом отправки т. н. Magic Packet, и если вам нужно то же самое, то убедитесь, что в Supports Wake On присутствует буква «g». Буква «d» в строке Wake-on обозначает, что Wake On Lan для данного сетевого интерфейса отключён. Чтобы включить его в режим распознавания Magic Packet, необходимо:
Имейте ввиду, что после включения компьютера, вероятней всего, опция Wake-on опять перейдёт в состояние «d» и, если вам нужно, добавьте приведённую выше команду куда-нибудь в /etc/rc.local.
Теперь всё готово для пробуждения системы по получению Magic Packet. Для того, чтобы его отправить, необходимо знать MAC-адрес сетевого интерфейса включаемого компьютера, поэтому прежде, чем выключать систему, запишите его:
Теперь можно выключать систему:
Включение
Теперь с любого другого компьютера, находящегося в том же сегменте сети (в принципе, это необязательно, но тогда необходимо, чтобы в вашей сети маршрутизаторы корректно пробрасывали широковещательные пакеты), можно включить ранее сконфигурированную удалённую систему. Для этого понадобится утилита wakeonlan, которую необходимо установить, если её ещё нет в вашей системе:
Разбудить выключенную систему теперь можно командой (обратите внимание, wakeonlan не требует прав суперпользователя):
Опцией -p указывается номер UDP-порта, с которого будет отправлен Magic Packet. Указание этой опции обязательно, поскольку по умолчанию wakeonlan использует девятый порт, помеченный в /etc/services как discard, что означает то, что пакет с этого порта отправить не получится. В принципе, можно использовать любой незанятый в системе UDP-порт.
Удаленное включение компьютера linux
опять перейдёт в состояние «d» и, если вам нужно, добавьте приведённую выше
команду куда-нибудь в /etc/rc.local.
Это может не работать (или не сработать второй раз), если выполнялся сброс (переинициализации) карты (в том числе — на ноутбуках после «сна»).
Лучше это делать из:
— Ubuntu/Ddebian: /etc/network/interfaces в post-up / pre-down
— AltLinux — в /etc/net/ifaces/ethX/ifup-post
— в других — в соотв. местах, выполняемых _каждый раз_ после инициализации устройства или перед его отключением.
1.6 , Alex ( ?? ), 01:17, 27/12/2010 [ответить] | + / – |
> девятый порт, помеченный в /etc/services как discard, что означает то, что > пакет с этого порта отправить не получится Бред, это просто название протокола, RFC863. |
1.7 , sam ( ?? ), 17:23, 29/12/2010 [ответить] | + / – |
Если на компьютере несколько сетевых карт обязательно нужно указать в параметр -i адрес Например, если нужно разбудить комп с адресом 192.168.2.34 в сети 192.168.2.0/24 то можно так и указать например широковещательный адрес сети WOL: Приключения «Волшебного Пакета» в LinuxСовсем недавно LeeMiller описал как воспользоваться посылкой «волшебного пакета» для удаленного включения компьютера под управлением Windows, большое ему спасибо. Либо все и так всё знают, либо это никому не надо, но я, всё же, рискну об этом написать. UPD: перенёс в «Железо», поближе к топику-мотиватору. Смотрится странно, выслушаю пожелания на перенос в другое место. Всю теорию и настройку BIOS’а я опускаю, её замечательно разобрал LeeMiller. ПриступимНаблюдаем результат наподобие lo Link encap:Local Loopback В данном примере у нас одна сетевая карта, eth0. Если карт несколько, то их несколько 🙂 — Теперь создаем сам скрипт, для этого сначала необходимо получить права администратора: Здесь я хочу обратить внимание на параметры: -s eth0 wol значит «заставить WOL карточки eth0» g — «ждать волшебного пакета». У WOL есть еще пяток вариантов чего ждать, но к данной теме это не относится. Если никакого вывода не последовало и показалась следующая строка ввода — значит всё прошло гладко. — Проверяем на практике. Хочу обратиться к тем, кто умнее меня, — если есть (наверняка есть) более красивый способ реализации — сообщайте, будем обновлять знания! И благодарю LeeMiller’a за то что отсыпал кармы из волшебного пакета, без этого ничего бы не вышло. Не работает wake on lan в linux, как настроитьПосле недавнего обновления proxmox до 6-й версии перестал работать WoL. Это технология wake on lan для запуска компьютера через сеть. Я использую proxmox для тестовых целей, поэтому ему не обязательно постоянно работать. Я сделал скрипт в mikrotik, с помощью которого удаленно запускаю гипервизор в случае необходимости и пользуюсь им. Потом завершаю работу. После обновления wake on lan работать перестал. Я уже подзабыл, как его настраивал до этого и настраивал ли, поэтому сейчас решил записать, чтобы не забыть. Итак, чтобы работал wake on lan в linux, у вас должна быть включена такая возможность в BIOS. Но этого не всегда достаточно. Идем в консоль системы и там выполняем команду: Если ethtool не установлен, то ставите его командой: enp5s0 — сетевой интерфейс, который смотрит в локалку и находится в одном сегменте сети с mikrotik. Последний видит его mac адрес. Далее добавляем в /etc/network/interfaces: Все, теперь wake on lan будет нормально работать и сервер можно будет включать удаленно. На mikrotik у меня вот такой скрипт. 00:25:22:DC:39:42 — mac адрес сетевого интерфейса enp5s0 сервера. В итоге, если нужен тестовый сервер, подключаюсь по vpn к mikrotik, там запускаю proxmox, виртуальные машины. Они все доступны через vpn. Когда сделаю, все, что нужно, выключаю сервер. Методы удаленного доступа к Linux GUIВ службу технической поддержки RUVDS регулярно обращаются по поводу GUI и удаленного доступа к нему на виртуальных серверах с Linux, несмотря на то что в интернете достаточно много материалов освещающих эту проблему. Поэтому, для наших пользователей мы решили собрать всё по этой теме в одну статью. ВведениеНа всякий случай возможно стоит упомянуть, что SSH — основной способ предоставления доступа к линуксовым виртуалкам на RUVDS. Большая часть действий описываемых в этой статье будет осуществляться именно таким образом. Для подключения необходимо найти SSH-клиент для вашей операционной системы.
MAC OS: Установка GUIИтак, перейдем к установке GUI. Сначала нужно поставить графическую подсистему: Далее следует установка Desktop Environment (DE). Их существует великое множество. Мы рекомендуем ставить на сервер более легковесные среды, а еще лучше, не ставить вовсе. Первые две DE достаточно компактные, функциональные и «привычные». 1. Xfce Можно поставить дополнительно: Добавление русской раскладки: Сочетание клавиш можно менять на свое усмотрение, например: Чтобы эта команда запускалась каждый раз при запуске LXDE, нужно добавить в конец файла с помощью вашего любимого vi строку: @setxkbmap -option grp:switch,grp:ctrl_shift_toggle,grp_led:scroll us,ru. Или вот так… Следующие две DE являются чрезвычайно легкими. Если уж GUI нужен на сервере, вероятно, стоит использовать именно их. 3. FluxBox 4. Openbox Далее следуют наиболее популярные на десктопах графические оболочки. 5. Gnome
7. Cinnamon Если Вы хотите получать доступ к GUI через «Аварийный режим», то необходимо сделать следующее: Мало того, необходимо обеспечить запуск графической оболочки при старте системы. Для этого можно установить какой-нибудь экранный менеджер (Display Manager, DM), например: Или в случае с CentOS: Если необходимости в доступе из личного кабинета нет, то следует выполнить: Заметка: Ubuntu предлагает своим пользователям несколько метапакетов для более удобной установки нужной DE: Далее, есть много способов получить удаленный доступ к GUI. Удаленный доступНа виртуальном сервере, в зависимости от OS нужно произвести следующие действия. Далее, если вы используете Windows, подключаемся через встроенный RDP-клиент, Remote Desktop Connection (Подключение к удаленному рабочему столу). Стандартный порт 3389. Для Linux есть масса клиентов которые можно установить из репозиториев: freerdp и remmina, gnome-rdp, vinagre и т.п. Также можно пробросить RDP-шный трафик через SSH-туннель. Для этого нужно поправить конфигурационный файл xrdp: В секцию [globals] нужно добавить строку: address=127.0.0.1 Проверить, что всё правильно, можно так: Затем если вы используете cygwin или mingw, linux или mac os: Запустите PuTTY. В древовидном меню слева Connection → SSH → Tunnels. Далее добавляем новый Forwarded Port (Source port: 3389, Destination: localhost:3389). Нажимаем Add. Далее следуете в секцию Session. Вводите IP вашего сервера в поле Host Name (or IP address). Нажимаете кнопку Open, вводите пароль для подключения по SSH.
Для MAC OS: OS X предоставляет для этого встроенное приложение Screen Sharing. Можно также использовать Safari Сервер: На Вашей виртуальной машине установите VNC сервер: Если на Вашей системе работает файрвол необходимо открыть соответствующие порты. Пример для CentOS При возникновении проблем с отображением иконок и шрифтов при использовании xfce4 по Ubuntu/Debian: Если вы хотите, чтобы VNC-сервер стартовал автоматически, создайте файл: Со следующим содержимым: Теперь можно подключиться, например, через UltraVNC. Для этого нужно запустить UltraVNC Viewer, в поле VNC Server записать [IP]::5901 (по-умолчанию: 5901, 5902 и т.п. для первого дисплея, второго и т.д. соответственно) и нажать на кнопку подключиться. Также можно пустить vnc-шный трафик через ssh-туннель. Для этого отредактируйте: Затем если вы используете cygwin или mingw, linux или mac os: Если PuTTY: Далее следуете в секцию Session. Вводите IP вашего сервера в поле Host Name (or IP address). Нажимаете кнопку Open, вводите пароль для подключения по SSH. Затем открываете UltraVNC Viewer и в поле VNC Server вводите: localhost::5901 после чего подключаетесь. Также можете попробовать другие VNC-сервера: x11vnc — фактически VNC-сервер (как vnc4server или tightvnc), но позволяет получать доступ к уже существующей X-сессии. Т.е. если Вы настроили графическую оболочку таким образом, что она запускается при старте системы, то можно использовать следующий вариант: После подключения по VNC (на порт 5900) Вы должны увидеть тоже что и в «Аварийном режиме». Для старта x11vnc при запуске OS необходимо проделать следующее: Теперь немного поинтереснее. Одна замечательная компания NoMachine разработала отличный протокол NX на замену VNC. Клиенты для подключения по этому протоколу бесплатны, а официальное серверное ПО от NoMachine стоит много денег. В свое время, эта же компания поддерживала проект FreeNX работы на котором со временем затихли; текущая версия 0.7.2 от 2008-08-22. Но, к счастью, нашлись люди создавшие форк и назвавшие его x2go. К сожалению, x2go не совместим ни с NX от NoMachine, ни с freeNX. Так что клиент берем тут. Установка сервера на Debian (источник): Для примера поставим эту DE: Далее следуем инструкциям с оффициального сайта: Вывод следующей команды должен показать, что x2go готов к работе: А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле .profile строку «mesg n» и заменить её на «tty -s && mesg n». Следующая команда выведет путь до исполняемого файла startfluxbox, понадобится при настройке клиента: Установка сервера на Ubuntu: А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле .profile строку «mesg n || true» и заменить её на «tty -s && mesg n». Установка сервера на CentOS: Клиент для линукс ставится из вышеприведенных репозиториев следующей командой: Для Windows — скачиваем, ставим, запускаем. По той же ссылке, приведенной выше, есть клиент для OS X. В настройках сессии указываем: в поле Host — IP вашего сервера, в поле Login — root, порт оставляем как есть, session type — тот GUI который ставили. Как вы можете видеть, есть возможность аутентификации по ключу. В общем много всякого. Посмотрите сами. И звук можно через PulseAudio выводить. После нажатия Ok вы увидите вот такие вот очаровательные штучки, на которые нужно нажать для получения запроса на ввод пароля и подключения к выбранной сессии: Замечание: обратите внимание, что в списке нет Вашего любимого FluxBox’а поэтому путь к нему приходится прописывать руками. Важной возможностью x2go является возможность запуска любого графического приложения вообще без установки DE. Для этого в настройках сессии нужно в секции session type нужно выбрать пункт single application и выбрать выполняемое приложение или ввести путь к программе которую следует запустить. В этом случае установка ПО на сервер будет выглядеть следующим образом. В случае с Ubuntu: А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле .profile строку «mesg n || true» и заменить её на «tty -s && mesg n». И настроив сессию как показано ниже, можно будет запустить браузер на удаленном сервере, а на вашей машине откроется окно его отображающее: Или так; тогда просто откроется окно терминала: Ниже вы можете видеть скриншот окна статуса текущей сессии. Оранжевыми цифрами отмечены кнопки:
TeamViewerПоследний способ удаленного доступа к рабочему столу. Установка на Ubuntu: Установка на Debian: Установка на CentOS: Также необходимо принять лицензионное соглашение TeamViewer’а, это можно сделать с помощью «Аварийного режима», либо добавить следующие строки в конец файла /opt/teamviewer/config/global.conf: Следующая команда покажет состояние демона TeamViewer’а и необходимый для подключения девятизначный TeamViewer ID: После запуска клиента скачанного тут, нужно ввести TeamViewer ID в поле Partner UD и нажать на кнопку «Connect to partner». Далее TeamViewer запросит пароль: [PASSWD]. |