Хочу рассказать о некоторых особенностях организации удалённого управления «десктопом» на примере уже решённого кейса. В статье пойдёт речь об особенностях работы с RDP и Hamachi, а также будет раскрыта тема удалённого управления вкл. и выкл. PC при помощи мобильного телефона.

Под катом 2550 слов и 5,17МБ картинок.

Командный состав


1) Ноутбук Toshiba Tecra R10-118 (далее по тексту — NB):

— на сегодня он уже суперстар
— пережил 3 аккумулятора
— лёгок на подъём (1,9 кг)
— 100 процентную нагрузку на CPU держит максимум 7 минут, затем происходит аварийное отключение питания из-за перегрева
— OS Windows 7 Ultimate
— прошёл огонь и воду, поэтому не боится смерти

2) Домашний ПК на базе i5-3470 (далее по тексту – DT):

— предпочитает делать, нежели думать
— интернет 100 мбит/с
— экран 24 дюйма для удобной работы
— на борту разный софт для повседневных задач, полностью настроенный для работы
— OS Windows 7 Ultimate
— дружит с котэ

Челлендж


По рабочим делам мне часто приходиться находиться в разных районах города с NB в сумке. Первое время его локальных ресурсов хватало для всех задач. Чуть позже появилась потребность в CRM-системе, потом было разработано ТЗ на неё и ещё через несколько месяцев эта система была установлена на DT. Это помогло организовать рабочие процессы, но в тоже время нарушило привычный жизненный уклад. Дело в том, что это полностью «велосипедная» CRM, узконаправленная, и работает только под Windows. Плюс к этому на DT она висела в виртуальной машине, имела большую базу данных, что в совокупности повышало требования к железу. Для комфортной работы с этой CRM так же требовались большие вычислительные мощности, да и база данных росла с каждым днём.

Учитывая, что я себя плохо контролирую, при работе за медленным железом, переносить эту систему на NB было бы не очень разумной затеей. Другая причина моего нежелания таскать с собой всю базу данных был риск её потери вместе с NB, никто в конце концов от этого не застрахован, а синхронизировать её каждый день между DT и NB было бы крайне ресурсозатратным занятием. На DT работать с CRM было напротив — очень быстро и комфортно, в дополнение к этому автоматически создавались бэкапы.

Мне потребовалось найти решение, которое бы решало вопрос одновременно и с производительностью, и с компактностью, в то же время, не забывая о защите данных.

Первое решение, пришедшее на ум — это покупка нового ноутбука, который потенциально мог бы заменить и NB и DT.

В итоге я от этой идеи отказался, по следующим причинам:
— производительность всё равно сильно не дотягивает до DT
— по весу значительный проигрыш перед NB: 3.5 кг против 1.9.
— потеря такого девайса меня бы сильно расстроила (особенно вместе с CRM на борту)
— цена

Всё это меня подвело к тому, что нужно было настраивать удалённый доступ между NB и DT.

Терминальное подключение по RDP


Протокол удалённого рабочего стола идет в комплекте с ОС Windows. И несмотря на предвзятое отношение некоторых пользователей к продуктам Microsoft, RDP обеспечивает великолепное качество передаваемой картинки и умеет обмениваться файлами.

Не буду подробно останавливаться на настройках, скажу лишь о некоторых особенностях работы. При работе в локальной сети требуется в качестве адресата указать имя компьютера или ip-адрес, при подключении к ПК, находящемся во внешней сети – имя хост-домена или ip-адрес. При подключении между двумя ПК, находящимися в локальной сети и соединёнными по кабелю, можно отключить запрос пароля. Если две машины в одной локальной сети общаются между собой, но уже по Wi-Fi, либо хост находится во внешней сети то запрос пароля не отключается. Во время удалённого сеанса задействуются вычислительные ресурсы хост-компьютера. Правда возможности эти всё же несколько ограничены. К примеру, невозможно использовать ресурсы видеоадаптера Nvidia, в частности технологию CUDA. Windows выгружает видеодрайвер Nvidia и использует вместо него какой-то свой. На практике неудобства заключаются в том, то подключившись с NB к DT невозможно задействовать технологию CUDA в программах по обработке видео, соответственно ускорить рендеринг.

