Вы используете как Windows, так и Linux? Можете ли вы удаленно
управлять Windows из Linux (Ubuntu либо другого дистрибутива) или Linux
из Windows? Несомненно, можете. Подобно тому, как используется Подключение к удаленному рабочему столу между платформами Microsoft
(или удаленное управление между машинами с Linux), возможно и
управление рабочим столом из разных платформ. Вы можете щелкать мышью
на рабочем столе и запускать приложения, точно так же, как если бы вы
сидели прямо перед компьютером. Мы обсудим несколько различных возможностей, которые вы можете
получить, используя подключение к удаленному рабочему столу. Плюс к
этому, мы пошагово рассмотрим метод установки подключения к удаленному
рабочему столу с использованием бесплатных инструментов. Итак, давайте
начнем.
Выбор протокола удаленного рабочего стола
Приложения удаленного рабочего стола обычно используют либо Протокол Удаленного рабочего стола (RDP), либо протокол Виртуальной Вычислительной Сети
(VNC). Для установки удаленного подключения оба узла (сервер и клиент)
должны поддерживать один и тот же протокол. Проблема заключается в том,
что не все операционные системы (ОС) используют одинаковые протоколы по
умолчанию. Вдобавок к этому, некоторые дистрибутивы Linux и некоторые
редакции Windows не содержат в себе ни серверного, ни клиентского
приложения удаленного рабочего стола, либо не содержат приложение
удаленного рабочего стола вообще.
Вашей первой задачей должно стать определение протокола, который уже
поддерживается на ваших компьютерах. Дополнительно к исследованию вашей
ОС, поиску документации, ссылкам на шпаргалки, вы должны иметь
возможность понимать, что есть что и где. Затем, уже в конце, вы должны
выбрать протокол для использования на всех ваших компьютерах.
Платформа |
Протокол |
Клиент |
Сервер |
Windows Home Edition |
RDP |
X |
|
Windows XP Professional |
RDP |
X |
X |
Windows Vista Home Basic & Premium |
RDP |
X |
|
Windows Vista Business & Ultimate |
RDP |
X |
X |
Most Linux Distros |
VNC |
X |
X |
Обратите внимание:
- Удаленный рабочий стол VNC обычно медленнее, чем RDP соединения,
тем не менее, VNC обычно легче реализовать на различных платформах.
- Для лучшей производительности и безопасности, вы можете
использовать свободный сервер и клиентов NoMachine's NX или сервер и
клиентов FreeNX, но он более сложный в настройке, здесь требуется
думать.
- Возможно также, обеспечить поддержку RDP соединений на машинах с Linux, например, используя xrdp сервер.
Открытие брандмауэра (межсетевого экрана)
Перед тем, как перейти к установке удаленных соединений или к их
приему, вам необходимо настроить программное обеспечение вашего
брандмауэра. На компьютерах, к которым вы хотите подключиться удаленно,
необходимо разрешить трафик VNC или RDP через брандмауэр.
В Windows, при старте сервера, вы должны получить запрос на
Блокирование или Разрешение доступа к сети приложению сервера
удаленного рабочего стола. Если нажать кнопку "Разрешить", все должно
заработать. Если вы не получили запрос, то можете зайти в свойства
брандмауэра Windows и добавить разрешение для этого приложения вручную,
используя номера портов, указанных ниже.
В Linux, вам, скорее всего, необходимо будет вручную добавить
правила для входящих соединений в брандмауэре, на компьютере
принимающем запросы на подключение. Если необходимо, вы можете вызвать
из меню браузер и поискать в Google
информацию о том, как настроить брандмауэр. Ваш дистрибутив Linux может
включать GUI (графический интерфейс пользователя) для вашего
брандмауэра или вы можете использовать командную строку для его
настройки. Таким же образом добавьте исключение или правило для того,
чтобы разрешить трафик на соответствующих портах, перечисленных ниже.
- RDP использует TCP порт 3389
- VNC использует порты, начиная с 5900 (каждое удаленное соединение к
серверу использует разные порты; дисплей 1 использует порт 5901,
дисплей 2 использует порт 5902, и т. д.). Лучшим методом, поэтому,
будет определение области портов (таких как 5900 - 5905), когда вы
создаете правило брандмауэра или исключения.
Теперь вы имеете возможность удаленно подключаться к компьютерам в
вашей локальной сети. Для удаленного соединения через Интернет вы
должны также, настроить ваш маршрутизатор. Мы обсудим это в следующей
части.
Использование VNC сервера и клиента в Ubuntu Если вы используете Ububntu, то вы уже имеете установленные и
готовые к использованию клиент и сервер VNC. (Эта статья базируется на
дистрибутиве Ubuntu Desktop 8.10 Intrepid Ibex.) Для того, чтобы иметь возможность принимать удаленные соединения, просто выберете в меню Система > Свойства > Удаленный рабочий стол.
В диалоговом окне настройте желаемые ресурсы общего пользования и
параметры безопасности. Список команда/адрес представлен вам для
указания других компьютеров в локальной сети с установленным Ubuntu или
другим дистрибутивом Linux, с которых будет производиться подключение.
Для использования VNC вьюера (просмотрщика) на Ubuntu, выберите Приложения > Служебные > Терминал.
Если вы подключаетесь к компьютеру, на котором установлен Ubuntu,
наберите команду предлагаемую Ubuntu. Если производится подключение к
компьютеру, на котором установлен другой дистрибутив Linux, применяется
следующий формат команды:
$ vncviewer Имя_Компьютера_или_IP_адрес:#
так как показано на рисунке 1. Эта строка содержит команду, vncviewer,
за которой следует имя или IP адрес компьютера (или Internet IP, если
подключение производится через web), оканчиваясь двоеточием и ID
(идентификатором) дисплея (туннеля). Если производится подключение к
компьютеру, на котором установлен Windows, то двоеточие и номер дисплея
не указываются, в этом случае формат команды следующий:
$ vncviewer ИмяКомпьютера_или_IP_адрес
рисунок 1
Установка VNC Клиента и Сервера на другие дистрибутивы Linux
Если вы используете дистрибутив Linux, отличный от Ubuntu, поищите в
его хранилищах соответствующие пакеты для установки VNC сервера и
клиента. Если таких пакетов нет, то вы можете скачать TightVNC напрямую с их веб-сайта и следовать инструкциям по сборке и установке.
Сервер TightVNC/RealVNC не имеет графического интерфейса, вы должны
использовать командную строку, но не беспокойтесь - это легко. Просто
откройте Терминал, наберите vncserver и нажмите Enter.
При первом запуске вам будет предложено создать пароль для VNC
соединений. После того, как вы установили пароль, будет автоматически
настроен дисплей или туннель, как показано на рисунке 2.
рисунок 2
VNC поддерживает множество дисплеев для обеспечения доступа большого
количества пользователей и/или для определения вариантов атрибутов,
таких, как разрешение экрана, команд, выполняемых при запуске и т.д.
Каждый раз при запуске, команда vncserver создает новый
туннель, с номером обычно начинающимся с 1, который увеличивается на
единицу при каждом последующем запуске команды.
Ниже даны различные опции команды vncserver, которые полезно запомнить:
- Для получения помощи используйте опцию -help или введите команду man vncserver.
- Используя опцию -name desiredname вы можете назначить имя
определенному туннелю или дисплею, которое отображается в строке
заголовка VNC клиента, когда производится удаленное подключение к этому
дисплею.
- Поправка :# позволяет вам вручную определить номер туннеля или дисплея.
- Используя опцию -geometry WxH вы можете установить ширину и высоту экрана для отображения удаленного рабочего стола.
- Добавив -depth # вы можете установить глубину цвета от 8 до 32 бит на пиксель.
- Для закрытия VNC туннеля используйте опцию -kill :#, заменив значок решетки желаемым идентификатором туннеля (дисплея).
В зависимости от определенного дистрибутива Linux и решения VNC,
которое установлено, вы можете иметь или не иметь графический
пользовательский интерфейс для клиента или приложения вьюера. Если
имеется графический интерфейс, - не стесняйтесь использовать его, но,
при желании, вы можете использовать и командную строку.
Для графического интерфейса вы можете, как правило, настроить опции
из диалогового окна. Когда подключаетесь к машине с дистрибутивом
Linux, наберите имя компьютера или IP адрес удаленной машины (или
Internet IP когда подключаетесь через web), затем двоеточие, ID туннеля
или дисплея и нажмите Enter. Например, ericlinuxbox:1 или 192.168.0.122:1.
Если подключаетесь к машине с Windows, двоеточие и номер дисплея не
требуется. Для подключения из терминала, введите vncviewer и информацию
об узле, таким же образом как показано на рисунке 1 ранее.
Установка VNC клиента/сервера в Windows
TightVNC также предлагает клиента и сервер в версии для Windows на его странице для скачивания.
После установки TightVNC вы можете запустить сервер из меню Пуск (прим.
переводчика: Пуск > Все Программы > TightVNC), выбрав Запустить
TightVNC сервер. При этом появится диалоговое окно свойств (см. рисунок
3), где вы должны назначить пароль для входящих сессий.
рисунок 3
После проверки всех установок нажмите ОК. Сервер будет запущен и
готов к приему входящих соединений, одновременно в системном трее
появится иконка сервера. Еще раз напомню, не используйте двоеточие и
номер дисплея, когда подключаетесь к компьютеру с Windows из любой
платформы.
Если вы подключаетесь к удаленному компьютеру из Windows, выберите
ярлык TightVNC Вьюер из стартового меню. Подобным образом, для
подключения из других платформ, введите имя или IP адрес удаленного
компьютера (или Internet IP адрес, когда подключаетесь через web), и
когда подключаетесь к компьютеру с Linux включите в команду двоеточие и
номер дисплея.
Ниже мы рассмотрим безопасность VNC соединений и все настройки, необходимые для удаленного подключения через Интернет.
Настройка вашего маршрутизатора для перенаправления
Перед тем, как вы сможете удаленно подключиться к вашему компьютеру
из другого местоположения через Интернет, необходимо правильно
настроить маршрутизатор. Маршрутизатор выступает в роли распределителя
вашего сетевого трафика. Если вы не укажете на нем куда перенаправлять
трафик удаленного рабочего стола, ничего не будет происходить и ваше
удаленное подключение не будет работать. Таким образом, вы должны
создать перенаправление портов или запись виртуального сервера для
соответствующих портов к IP адресам желаемого компьютера. В дальнейшем,
когда входящий трафик будет поступать из Интернета на эти порты, ваш
маршрутизатор будет перенаправлять его на компьютер и сервер удаленного
рабочего стола будет отвечать.
В зависимости от вашего протокола, используйте один из следующих портов (или области портов):
- RDP использует TCP порт 3389.
- VNC использует порты начиная с 5900 (каждое удаленное соединение к
серверу использует отдельный порт; дисплей 1 использует порт 5901,
дисплей 2 использует порт 5902, и т.д.). Лучше всего, поэтому, будет
определить области портов (таких как 5900 - 5905), когда вы создаете
перенаправление или запись для виртуального сервера.
Для того, чтобы настроить маршрутизатор, вы можете использовать его
веб-интерфейс, введя в адресной строке браузера его IP адрес. Затем
необходимо перейти на страницу Виртуальные серверы или Перенаправление
портов. Возможно, имя записи уже имеется, тогда его можно выбрать из
выпадающего списка, а если нет - можно вручную ввести IP адрес
компьютера, кроме того, необходимо ввести частный и публичный порт (оба
одинаковые) или область портов и нажать кнопку Сохранить.
Вам необходимо убедиться что компьютер имеет постоянный IP адрес в
сети. Если есть возможность, используйте DHCP функцию резервирования
для принудительного сохранения определенного IP адреса за определенным
компьютером. В противном случае, вам необходимо назначить компьютеру
статический IP адрес.
Если имеется множество компьютеров, которыми вы хотите управлять
удаленно через Интернет с использованием VNC, то вам необходимо создать
отдельную запись для каждого компьютера. Убедитесь, что каждый
компьютер использует свой порт, который представлен номером дисплея или
туннеля, когда вы запускаете команду vncserver, например, в Linux. Так
же необходимо убедиться, что каждая запись перенаправляется на другой
IP адрес.
Безопасность VNC соединений
Обмен паролями между клиентом и сервером VNC всегда шифруется,
однако, все, что передается после пароля - нешифрованное. Это не имеет
большого значения, если управление компьютером выполняется в безопасной
(локальной) сети. Иное дело, когда выполняется удаленное подключение
через Интернет. В этом случае необходимо убедиться, что соединение
зашифровано целиком. Это защищает как от хакеров, так и от
нежелательных соглядатаев, которые могут перехватить трафик в то время,
как он будет передаваться между сервером и клиентом в больших объемах.
Один из путей создания безопасного туннеля между клиентом и сервером
для пропуска в нем VNC трафика, это установка Secure Shell (SSH)
соединения между ними. Для этого вы должны установить SSH сервер на
компьютеры, к которым вы хотите организовать удаленный доступ, и SSH
клиентов на компьютеры, с которых вы будете выполнять удаленное
подключение. В некоторых случаях вы можете установить и сервер и
клиента вместе, на каждом компьютере. На компьютерах под управлением
Windows вы можете скачать и установить freeSSHd для сервера и PuTTY для
клиента (оба имеют графический интерфейс). Для машин под управлением
Linux, попробуйте использовать OpenSSH.
Перед тем, как вы попытаетесь установить SSH соединение, убедитесь,
что маршрутизатор настроен для перенаправления трафика и межсетевой
экран разрешает его. Для SSH по умолчанию используется 22 порт TCP.
Если производится подключение через Интернет, настройте перенаправление
портов или запись виртуального сервера (подобно тому как обсуждалось
ранее для VNC трафика) для этого порта на маршрутизаторе, к которому
подключен принимающий соединение компьютер. Откройте порты на
клиентском и серверном компьютере как обсуждалось выше.
После установки SSH сервера создайте частный и публичный ключи и
поместите их в правильное местоположение. Для SSH серверов на Linux
используйте инструмент OpenSSH для создания ключей. Для компьютеров с
Windows вы можете использовать PuTTygen. Для подключения из Windows к
Linux запустите PuTTy, перейдите к настройкам SSH туннеля и введите
порт VNC, который вы хотите использовать, базируясь на номере дисплея.
Затем, в настройках Сессии введите IP адрес машины Linux и нажмите
Открыть. На машинах Linux, для создания туннеля, используйте OpenSSH
клиент, подключаясь по IP адресу удаленного компьютера. После установки
SSH туннеля запустите VNC Вьюер так, как описывалось выше, но взамен IP
адреса удаленного компьютера введите localhost.
Поддержка "родного" Х дисплея
Теперь, как вы понимаете, VNC соединения по умолчанию используют
другой Х дисплей, не используя при этом "родной" дисплей удаленного
компьютера (тот дисплей, который физически подключен к удаленному
компьютеру). Это может быть достаточно неприятно, если вы работали за
компьютером перед тем, как к нему произвели удаленное подключение, и вы
хотели бы продолжить работу с теми приложениями, которые запустили на
самОм удаленном компьютере. В данном случае, Один из легчайших способов
осуществить это - использовать x0vncserver взамен vncserver.
Этот вопрос мы обсудим чуть ниже. Другая опция, более объемная, но
обеспечивающая лучшую производительность - это использование vnc.so
модуля.
Как было отмечено выше, один из простейших путей удаленного подключения к "родному" дисплею - это использование x0vncserver взамен vncserver. В терминале вы можете ввести x0vncserver password = ВАШПАРОЛЬ SecurityType=none.
При этом будет запущен прием удаленных соединений на дисплей 0,
защищенных паролем, который вы выбрали. Для установки соединения
используйте VNC вьюер таким же образом, как обсуждалось в предыдущей
части, но здесь есть одно отличие - не нужно вводить номер дисплея
после ввода IP адреса.
Получение справки
Мы обсудили как использовать удаленное управление между компьютерами
с ОС Linux и Windows. Мы так же настроили наши межсетевые экраны
(брандмауэры), чтобы разрешить прохождение трафика удаленных
подключений, и маршрутизатор, для перенаправления трафика на "ведомый"
компьютер. Дополнительно мы поняли, как обезопасить VNC соединения,
которые устанавливаются через Интернет. И наконец, определили, каким
образом можно подключиться к "родному" дисплею удаленной машины для
того, чтобы видеть именно экран этой машины, а не виртуальный дисплей.
Для получения документации о компонентах Linux вспомните, что вы
можете использовать страницы документации, запустив в терминале
следующие команды:
Так же не забудьте посмотреть FAQ и страницу поддержки на веб-сайте соответствующего разработчика.
Автор: Eric Geier
Перевод: Коваленко А.М
Источник
|