Интернет. Компьютер. Помощь. Советы. Ремонт

Удаленный графический доступ к ubuntu через VNC. Удаленный доступ на Ubuntu с Windows машины Как подключиться к рабочему столу ubuntu

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

Настройка Ubuntu для разрешения удаленного доступа

Здесь все очень просто: сервер и клиент VNC включены в стандартную комплектацию Ubuntu Desktop. На компьютере с Ubuntu, которым мы собираемся управлять, идем в меню "Система - Параметры - Удаленный рабочий стол", и выставляем нужные настройки. В-первую очередь выставим галочку "Позволять другим пользователям видеть ваш рабочий стол", если необходимо позволить им управлять - выставляем вторую галочку также. Внизу на желтом фоне появляется информация о том, как можно подключиться к вашему компьютеру из локальной сети или интернета. Еще один важный момент: не забудьте установить параметры доступа к вашему компьютера, обязаны ли вы будете разрешать каждое входящее подключение, или будете требовать пароль для доступа к компьютеру. Выставлять вариант свободного доступа и без пароля и без разрешений я крайне не рекомендую - все таки время в сети не спокойное =).

ВНИМАНИЕ! Если вы используете эффекты рабочего стола, то необходимо их ОТКЛЮЧИТЬ на время сеанса удаленного доступа, иначе удаленный доступ либо вообще не будет работать, либо будет дико тормозить.

После этого мы можем подключаться к нашей машине из Ubuntu или Windows. Для подключения из Ubuntu никаких дополнительных настроек не надо: просто идем в меню "Приложения - Интернет - Просмотр удаленных рабочих столов", нажимаем кнопку "Подключиться" в панели инструментов, выбираем протокол VNC и указываем имя компьютера в локальной сети или его IP-адрес в поле "Узел", внизу есть дополнительные параметры на ваше усмотрение: "Полноэкранный режим", "Только просмотр", "Масштабировать". Можно подключаться.

VNC в Windows. Настройка UltraVNC.

Для работы с VNC в Windows мы будем пользоваться пакетом UltraVNC. Раньше я пользовался другим пакетом - RealVNC, однако его серверная часть в бесплатной версии не работает под Windows Vista, 2008 и 7, поэтому я буду рассматривать именно UltraVNC, хотя он и более сложен в настройке.

Если вы используете Windows 2000 или XP, то можете попробовать настроить RealVNC самостоятельно, его можно скачать на официальном сайте: http://realvnc.com/products/free/4.1/download.html .

UltraVNC скачиваем здесь: http://www.uvnc.com/download/index.html (выбираем самую последнюю версию, затем выбираем версию Full, затем win32 для обычной 32-битной ОС, или X64 - для 64-битной).

Запускаем установку. На шаге "Select Components" необходимо выбрать тип установки, я не буду останавливаться на этом подробно - опытные пользователи разберутся с этим и сами, я же рекомендую просто выбрать "Full Installation" - полную установку в том случае, если к этой машине будут подключаться. Если нет - выбираем "Viewer only" - только клиентская часть, чтобы иметь возможность подключаться с этого компьютера.

Если у вас установлена Windows Vista или 7, то установочник также предложит скачать дополнительные не-свободные компоненты, без которых под этими версиями Windows будет немного тормозить изображение и не будет возможности передать нажатия клавиш "ctrl+alt+del". Настоятельно рекомендую установить их, отметив галочку "Download Vista addons files now".

Далее установочник предлагает установить "Mirror Driver", при использовании которого обновление экрана происходит быстрее, а нагрузка на центральный процессор снижается в несколько раз. Рекомендую его установить, отметив галочку "Download the mirror driver". Следующий шаг особо важный, если вы устанавливаете программу вместе с серверной частью. Выбираем:

  • "Register UltraVNC Server as system service" - зарегистрировать сервер как системную службу. Отмечаем, если хотим чтобы серверная часть запускалась сама при включении компьютера и работала в фоновом режиме.
  • "Start or restart UltraVNC Server" - запустить или перезапустить серверную службу СЕЙЧАС (отмечаем, иначе для запуска службы придется перезапустить компьютер).
  • "Create UltraVNC desktop icons" - создать значки на рабочем столе (на ваше усмотрение).
  • "Associate UltraVNC Viewer with the .vnc file extension" - ассоциировать файлы.vnc с программой (желательно отметить).
  • "UltraVNC Server driver install" - установка драйвера серверной части (отмечаем обязательно).