Ещё есть нюанс, что при подключении, хост-компьютер уходит в режим экрана выбора пользователя. С одной стороны, это плюс, поскольку никто не видит, что за действия выполняет удалённый пользователь. Есть один минус, связанный с особенностями подключения извне (об этом ниже).

Решаем вопрос с серым ip-адресом: LogMeIn Hamachi


Домашний провайдер по умолчанию не предоставляет внешний ip-адрес, да я и не горю желанием доплачивать за это, поскольку есть альтернативы. Но всё же скажу о плюсах и минусах внешнего ip применительно в решении моей задачи. Плюсы: высокая скорость; возможно задействовать технологию Wake-on-Lan и управлять включением/выключением DT; возможность подключиться к DT даже, если сейчас он на экране выбора пользователя; не требуется устанавливать дополнительный софт. Минусы: повышается риск взлома, дополнительные ежемесячные траты.

В итоге было принято решение использовать Hamachi Эта служба позволяет организовать VPN соединение между несколькими ПК. При установке дистрибутива Hamachi на ОС создаётся виртуальный сетевой адаптер, которому назначается виртуальный ip-адрес. После установки дистрибутива личном кабинете можно создать сеть и пригласить/добавить туда других пользователей, среди установивших у себя клиент Hamachi (до 5 участников в бесплатной версии).

Hamachi работает в двух режимах общения между участниками. В первом случае это «прямой туннель», когда траффик между пользователями идёт напрямую, а сервер лишь помогает определить местонахождение участников. Второй режим – «соединение через ретранслятор», когда весь трафик идёт через сервер Hamachi, из-за этого очень высокий пинг и скорость такая, что работать можно с трудом. По моим наблюдениям вне зависимости от настроек программы, соединение через ретранслятор происходит всегда, если используешь мобильный интернет 3G или 4G, например, Yota. У меня домашний интернет от Билайн, так вот когда в черте города находишь Wi-Fi точку с Билайн, то соединение с DT всегда идёт через «прямой туннель» и почти всегда хорошая скорость. Какого будет соединение если подключиться через Билайн из другого города, я пока не тестировал. Но тем не менее у меня есть основание полагать, что соединение в пределах одного «стационарного» провайдера и в пределах одного города всегда будет через «прямой туннель». По слухам, и непроверенной информации избавиться от соединения через ретранслятор можно, купив лицензию, но на официальном сайте об этом не слова, а я сам пока не тестировал этот вариант.

Теперь немного о грустном. Как я уже упомянул выше, когда подключаешься по RDP, хост уходит в режим экрана выбора пользователя. При завершении сессии этот кран так и остаётся включённым. Если соединение происходит по локальной сети, то не проблема подключиться повторно и продолжить работу. Так же не проблема продолжить прерванную сессию, если вы где-то далеко, но у хоста есть внешний ip-адрес. Когда мы имеем дело с Hamachi, при активном экране выбора пользователя подключиться повторно уже невозможно, даже учитываю, что и ОС и Hamachi висят в оперативке и продолжают работу в фоновом режиме. Одно из решений этой проблемы – можно создать на рабочем столе DT пустой ярлык и в качестве адреса вставить код shutdown -r -t 00. Запустив его, DT уйдёт в перезагрузку, так же будет прервана сессия, но зато можно будет подключиться вновь.

При этом по-прежнему остаётся проблема, включения DT на расстоянии, по требованию. Сделать это такими средствами, как WOL я не могу, поскольку нужен внешний IP, которого нет. Можно было бы использовать динамический DNS в настройках роутера, но с его настройками я не справился, к тому же DynDNS сейчас стал полностью платным.

Альтернативное решение –используем возможности GSM-сетей.

softhardware решения


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

Ещё на глаза мне попадались статьи энтузиастов, которые использовали возможности мобильного телефона для включения ПК. Однако в тех статьях приводились какие-то сложные радиотехнические схемы, где было задействовано более десятка радиоэлементов. Все эти радиосхемы наводили на меня ужас, поскольку я совершенно не умею их читать. Со своей стороны, мне было немного непонятно почему требуется нужно создавать такие сложности?