После завершения установки с серверной частью, нам предложат сразу же ее настроить. Не буду объяснять все пункты окна настройки - расскажу о самых важных: Раздел "Authentication":

  • "VNC Password" - пароль для подключения (крайне рекомендую указать!).
  • "View-Only Password" - пароль для подключения в режиме просмотра (только наблюдение без управления клавиатурой и мышью, крайне рекомендую указать!).

Раздел "File Transfer":

  • "Enable" - для включения.

Раздел "Misc.":

  • "Remove Aero (Vista)" - отключить эффекты Aero при подключении клиента. Крайне рекомендуется для повышения быстродействия.
  • "Remove Wallpaper for Viewers" - Не показывать обои рабочего стола клиентам. Крайне рекомендуется для повышения быстродействия.
  • "Capture Alpha-Blending" - отображать прозрачности. Не рекомендуется для повышения быстродействия.
  • "Disable Tray Icon" - убрать значек в системной лотке (трее). Таким образом можно скрыть работу сервера.

"When Last Client Disconnects" - что делать когда все отключаются:

  • "Do Nothing" - ничего не делать
  • "Lock Workstation" - заблокировать экран
  • "Logoff Workstation" - выйти из учетной записи

Все. Когда сервер настроен - можно к нему подключаться, причем как из Windows, так и из Ubuntu или любой другой системы, где установлен клиент VNC.

Для подключения к другой машине из Windows используйте ярлык UltraVNC Viewer: здесь нужно ввести IP-адрес или имя компьютера в локальной сети в поле "VNC Sever".

Также может быть интересна опция "View Only" - просмотр экрана без управления компьютером.

Вот в-принципе и все. Если честно, в начале написания этой статьи я и сам не ожидал что в голой только что установленной Ubuntu можно так легко и без проблем настроить удаленный доступ к рабочему столу. Как видите, это намного проще аналогичной задачи в Windows. Конечно вы можете возразить мне, сказав что у Windows есть свой собственный протокол удаленного управления рабочим столом RDP, который настраивается ее стандартными средствами - однако тут я с вами не совсем соглашусь. Во-первых RDP нельзя использовать таким же образом как и VNC для таких задач, как "удаленная помощь другу": при подключении к компьютеру удаленно, локального пользователя выкидывает из его учетной записи, или же удаленный пользователь должен работать в отдельной учетной записи. В то время как удаленные пользователи VNC работают с локальным в одном сеансе (не хватает только второго курсора =)), что позволяет демонстрировать выполнение каких-либо задач через сеть. Ну а во-вторых существуют прекрасные клиенты RDP для Linux, например - krdp, зато вот серверов RDP для других систем, отличных от Windows - нет, так что в плане кросс-платформенности решения от Microsoft, как обычно, остались позади.

О проблемах пишите в комментариях - буду дополнять и исправлять.

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

Традиционно, для установки операционной системы на комп принято использовать
специальные установочные диски или другие носители, которые умеют самостоятельно
загружаться и передавать управление записанному на них установщику. Это простой,
удобный и эффективный способ водрузить ОС на машину, однако он применим далеко
не всегда. Иногда мы оказываемся в такой ситуации, когда физический доступ к
машине просто невозможен. Это может быть удаленный сервер, машина друга,
живущего в другом городе, или что угодно еще. Главное в такой ситуации то, что
подопытный комп доступен только по сети, и на нем обычно уже установлена
какая-то операционка (например, Windows). А вопрос заключается в том, как
заменить ее на нечто другое (например, Linux), причем сделать это без участия
третьих лиц.

Хитрые трюки

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

Более предпочтительный сценарий - использовать инструменты быстрой установки
Linux, которые предоставляют возможность инсталлировать пингвина прямо из
Windows без какого-либо вмешательства со стороны пользователя. Наиболее
известный из таких инструментов носит имя
и
первоначально разработан для создания
с пингвином на
борту, но позднее научился устанавливать полноценные дистрибутивы прямо на
жесткий диск. Подобные утилиты есть в арсенале таких дистрибутивов, как

Ubuntu и OpenSUSE ,
но до возможностей UNetbootin им далеко (последний умеет ставить несколько
вариантов Linux, BSD, легко поддается настройке и может работать в Linux). Те,
кто любят все делать руками, могут воспользоваться grub4dos и ISO-образами
соответствующих дистрибутивов. Этот вариант мы тоже рассмотрим.

Еще проще все это проделать в том случае, когда на машине уже установлена
UNIX-подобная ОСь, а задача состоит в том, чтобы заменить ее другим
представителем семейства UNIX (например, установить BSD или другой
Linux-дистрибутив). Для этого подойдет все тот же UNetbootin, либо вариант с
загрузкой ISO-образа или минимального образа initrd-средствами Grub (его можно
установить из портов BSD).

От Windows к Linux. Виртуальная машина

Как я уже упоминал, самый простой и очевидный способ удаленной установки ОС
заключается в использовании виртуальной машины. Он сработает в любой ОС, где
может быть запущена ВМ, поэтому даже если на удаленной стороне стоит Solaris или
еще большая экзотика, выход есть. В своей работе мы будем использовать
VirtualBox ,
которую можно абсолютно бесплатно скачать из Сети. Нас интересует версия для
Windows, поэтому файлом для скачивания будет VirtualBox-3.2.10-66523-Win.exe.

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

> cd c:\Program Files\Oracle\VirtualBox
> VBoxManage internalcommands createrawvmdk -filename c:\realhd.vmdk -rawdisk
\\.\PhysicalDrive0 -register

Образ realhd.vmdk, расположенный в корне диска C:, будет ссылаться на
физический диск (\\.\PhysicalDrive0 в нотации Windows), опция ‘-register’
позволяет сразу добавить его в "Менеджер виртуальных носителей" VirtualBox.
Забегая вперед, скажу, что то же самое в Linux можно проделать с помощью похожей
команды:

$ sudo VBoxManage internalcommands createrawvmdk -filename ~/realhd.vmdk
-rawdisk /dev/sda -register

Теперь можно скачать ISO-образ устанавливаемого Linux-дистрибутива и выделить
для него место на диске. Сделать это можно, уменьшив размер NTFS-раздела с
помощью Partition Magic в WinXP/Win2k3 или оснастки diskmgmt.msc в Vista/Seven.
После этого запускаем VirtualBox и создаем новую виртуальную машину, указав
подготовленный ранее образ в качестве первого жесткого диска. Далее открываем
свойства виртуальной машины, вкладку "Носители", и указываем в качестве CD-ROM
реальный привод компа. Запускаем ВМ и благополучно устанавливаем Linux в
свободную область диска. Предупрежу, что сразу перезагружать реальную машину не
стоит, иначе мы потеряем к ней сетевой доступ (сеть будет либо вообще не
настроена, либо настроена на подключение к виртуальной сети VirtualBox). Сначала
необходимо загрузить дистрибутив в виртуальной машине и настроить сеть так,
чтобы она была работоспособна после загрузки ОС на реальном железе (то есть
скопировать сетевые настройки из работающей в данный момент ОС). Делать это
нужно с предельной осторожностью, потому как одна ошибка навсегда отрежет машину
от интернета.

Большим плюсом будет работающий в локальной сети DHCP-сервер, раздающий
настройки для подключения к интернету, в этом случае ничего настраивать не
придется и достаточно будет установить SSH-сервер и завести пользователя, с
правами которого мы сможем попасть на машину (впрочем, последние две вещи
придется сделать в любом случае). Когда все это будет выполнено, машину можно
перезагрузить и минут через пять попытаться подключиться к ней по SSH.

От Windows к Linux. UNetbootin

UNetbootin (Universal Netboot Installer) - это графическая программа,
предназначенная для создания загружаемых USB-носителей с UNIX-подобными ОС на
борту или же установки UNIX на жесткий диск без использования физических
носителей. Она может работать как в Windows, так и в Linux, поддерживает
несколько десятков различных ОС (дистрибутивы Linux и ОС семейства BSD) и
невероятно проста в использовании. Далее мы рассмотрим, как с ее помощью
установить Ubuntu.

Для начала необходимо получить саму утилиту. Заходим на страницу
unetbootin.sf.net и
нажимаем большую синюю кнопку с надписью "Download" ("for Windows" или "for
Linux"). Запускаем полученный файл (в случае с Linux-версией его сначала
необходимо сделать исполняемым). Появится окно UNetbootin, в котором можно
выбрать дистрибутив, его версию, тип установки (NetInstall для сетевой установки
или HdMedia для установки с заранее подготовленного образа), в самом нижнем поле
можно выбрать тип установки, в нашем случае - "Жесткий диск", нажать кнопку ОК и
перезагрузить комп.