Ведь по идее всё проще простого:

— разбираем мобильный телефон,
— находим контакты, к которым подключается крохотный моторчик виброзвонка
— припаиваем к каждому из них по проводу
— покупаем электромагнитное реле, которому для срабатывания хватит того напряжения, что выдаёт телефон
— покупаем прочие радиокомпоненты, необходимые для сборки «хаба», внутри которого будет реле, снаружи будет подключение к разъёму POWER SW на материнской плате и подключение к кнопке POWER на системном блоке.

Осталось только лично убедиться, в осуществимости этой идеи.

Выбор телефона


В кладовке было найдено около десятка аппаратов среди которых были: Nokia 1280, Nokia 1200, Nokia 105, Nokia 1800, Nokia 6500c, Nokia C5-00, Alcatel one touch 112 и, наконец Texet TM-B110. Как раз последний и был выбран на роль подопытного кролика, поскольку этот «бабушкофон» обладал таким громким виброзвонком, что его дребезжание на столе можно было перепутать со звуком работающего перфоратора у соседей.

Контакты, к которым подключается моторчик виброзвонка обнаружить, как правило, не составит труда. Сам моторчик не припаян к печатной плате телефона, а крепится на противоположной части корпуса и соединяется при помощи клемм, когда телефон в сборе.


Зачищаем и облуживаем контакты виброзвонка. Лучше использовать многожильный провод. Я использовал провод из телефонного кабеля. Провода оголяем, зачищаем и облуживаем. Для удобства лучше использовать паяльник с диаметром жала 2-3 мм и флюс (ФКС). Провода я вывел наружу через разъём, для подключения гарнитуры.


Overview.

Замеряем выходное напряжение и определяемся с покупкой реле


Собираем телефон, вставляем симку, активизируем режим «вибро» и инициируем входящий звонок.


Вольтметр показывает 3.72V, это максимальное напряжение, выдаваемое аккумулятором.

К слову сказать, мне повезло с телефоном, поскольку далеко не во всех аппаратах для работы виброзвонка используется всё напряжение аккумулятора.

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

В итоге было куплено TRG5-5VDC-SA-CL-R, Реле сигнальное 5VDC / 0.5A 125VAC, 1 переключающий контакт. Несмотря на маркировку 5VDC, консультант заверил меня, что от 3.7V оно сработает.

Прочие компоненты



Вместе с реле были приобретены и другие компоненты из списка необходимых.

Полный список использованных компонентов:

1) TRG5-5VDC-SA-CL-R, Реле сигнальное 5VDC / 0.5A 125VAC, 1 переключающий контакт
2) G1020BF, Корпус для РЭА 108.5х54х30мм, пластик, черный с крепежным фланцем
3) BLS-2 (DS1071-1x2), Гнездо на кабель 1х2 с контактами 2.54мм
4) PLS-2R (DS-1022-1x2), Вилка штыревая 2.54мм 1х2 угловая (тип D1)
5) PLS-2 (DS1021-1x2), Вилка штыревая 2.54мм 1x2 прямая
6) ДИП-РМ 50х50мм, Плата печатная макетная
7) Многожильные провода разных цветов

Все компоненты обошлись примерно в 700 руб., не считая проводов, которые у меня уже были. Вилки с гнёздами выбирались по принципу совместимости с теми, что используются в разъёме «POWER SW» на материнской плате и ещё их желательно брать с запасом. Хорошо, если после сборки печатная плата не болтается в корпусе, хотя это не очень критично.

Схема



Рисовал в excel. Надеюсь понятно что к чему.

По задумке мы со своим велосипедом подключаемся к материнской плате параллельно с кнопкой POWER на системном блоке. Кнопка продолжает ра, как и раньше.

Собираем «хаб»