В обычной ситуации всего этого достаточно для того, чтобы UNetbootin смог
установить на диск загрузчик и минимальный Linux-образ, который скачает
установочные файлы ОС на диск и запустит инсталлятор. Однако мы имеем дело с
удаленной машиной и поэтому не сможем получить доступ к ОС до того момента, пока
она не будет полностью установлена (не сможем отвечать на вопросы инсталлятора).
Все это приведет к тому, что после перезагрузки машина окажется застопоренной на
первом же вопросе. Чтобы побороть проблему, нам придется создать собственный
установочный ISO-образ Ubuntu, который сможет произвести инсталляцию ОС в
полностью автоматическом режиме. Для этого нам потребуется образ серверной
версии Ubuntu-10.10 (десктопный вариант не поддерживает автоматизацию
установки), немного смекалки и файл дефолтовых ответов на вопросы инсталлятора
(так называемый preseed-файл).

Инструкция:

1. Скачиваем установочный образ Ubuntu 10.10 и распаковываем его в отдельный
каталог:

$ sudo mount -o loop ubuntu-10.10-server-i386.iso /cdrom
$ mkdir mycd
$ rsync -a /cdrom/ mycd

2. Добавляем в образ preseed-файл:

$ vi auto.seed
# Говорим по-русски
d-i debian-installer/locale string ru_RU
# Английскую раскладку, пожалуйста
# Можно сразу указать ru, чтобы потом не мучиться
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
# Пусть сам выберет дефолтовый сетевой интерфейс
d-i netcfg/choose_interface select auto
# Качаем пакеты по FTP
d-i mirror/protocol string ftp
# Ставим в самую большую неразмеченную область диска
d-i partman-auto/init_automatically_partition select biggest_free
# Все файлы в один раздел
d-i partman-auto/choose_recipe select atomic
# Ставим на Ext4
d-i partman/default_filesystem string ext4
# Соглашаемся со всем, что говорит программа разметки
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
# В системе один пользователь - user (пароль resu)
d-i passwd/user-fullname string Ubuntu User
d-i passwd/username string user
d-i passwd/user-password-crypted password
d-i user-setup/allow-password-weak boolean true
# Ставим десктопную редакцию дистрибутива
# Можно заменить на kubuntu-desktop или ubuntu-server, например
tasksel tasksel/first multiselect ubuntu-desktop
# Ставим SSH-сервер
d-i pkgsel/include string openssh-server
# Разрешаем загрузчику найти другие установленные ОС и добавить их в меню
d-i grub-installer/with_other_os boolean true
# Автодетект монитора (Ubuntu, как-никак)
xserver-xorg xserver-xorg/autodetect_monitor boolean true
$ sudo cp auto.seed mycd/preseed

В файле прописаны ответы на вопросы инсталлятора, по умолчанию будет выбран
русский язык и раскладка us, в качестве места дислокации новой ОС на диске будет
выбрана максимальная неразмеченная область, дополнительно будет установлен пакет
openssh-server и добавлен пользователь user с паролем resu, так что после
загрузки на машину можно будет войти по SSH. Если для подключения машины к сети
используется ручная настройка (а не DHCP), то строку "d-i netcfg/choose_interface
select auto" следует заменить на пять следующих строк, подставив реальные
адреса:

# DNS-сервер
d-i netcfg/get_nameservers string 8.8.8.8
# IP-адрес
d-i netcfg/get_ipaddress string 192.168.0.1
# Маска сети
d-i netcfg/get_netmask string 255.255.255.0
# Адрес шлюза
d-i netcfg/get_gateway string 192.168.0.2
# Подтверждение конфигурации
d-i netcfg/confirm_static boolean true

3. Редактируем конфиг загрузчика так, чтобы он узнал о существовании нашего
preseed-файла:

$ sed -e "s#file=/cdrom/preseed/ubuntu.seed#auto=true\ priority=critical\
file=/cdrom/preseed/auto.seed#" mycd/isolinux/txt.cfg > txt.cfg
$ sudo mv txt.cfg mycd/isolinux/

4. Удаляем старый файл контрольных сумм и создаем новый:

$ cd mycd
$ sudo rm md5sum.txt
$ find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo
tee md5sum.txt

5. Генерируем новый ISO-образ:

$ sudo mkisofs -D -r -V "Ubuntu 10.10 AutoInstall" -cache-inodes -J -l
-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table
-o ../ubuntu-10.10-server-i386-auto.iso

Закачиваем получившийся ISO-образ на удаленную машину, запускаем UNetbootin,
выбираем пункт "Образ диска", далее - "ISO-образ", находим образ на диске и
нажимаем кнопку ОК.

После завершения работы UNetbootin заходим в свойства "Моего компьютера",
открываем вкладку "Дополнительно", нажимаем кнопку "Параметры" в разделе
"Загрузка и восстановление" и выбираем "UNetbootin" в поле "Операционная
система, загружаемая по умолчанию". Это позволит машине автоматически загрузить
ISO-образ, установленный с помощью UNetbootin. Перезагружаем машину. Через 30
минут пробуем подключиться к серверу, молясь всем богам автоматизации. Примерно
также можно установить Debian, но с другими дистрибутивами все будет иначе.
Многие из них вообще не поддерживают автоматизацию процесса установки, другие
используют совсем другой ее вариант (например, Kickstart в RedHat).

От Windows к Linux. Grub4dos

Людей с пытливым умом наверняка интересует механизм работы UNetbootin. В этом
разделе речь пойдет о том, как вручную сделать то же, о чем мы говорили выше. В
качестве основного инструмента будет выступать Grub4dos - вариант Grub,
способный грузиться с FAT32 и NTFS-разделов, все тот же переработанный образ
Ubuntu и гвоздь программы - WinXP.

Главная задача - установить Grub4dos на системный диск Windows и сделать так,
чтобы мы смогли получить к нему доступ. Для этого идем по ссылке
, скачиваем последнюю версию
Grub4dos и распаковываем файлы grldr и menu.lst в корень диска C:. Далее снимаем
с файла c:/boot.ini атрибут "Только для чтения" и добавляем в конец секции следующую строку:

И эту строку последней:

c:\grldr="Grub4Dos"

Сохраняем файл. Открываем c:/menu.lst и пишем в него следующее:

title Ubuntu 10.10 AutoInstall
find --set-root /ubuntu-10.10-serveri386-auto.iso
map /ubuntu-10.10-server-i386-auto.iso(hd32)
map --hook
chainloader (hd32)

Сохраняем. Помещаем ISO-образ в корень диска C:, перезагружаем ОСь, ждем 30
минут, подключаемся по SSH с именем пользователя "user" и паролем "resu".

Установка Grub4dos в Vista/Seven

1. В корень диска C: помещаем файлы grldr, grldr.mbr и menu.lst;
2. Добавляем запись в загрузчик Windows:

> bcdedit /create /d "Grub4Dos" /application
bootsector

3. Редактируем запись (ID берем из вывода предыдущей команды):

> bcdedit /set ID device partition=C:
> bcdedit /set ID path \grldr.mbr
> bcdedit /displayorder ID /addlast

От Linux к FreeBSD. Путь джедая

Последний из вариантов удаленной установки ОС не так тривиален, как
предыдущие. Мы будем устанавливать FreeBSD на машину, работающую под управлением
Linux, причем сделаем это так, что свежеустановленная ОС полностью затрет
существующую. Для тех, кого интересует, зачем это нужно, отвечу: многие хостинги
сдают в аренду серверы только под управлением Linux, не предоставляя доступа к
удаленной консоли и таким образом лишая пользователей выбора. Описанная в статье
методика позволит поставить на сервер FreeBSD, имея доступ только по SSH.
Проделать это можно с помощью инструмента под названием
mfsBSD , который позволяет
создать минимальный дисковый образ FreeBSD, полностью загружаемый в память.
Записав этот образ в начало жесткого диска и перезагрузив машину, мы получим
сетевой доступ к полностью рабочей минимальной копии FreeBSD, которую сможем
использовать для последующей установки полноценной ОС с помощью стандартного
инсталлятора sysinstall. Порядок действий следующий:

1. Скачиваем архив mfsBSD на локальную машину и распаковываем его:

$ wget mfsbsd.vx.sk/release/mfsbsd-1.0.tar.gz
$ tar xzf mfsbsd-1.0.tar.gz
$ cd mfsbsd-1.0

2. Создаем конфигурационный файл rc.conf, который будет использоваться в
образе:

$ cp conf/rc.conf.sample conf/rc.conf

Добавляем в конец файла следующие строки:

$ vi conf/rc.conf
# IP-адрес маршрутизатора
defaultrouter="192.168.0.1"
# Настройки сетевого интерфейса
ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"