На том реле, что я использовал, было 6 контактов. Первые два отвечали за управление реле и подключались к виброзвонку в телефоне, ещё два были нормально открытыми, то есть замыкали цепь только когда срабатывало реле. Оставшиеся два были нормально замкнутыми, то есть при срабатывании реле они наоборот размыкались, главное было их не перепутать предыдущими и не использовать.


эта сторона смотрит внутрь корпуса


Отверстия под разъёмы в крышке корпуса делались паяльником.




Наружу выводим провода, которые будут подключены к POWER SW на материнской плате.




«хаб» готов

Измеряем пульс


Настало время протестировать работоспособность всей системы. При первом запуске был выявлен один неприятный момент. Когда на телефон поступал входящий звонок, то цепь замыкалась и включалось питание DT, но если вызов не сбрасывать, то через несколько секунд DT выключался. Причина была в том, что при удержании кнопки POWER в нажатом состоянии более, чем на 5 секунд, происходит принудительное выключение питания.

При помощи подручных средств, микрофона и программы для записи аудио, был взят замер «частоты сердечного ритма» реле:


Предположения подтвердились. Ровно 5 секунд цепь остаётся замкнутой, затем 1 секунда простоя и цикл повторяется.

Виновником является телефон, но заставить его вибрировать в другом ритме оказалось невозможным. Поэтому единственное рабочая стратегия — сбрасывать вызов сразу, как только слышишь первый гудок.

Установка «хаба» внутрь системного блока




Телефон вешаем снаружи системного блока, лучше на задней стенке, чтобы к нему был доступ. Провода заводим внутрь корпуса через PCI-отверстие. Телефон можно подключить к постоянной зарядке, чтобы не забывать заряжать.

Особенности эксплуатации


Как я уже говорил, кнопка POWER по-прежнему работает в штатном режиме, независимо от работы реле. Hamachi информирует включён в данный момент компьютер или нет. Номер телефона для включения DT я никому не говорю, но всё равно нет 100% гарантии, что никто на позвонит с левого номера. К сожалению в Texet TM-B110 невозможно настроить работу виброзвонка отдельно для входящих сообщений и звонков, поэтому любое сообщение инициирует включение DT. Правда на моей практике такое случалось лишь дважды за три месяца.

Что можно было бы улучшить


К примеру, когда на мой смартфон приходило очередное смс-оповещение от Билайн, то было ясно, что такое же смс могло прийти и на Texet. В этот момент у меня с собой могло не быть NB с Hamachi, а необходимость проверить состояние DT, было. Теоретически можно было бы установить на DT приложение, отправляющее письмо за мой основной e-mail и смартфон с мобильным интернетом мне об этом оповещал.

Альтернативный способ: установить меил ру агент на DT и смартфон и таким образом контролировать ситуацию. Ещё более продвинутый способ, это заменить Texet на более продвинутый аппарат, который не будет вибрировать при входящем смс и будет реагировать только на звонки. Тёмная сторона силы — включение вибрации при звонке только с определённого номера.

Профпригодность оставшихся телефонов


Nokia 1280, Nokia 1200, Nokia 105 и Nokia 1800 — несмотря на их простую конструкцию, оказались абсолютно непригодны для использования. Для того, чтобы залезь внутрь, нужна отвёртка «звёздочка», но это не самая большая проблема. Самое главное, что когда я разобрал их все, то ни в одном не смог визуально определить где находятся контакты, отвечающие за виброзвонок, моторчик не удалось обнаружить.

Nokia 6500c и Nokia C5-00 я не решил не трогать.

Alcatel one touch 112 — контакты вибро звонка легко обнаруживаются, так же не составляет труда припаять к ним провода и вывести наружу через разъём гарнитуры, что я и сделал. На выходе вольтметр показал 2.95-3.01V, при этом замер выходного напряжения на родном аккумуляторе показал аж 3.8V.

Напряжения в 3.01V уже недостаточно, для активации купленного реле (TRG5-5VDC-SA-CL-R).

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

Ещё хотелось бы добавить, что в продаже встречаются реле, которым достаточно даже 1.5V включения, но в магазинах они встречаются достаточно редко.

Заключение