Здесь re0 используется в качестве примера. В реальной ситуации ты должен
узнать, какая сетевая карта установлена на машине (dmesg в помощь), и подобрать
к ней соответствующее имя сетевого интерфейса (которое по совместительству
является именем драйвера, например, re0 - это сетевая карта RealTek 8139C,
драйвер для которой носит имя "re"). Также следует отметить, что если машина
получает сетевые настройки по DHCP, то последняя строка должна иметь следующий
вид:

ifconfig_re0="DHCP"

3. Создаем мини-образ из установочного ISO-образа FreeBSD (можно скачать с
ftp://ftp.freebsd.org , либо
ближайшего зеркала):

$ sudo mount -o loop FreeBSD-8.1-RELEASE-i386-disc1.iso /cdrom

4. Перекидываем полученный образ на удаленную машину:

$ scp disk.img [email protected]:.

5. Заходим на удаленную машину с правами root’а, записываем образ на диск и
идем на перезагрузку:

# dd if=/root/disk.img of=/dev/sda bs=1m
# reboot

Через пять минут вновь подключаемся к удаленной машине в качестве root’а,
вводим пароль mfsroot, запускаем sysinstall и приступаем к обычной установке
FreeBSD. В качестве источника установки выбираем FTP или HTTP.

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

От FreeBSD к Linux.
Путь наименьшего сопротивления.

Чтобы установить Linux на FreeBSD-машину, достаточно
создать автоустанавливаемый образ Ubuntu, как это было
описано в разделе про UNetbootin, затем установить grub, как
показано ниже:

# cd /usr/ports/sysutils/grub
# sudo make install clean
# mkdir /boot/grub
# cp /usr/local/share/grub/i386-freebsd/* /boot/grub/
# touch /boot/grub/menu.lst
# sysctl kern.geom.debugflags=16
# grub-install /dev/ad0

И записать следующие строки в menu.lst:

# vi /boot/grub/menu.lst
title Ubuntu 10.10 AutoInstall
# Заменяем X, Y, Z на номер диска, раздела и букву
слайса, далее пишем полный путь до ISO-образа на
этом слайсе
map (hdX,Y,Z)/ubuntu-10.10-server-i386-auto.iso(hd32)
map --hook
chainloader (hd32)

После этого можно перезагружаться.

Заключение

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

Info

В Linux вместо VirtualBox гораздо удобнее использовать qemu:

$ sudo qemu -hda/dev/sda -cdrom ubuntu-10.10-desktop-i386.iso -boot
d

Warning

И Vino . Общий принцип работы: с компьютера под Windows создается защищенный SSH-туннель до Ubuntu и через него создается VNC-подключение (удаленный рабочий стол).

Статья делится на четыре части:

  • Установка и активация SecureShellServer: sudo apt-get install openssh-server service ssh status ssh start/running, process 2006

    Проверка открытости 22 порта (порт, используемый по умолчанию SSH):

    Netstat -tulpan | grep:22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -

    В Linux ля подключения по SSH с использованием локального проброса портов (local port forwarding) используется в общем виде следующая команда

    Ssh -C -p -L <локальный_порт>:<адрес_машины>:<удаленный_порт> -l <пользователь>

    Это означает, что любое соединение, исходящее из локального компьютера (localhost) через порт <локальный_порт> будет перенаправлено по SSH-тунелю на <удаленный_порт> удаленной машины.

    Существует некоторая путаница относительно какие же IP указывать в и <адрес_машины>. Если компьютер находится за роутером (NAT’ом) то <адрес_машины> должен быть внутренним ip-адресом компьютера (например, 10.0.0.5), а в внешним ip-адресом роутера. Если компьютер подключается к Интернету напрямую, то адреса и <адрес_машины> будут одинаковыми.

    Подводя итог про туннелирование рассмотрим пример:

    Ssh -l myuserid -L 7777:work:22 gate ssh -p 7777 localhost

    Данная комманда делает следующее: создается защищенное ssh-подключение к машине gate под пользователем myuserid. Одновременно с этим начинается прослушивание на локальной (с которой осуществлялось подключение) машине на порту 7777. Если организуется подключение на этот порт (опять изнутри самой локальной машины), то это соединение туннелируется в ssh-соедиенние, доходит до машины gate и с нее осуществляется соединение на машину work на 22 порт. После этого мы проверяем работу туннеля — подключаясь по ssh на локальный порт 7777 мы в итоге подключаемся к машине work (при учете что на ней настроен ssh сервер на порту 22).

    Усиленная защита при использовании SSH-туннеля достигается за счет того, что только один порт должен быть открыт наружу (SSH) и зашифрованное подключение будет идти только через этот порт.
    На сервере проверяем присутствует ли папка

    /home/<имя_пользователся>/.ssh

    /home/<имя_пользователся>/.ssh/authorized_keys

    в ней, если нет, то создаем под пользователем <имя_пользователся>(как правило, это первый пользователь в системе или администратор)

    Mkdir ~/.ssh cd ~/.ssh touch authorized_keys

    Настраиваем ssh для большей безопасности. Файл настроек лежит по адресу

    /etc/ssh/sshd_config

    Делаем резервную копию

    Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

    В общем случае следует изменить:

    • TCP-порт прослушивания (по умолчанию 22):
      Port <Порт_на_котором_SSH_будет_ждать_подключения>
    • Отключить ненадежный старый протокол SSH ver.1:
      Protocol 2
    • Разрешить аутентификацию парой открытого/закрытого ключей:
      PubkeyAuthentication yes
    • Указывать, где смотреть на разрешенные публичные ключи:
      AuthorizedKeysFile %h/.ssh/authorized_keys
    • Отключить возможность аутентификации с помощью пароля (можно сделать и позже, после удачного первого соединения):
      PasswordAuthentication no

    Для большей безопасности следует настроить на аутентификацию SSH с помощью открытого ключа.
    Разрешенные к подключению по ssh публичные ключи хранятся в файле

    ~/.ssh/authorized_keys

    Генерируем пару открытый/закрытый ключей на машине, с которой будем подключаться (будет описано далее) и копируем открытый ключ в этот файл.

    Особое внимание нужно обратить на форматирование – весь ключ должен быть размещен в одну строку и начинаться с «ssh-rsa » и доступ к файлу (-rw——- (600)).

    Настраиваем правильный доступ к файлу с ключами

    Chmod go-w $HOME $HOME/.ssh chmod 600 $HOME/.ssh/authorized_key chown `whoami` $HOME/.ssh/authorized_keys

    В файле настроек /etc/ssh/sshd_config изменяем

    StrictModes no

    Для применения настроек, внесенных в файл /etc/ssh/sshd_config , необходимо перезапустить демон sshd.

    Sudo /etc/init.d/ssh restart

  • Скачиваем putty.exe.
    Перед тем как погрузиться в настройки Putty необходимо сделать несколько замечаний.
    • Putty сохраняет настройки в профили.
    • Для сохранения всех настроек в профиль нужно перейти в меню Session в графе Saved Session ввести имя профиля и нажать Save. Для того чтобы загрузить определенный профиль в Putty в том же меню нужно выбрать нужный профиль по имени и нажать Load.
    • Для автоматической загрузки определенного профиля при запуске Putty нужно создать ярлык на exe-файл и в строке Рабочая папка дописать после пути к exe файлу добавить
      -load <имя_профиля>

    Для улучшения безопасности будет использоваться:

    • локальный проброс портов
    • система с открытым ключом

    В случае использования SSH-подключения для доступа по VNC (удаленному рабочему столу) необходимо настроить проброс портов, так называемый local port forwarding . Он используется для повышения безопасности, так как при использовании VNC данные передаются в открытом виде.

    Для проброса портов в Putty переходим в меню Connection -> SSH -> Tunnels и добавляем 5900 как "Source port", localhost:5900 в "Destination" и нажимаем Add.

    Для создания пары открытого/закрытого ключей можно использовать программу Puttygen. Скачиваем Puttygen.exe . В параметрах выбираем SSH-2 RSA, количество битов устанавливаем 2048 и нажимаем кнопку Generate.

    Для дополнительной защиты можно дважды прописать "passphrase". Если есть необходимость при SSH-соединении сразу входить в консоль, то поле можно оставить пустым.

    Открытый ключ сохраняется в понятном только Putty форматировании. Поэтому для установки его в Linux нужно сделать следующее:

    1. Пока puttygen еще открыта – скопировать публичный ключ в разделе "Public key for pasting…" И вставить в файл authorized_keys на сервере.
    2. Указать Putty на файл закрытого ключа в меню Connection -> SSH -> Auth в разделе "Private key file for authentication" сгенерированный файл*.ppk.
  • По умолчанию в Ubuntu уже включен VNC-сервер Vino. Для его настройки нужно перейти в Menu -> System -> Preferences -> Remote Desktop и включить удаленный доступ. В настройках можно включить аутентификацию по паролю, но нельзя настроить порт прослушивания (используется 5900).
    Для возможности более детальной настройки рекомендуется установить X11VNC.
  • Скачиваем TightVNC и устанавливаем. Для целей данной статьи достаточно выбрать только роль клиента.

    Запускаем на Windows машине TightVNC и в поле вбиваем

    Localhost:5900