Реализованная мною схема включения ПК с помощью мобильного, по сути универсальна для активации любых низковольтных устройств.
Если вернуть к вопросу реализации удалённого доступа к необходимым данным, то конечно можно использовать VPS или облачный сервис, где прочти во всех случаях будет выигрыш по скорости передачи данных, по сравнению со скорость внутри сети Hamachi. В моём случае это была больше вынужденная мера, до тех пор, пока не будет готова CRM, работающая из-под веб-интерфейса. При этом развёрнута она будет так или иначе на моём собственном оборудовании, и будет работать там до тех пор, пока не найдётся решение лучше. Моя позиция такова — если данные имеют стоимость на порядок превосходящую ту, что взимается ежемесячно в виде платы арендной платы, то это повод задуматься, а стоит ли рисковать. У хозяев всегда найдётся достаточно времени, чтобы провести «аудит» данных, хранящихся на их серверах и потом принять решение. Смахивает на паранойю? Нет, просто я люблю спать спокойно.

Комплектующие покупались в СПб, в магазине «ЧИП и ДИП». Подходящий телефон можно подобрать на радио рынке «ЮНОНА». Спасибо за внимание!

Комментарии (6)


  1. si1v3r
    03.12.2015 15:18

    Снача хотел написать недоумевающий комментарий, т.к. при прочтении пропустил эту часть:

    Сделать это такими средствами, как WOL я не могу, поскольку нужен внешний IP, которого нет. Можно было бы использовать динамический DNS в настройках роутера, но с его настройками я не справился, к тому же DynDNS сейчас стал полностью платным.

    Все таки софтовое решение с WOL через роутер намного проще, даже без динамического ДНС. Надеюсь Ваш вариант принес вам удовольствие во время реализации.


    1. lakegull
      04.12.2015 13:12

      Согласен, с WOL гораздо удобнее. Моё решение скорее из серии «на всякий пожарный», когда другие способы недоступны.


  1. Daniyar94
    03.12.2015 16:24

    1) Удаленное управление: Google Remote Desktop. Вы не зависимы от динамического IP, все происходит с помощью Google Account. Бесплатно.

    2) Arduino + Wake Up on Lan. Дёшево и просто


  1. evr1ka
    04.12.2015 07:23

    Хотел сказать спасибо за идею с подключением к вибромотору. надо проверить )
    А по факту — есть бесплатные DDNS (no-ip например). Другое дело, что на роутере нет этих провайдеров, а перепрошить его нельзя.
    Хаманчей пользоваться перестал, когда они стали все через чур платно зажимать. Неужели они ослабили свою хватку и сделали возможность и бесплатно работать тоже?
    А вообще недавно посетила идея некого удаленного KVM. Например через USB кабель в мобильный девайс и комп для эмуляции клава/мыши, а камера направлена на монитор.


    1. lakegull
      04.12.2015 13:31

      Другое дело, что на роутере нет этих провайдеров, а перепрошить его нельзя.

      как раз мой случай
      Хаманчей пользоваться перестал, когда они стали все через чур платно зажимать. Неужели они ослабили свою хватку и сделали возможность и бесплатно работать тоже?

      Скорость бывает нестабильна, но решается ли этот вопрос покупкой лицензии, не известно. На сегодня я уже понял, что лучше купить внешний IP у провайдера.
      А вообще недавно посетила идея некого удаленного KVM. Например через USB кабель в мобильный девайс и комп для эмуляции клава/мыши, а камера направлена на монитор.

      Интересная идея, но как мне кажется может быть проблема с задержкой видеопотока. Он же не мгновенно передаётся


      1. evr1ka
        04.12.2015 13:40

        Да, есть у меня идея на счет remote kvm, как некая услуга-помощь, себе или многим. Так как это не бизнес модель, а просто обзор из текущего -возможного, то пока просто анализирую. Есть ряд сетевых KVM из корпоративного сегмента, на котором хочу потестировать. Но для для массового чего-то ценник там не совсем демократичный.
        Сам в итоге просто внешний IP подключил от провайдера (так как у меня внутренние адреса все «серые», и есть ли единственный внешний порт — проброс до меня. Не удобно.