Может рассматриваться как акт агрессии, но иногда он просто необходим.

Известны случаи, когда пользователи используют удаленные сессии для уже используемой машины (звучит необычно, но имеет место быть для организации работы с несколькими рабочими столами). Большинство пользователей не знают, когда именно им понадобится данная функциональность.

Опытные пользователи Unix-систем часто говорят о SSH и командной строке, как об инструментах получения доступа к графическому рабочему столу, но существуют отдельные приложения для данной цели.

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

Исследователи придерживались принципа справедливой оценки различных протоколов. Например, NoMachine NX поддерживает подключения VNC, но он проверялся в связке с собственным сервером NX, что вполне разумно.

Клиент TightVNC не тестировался, потому что он очень схож с реализацией TigerVNC. Оба продукта имеют одинаковую кодовую базу, но TigerVNC имеет несколько дополнительных функций.

Как проходило тестирование

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

При тестировании проверялась способность удаленно воспроизводить игру Armegatron. В этой нетребовательная игре на OpenGL на обновление экрана требуются доли секунд времени. Результаты могут быть несколько субъективны, но данный способ оказался очень действенным при демонстрации отзывчивости клиентов.

Клиенты были протестированы совместно с локальным компьютером с 4-х ядерным процессором и 16 гигабайтами памяти в гигабитной локальной сети под Ubuntu 14.04.3. В качестве серверов использовался сервер X11 VNC и официальный сервер NX для клиентов NX. Функциональность на базе протокола RDP поддерживается некоторыми продуктами, но на практике не была протестирована.

Сами клиенты работали на виртуальной машине с 2-х ядерным процессом Core i7, 4Гб ОЗУ и Fedora 23.

Нашли опечатку? Выделите и нажмите Ctrl + Enter


Дата публикации: вторник, 19 января 2009г. 10:43:53
Перевод: Коваленко А.М.
Дата перевода: 4 августа 2009 г.

Вы используете как Windows, так и Linux? Можете ли вы удаленно управлять Windows из Linux (Ubuntu либо другого дистрибутива) или Linux из Windows? Несомненно, можете. Подобно тому, как используется Подключение к удаленному рабочему столу между платформами Microsoft (или удаленное управление между машинами с Linux), возможно и управление рабочим столом из разных платформ. Вы можете щелкать мышью на рабочем столе и запускать приложения, точно так же, как если бы вы сидели прямо перед компьютером.

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

Выбор протокола удаленного рабочего стола

Приложения удаленного рабочего стола обычно используют либо Протокол Удаленного рабочего стола (RDP), либо протокол Виртуальной Вычислительной Сети (VNC). Для установки удаленного подключения оба узла (сервер и клиент) должны поддерживать один и тот же протокол. Проблема заключается в том, что не все операционные системы (ОС) используют одинаковые протоколы по умолчанию. Вдобавок к этому, некоторые дистрибутивы Linux и некоторые редакции Windows не содержат в себе ни серверного, ни клиентского приложения удаленного рабочего стола, либо не содержат приложение удаленного рабочего стола вообще.

Вашей первой задачей должно стать определение протокола, который уже поддерживается на ваших компьютерах. Дополнительно к исследованию вашей ОС, поиску документации, ссылкам на шпаргалки, вы должны иметь возможность понимать, что есть что и где. Затем, уже в конце, вы должны выбрать протокол для использования на всех ваших компьютерах.

Обратите внимание:

  • Удаленный рабочий стол 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 соединений и все настройки, необходимые для удаленного подключения через Интернет.

Eric Geier , автор множества книг о компьютерах и сетях, включая книги "Домашняя Сеть. Все в одном. Настольное руководство для чайников" (Wiley 2008) и "100 вещей, которые вам необходимо знать о Microsoft Windows Vista" (Que 2007).

Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!