sonyps4.ru

Подключение к удаленному компьютеру по VNC. Удалённое управление компьютером

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

UltraVnc – это ещё одна программа для удалённого управления компьютером.
Достоинства: бесплатная и поддерживает как Windows, так и unixOS (напримерLinux).
Недостатки: куча пугающих настроек на английском языке.

Итак, глаза боятся, а руки делают. Скачиваем свежую версию с официального сайта www.uvnc.com или скачать . Запускаем. Выбираем server (сервер) и viewer (просмотрщик). Сервер ставится на тех компьютерах, к которым будем подключаться, а просмотрщик на тех, с которых будем подключаться.

«Установить сервис » и «Позволить использовать Ctrl+Alt+Del ». Да.

Поле «Incoming Connections » — «Входящие соединения».

Accept Socket Connections - включаем (т.е. нетрогаем).

Display - показывает номер порта (теоретически). Не трогаем.

Ports – пусть остаётся авто.

Enable JavaViewer (HTTP connect) - разрешить java-просмотрщик (через браузер). Да.

Allow Loopback Connections - разрешить соединение через «петлю» (как бы сам не себя для теста). Оставляем.

Loopback Only - только «петля» — больше ничего работать не будет. Нет.

Поле «Authentication » — «Аутентификация» (подтверждение личности/прав).

VNC Password - пароль на управление (на англ.).

View-Only Password – пароль только для просмотра (на англ.). Неплохо бы выставить его отличным от VNC.

Require MS Logon — применяет учётные записи windows. Галочку не ставим.

Поле «File Transfer » — «Передача файлов».Да, пригодится.

Поле «DSM Plugin » — шифрование данных. Как хотите, я не ставлю.

Поле «When last client disconnects » — «Когда последний клиент отключен».

— Ничего не делать. Выбираем .
— Заблокировать комп.
— Завершить сеанс.

Поле «Keyboard&Mouse » — «Клавиатура и мышь». Я ничего не выставляю.
— Отключает мышь и клаву того, кто подключается.
— Отключает мышь и клаву того, к кому подключаются.
— Японская клава.

Поле «Query on incoming connection » — «Запрос о входящем соединении».
Спрашивает у пользователя, разрешает ли он подключение к нему.
Display Query Window — время показа сообщения. Если пользователь ничего не нажал:
Refuse – отказ подключения.
Accept – резрешение подключения.

Поле «Multi Viewer Connections » — «Одновременное подключение нескольких клиентов».
— «Disconnect all existing connections » — отключение последнего после подключения нового. Оставляем.
— «Keep existing connections » — удерживать все подключения.
— «Refuse the new connection » — пункт означает, что идёт запрет на новое подключение, хотя на практике никакого запрета нет.
— «Refuse all new connections » — не позволять новых подключений, если одно уже есть.

Поле «Misc. » - тут всякие полезности для удобства, ускорения работы, уменьшения трафика.
Remove Aero (Vista) - отключить Aero (3D, прозрачность и прочие «украшения»). Отмечаем.
Remove Wallpaperfor Viewers - убирает обои с рабочего стола. Ставим галочку.
EnableBlank Monitoron Viewer Request - отключение монитора управляемого компа. Данная опция работает со сбоями, поэтому я снимаю галочку.
Disable Only Inputson Blanking Request - запрещает только ввод с консоли сервера, при этом экран не закрывается.
Enable Alpha-Blending Monitor Blanking - другой вариант отключения монитора сервера. Используйте, если с первым вариантом проблемы.
Capture Alpha-Blending - возможность видеть включенное видео. Работает со сбоями, но очень полезная функция, когда нужно просмотреть видеокамеры, например. Отмечаем.
Disable Tray icon - отключает иконку в трее. Отмечаем.
Forbid the user to close down WinVNC - запрещает отключать сервер. Ставим галочку.
Default Server Screen Scale - масштаб экрана при подключении. Оставляем 1/1.

Поле «Logging » — «Создание log-файла»
Log debug infos to the WinVNC.log file - пишет лог сервера. Не нужно.

Настройки выставлены, кликаем Apply и ОК.

На рабочем столе появляются три иконки: просмотрщик (Ultra VNC Viewer), сервер (Ultra VNC Server) и настройки (Ultra VNC Settings).
Открываем «Настройки» (Settings) и можем их здесь изменить. Но есть одна новая настройка «ScreenCapture » — захват экрана. Позволяет делать скриншоты рабочего стола.

Поле «Capture Options » — «Опции захвата». — Poll Full Screen – весь экран.
Poll Foreground Window – активное окно.
Poll Console Windows Only – только окно консоли.
Poll On Event Only –только окно события.
Poll Window Under Cursor – окно под курсором.
LowAccuracy (низкая точность) — дает прибавку в скорости за счет снижения точности.

Поле «Advanced » — «Расширенные».
Use System HookDll - опция имеет смысл на Windows 9x.
Video Hook Driver - использовать драйвер захвата видео. Обеспечивает наилучшее быстродействие на Windows XP, Vista, 7.
Show Primary Display — показывать первый экран.
Show Secondary Display – показать второй экран.
Capture Alpha-Blending – захват изображения видео.
Remote Aer While connected – отключить Aero, когда подключено соединение.
Remote Wall paper While connected – отключить обои рабочего стола, когда подключено соединение.

Двойной клик по значку «сервера» (Ultra VNC Server) запускает сервер, если он ещё не запущен.
Теперь запускаем «просмотрщик» (Ultra VNC Viewer).

Поле «Quick Options » настраивается скорость подключения.
Оставляем авто. Так же есть настройки:
View Only – только просмотр. Только при подглядывании.
Auto Scaling – нет полос прокрутки, при движении мышки вниз экран движется сам. Ставим .
Confirm Exit — подтверждать выход. Не нужно .

В общем больше нам ничего не нужно, поэтому вводим IP-адрес компьютера (как узнать IP-адрес своего компьютера смотрите ), на котором стоит уже настроенный сервер (UltraVNCServer) и жмём «Connect ». После запроса пароля попадаем на нужный нам компьютер.

(Visited 28 161 times, 7 visits today)

Virtual Network Computing (VNC) — система для удаленного доступа к рабочему столу. Если вы представляете себе Remote Desktop или RAdmin, то VNC решает аналогичную задачу, только VNC-сервера распространяются бесплатно и с открытым исходным кодом. Важно отметить, что VNC не является протоколом. Используемый протокол называется Remote FrameBuffer (RFB). Этот протокол полностью описан в этом PDF .

Зачем кому-то поднимать VNC:

  • Если пробрасывание UI по SSH слишком тормозит;
  • Сервер используется как виртуалка, только с совместным доступом;
  • Торрентокачалка с белым IP, просто ставим Transmission и вперед;
  • Своего рода альтернатива проксям и VPN ;
  • И прочее, на что фантазии хватит;

Приступим. Все описанные ниже шаги проверялись на Ubuntu Linux 14.04 LTS, но также должны без особых изменений работать на других версиях Ubuntu, а также других системах. Для эксперимента нам понадобится ненужная машина, возможно, виртуалка в каком-нибудь DigitalOcean , имеющая по крайней мере 512 Мб памяти. Если вы планируете запускать тяжелые GUI-программы вроде Google Chrome, то сразу выделяйте 1 Гб, а лучше и того больше. Если выделить только 512 Мб, вы сможете открыть только одну вкладу с GMail, после чего память закончится, я проверял. Меня лично очень печалит, что браузеры стали такими прожорливыми, но это, пожалуй, тема для отдельного поста.

На машине, где будем поднимать VNC, под рутом заводим нового пользователя:

adduser ubuntu
usermod -G sudo ubuntu

Прописываем ему наш ~/.ssh/id_rsa.pub:

su ubuntu
vim ~/ .ssh/ authorized_keys
chmod 0600 ~/ .ssh/ authorized_keys

У себя на компьютере в ~/.ssh/config дописываем:

Host vnc-server
Hostname 123.45.67.89
User ubuntu
LocalForward 5901 localhost:5901

В VNC не шифруется трафик, поэтому мы будем ходить в него, используя перекидывание портов по SSH. Если вы также собираетесь использовать технику проброса звука, описанную в заметке Осилил запуск GUI-приложений в Docker , добавьте строчку:

RemoteForward 3333 localhost:4713

Заходим на vnc-server под пользователем ubuntu, говорим:

sudo apt-get update
sudo apt-get install xubuntu-desktop tightvncserver xfonts-base \
xfonts-75dpi xfonts-100dpi

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

Правим файл ~/.vnc/xstartup, содержание должно стать примерно таким:

#!/bin/sh

Xrdb $HOME / .Xresources
xsetroot -solid grey
startxfce4 &
(sleep 3 && xfce4-panel) &

Запустить сервер:

vncserver:1 -localhost -nolisten tcp

Здесь аргумент :1 — это номер дисплея. Можно запускать несколько десктопов, работающих одновременно. Флаг -localhost означает принимать соединения только с этой же машины. Параметр -nolisten tcp нужен для того, чтобы порт 6001 не торчал наружу. При первом запуске сервера понадобится ввести пароль для доступа к десктопу. Обратите внимание, что пароль обрезается до восьми символов. Также вас спросят про отдельный пароль для view-only соединения:

Would you like to enter a view-only password (y/n)? n

Сменить пароль можно командой:

Остановить сервер:

vncserver -kill :1

Чтобы подключиться к работающему серверу, нужен какой-нибудь VNC-клиент. В Ubuntu по умолчанию идет Remmina. В маках, как мне рассказывали, VNC клиент находится в Finder → Connect to Server. В качестве адреса сервера указываем localhost:5901, оттуда соединение будет переброшено по SSH на порт 5901 VNC-сервера. В общем случае номер порта вычисляется, как 5900 + номер дисплея.

Дополнение: А во FreeBSD я делаю так:

sudo pkg install tightvnc
vncviewer -bgr233 localhost:5901

Если все было сделано правильно, вы увидите среду рабочего стола Xfce. Ее также следует немного донастроить. В Applications Menu → Settings → Session and Startup во вкладке Advanced ставим галочку Launch GNOME services on startup. Во вкладке Application Autostart отключаем разные лишние сервисы типа Bluetooth Applet. Иначе некоторые приложения, в частности, Skype, могут ронять вообще все иксы с очень странными ошибками в логах. Я лично оставил только следующие галочки:

Теперь прописываем VNC на автозапуск. В /etc/init.d/vncserver пишем.

VNC (Virtual Network Computing) – это система удалённого доступа, которая позволяет использовать клавиатуру и мышь для взаимодействия с графическим интерфейсом рабочего стола удалённого сервера. С её помощью можно управлять файлами, программным обеспечением и настройками удалённого сервера, не обращаясь к командной строке.

Данный мануал поможет установить VNC на виртуальный выделенный сервер Ubuntu 16.04 и настроить безопасное подключение при помощи SSH-туннеля. Сервер VNC будет использовать TightVNC , быстрый и легковесный пакет удалённого управления, поддерживающий работу даже при медленном интернете.

Требования

  • Сервер Ubuntu 18.04, настроенный по .
  • Локальный компьютер с предустановленным клиентом VNC, который поддерживает VNC-соединения через SSH-туннель. Пользователи Windows могут установить TightVNC , RealVNC или UltraVNC . Пользователи Mac OS X могут обратиться к встроенному пакету Screen Sharing или использовать кроссплатформенные приложения (например, RealVNC). Пользователи Linux могут выбрать vinagre, krdc, RealVNC , TightVNC и т.п.

1: Установка среды рабочего стола и сервера VNC

По умолчанию серверы Ubuntu 18.04 поставляются без предустановленного графического окружения рабочего стола и сервера VNC. Потому сначала нужно установить эти компоненты. В данном мануале используются пакеты Xfce и TightVNC, доступные в официальном репозитории Ubuntu.

Чтобы установить на сервер указанные пакеты, обновите индекс и введите команду:

sudo apt update
sudo apt install xfce4 xfce4-goodies

Теперь установите TightVNC:

sudo apt install tightvncserver

Чтобы завершить начальную настройку сервера VNC после его установки и выбрать надёжный пароль, используйте команду vncserver.

Команда предложит выбрать и подтвердить пароль:

You will require a password to access your desktops.
Password:
Verify:

Пароль должен быть длинной от шести до восьми символов. Более длинные пароли будут автоматически сокращены до 8 символов.

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

Затем процесс завершит начальную настройку VNC и создаст конфигурационные файлы.

Would you like to enter a view-only password (y/n)? n
xauth: file /home/8host/.Xauthority does not exist
New "X" desktop is your_hostname:1
Creating default startup script /home/8host/.vnc/xstartup

2: Настройка сервера VNC

Сначала нужно определить команды, которые сервер VNC будет выполнять при запуске. Эти команды должны находиться в файле xstartup в каталоге.vnc, который хранится в домашнем каталоге текущего пользователя. Сценарий запуска был создан командой vncserver, но его нужно откорректировать для взаимодействия с Xfce.

При первом запуске VNC использует порт 5901. VNC называет этот порт:1. VNC может запускать другие экземпляры на другие порты, которые будут называться:2, :3, и т.д.

Чтобы изменить настройки сервера VNC, нужно остановить экземпляр, использующий порт 5901.

vncserver -kill:1

Команда вернёт такое сообщение (PID будет отличаться):

Killing Xtightvnc process ID 17648

Создайте резервную копию файла xstartup:

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Затем создайте новый файл xstartup:

nano ~/.vnc/xstartup

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

~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

При помощи первой команды, xrdb $HOME/.Xresources, GUI сервера VNC читает файл.Xresources. В файле.Xresources пользователь может вносить изменения в некоторые настройки графического рабочего стола (настраивать цвета терминала, темы курсора, шрифты). Вторая команда просто запускает Xfce, в котором хранится все графическое программное обеспечение, необходимое для управления сервером.

Теперь нужно сделать файл исполняемым:

sudo chmod +x ~/.vnc/xstartup

Перезапустите VNC:

Во время запуска сервер вернёт:

New "X" desktop is your_hostname:1
Starting applications specified in /home/8host/.vnc/xstartup
Log file is /home/8host/.vnc/your_hostname:1.log

3: Безопасное подключение к VNC

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

Создайте на локальном компьютере соединение SSH, которое перейдет в localhost соединение для VNC. Вы можете сделать это в Linux или macOS через терминал с помощью следующей команды:

Флаг -L указывает привязки портов. В этом случае мы привязываем порт 5901 удаленного подключения к порту 5901 на локальном компьютере. Флаг -C включает сжатие, а -N сообщает ssh, что выполнять удаленную команду не нужно. Параметр -l указывает имя удаленного входа.

Не забудьте заменить 8host и your_server_ip своими данными.

Если вы работаете через графический SSH-клиент, например PuTTY, используйте настройках SSH-туннеля your_server_ip в качестве IP-соединения и установите localhost: 5901 в качестве нового порта.

Когда туннель запустится, используйте VNC клиент для подключения к localhost:5901. При этом будет запрошен пароль, который вы выбрали в разделе 1.

После этого вы увидите стандартный экран Xfce.

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

Нажмите CTRL + C в терминале, чтобы закрыть туннель SSH и вернуться в командную строку. Это также завершит ваш сеанс VNC.

4: Создание файла сервиса VNC

Теперь нужно настроить сервер VNC как сервис system.

Создайте новый юнит-файл /etc/systemd/system/[email protected]:

sudo nano /etc/systemd/system/[email protected]

Символ @ в конце имени файла позволит вам передать аргумент, который можно использовать в конфигурации сервиса. С его помощью можно указать порт VNC, который нужно использовать при управлении сервисом.

Добавьте в файл следующие строки. Обязательно измените значение User, Group, WorkingDirectory и имя пользователя в значении PIDFILE.

/etc/systemd/system/[email protected]
Description=Start TightVNC server at startup
After=syslog.target network.target
Type=forking
User=8host
Group=8host
WorkingDirectory=/home/8host
PIDFile=/home/8host/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill:%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800:%i
ExecStop=/usr/bin/vncserver -kill:%i
WantedBy=multi-user.target

Команда ExecStartPre останавливает VNC, если сервис уже запущен. Команда ExecStart запускает VNC и устанавливает глубину цвета – 24-битный цвет с разрешением 1280×800. Вы также можете изменить эти параметры в зависимости от потребностей.

Сохраните и закройте файл.

Затем дайте сообщите системе про новый юнит файл.

sudo systemctl daemon-reload

Включите его:

sudo systemctl enable [email protected]

Цифра 1, идущая за @, определяет, какой номер дисплея должен отображаться в сервисе, в этом случае это значение по умолчанию.

Остановите текущий экземпляр сервера VNC, если он еще запущен.

vncserver -kill:1

Теперь попробуйте запустить его как любой другой сервис systemd:

sudo systemctl start vncserver@1

Чтобы убедиться, что сервер запущен, проверьте его состояние:

sudo systemctl status vncserver@1

[email protected] — Start TightVNC server at startup

Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)
Active: active (running) since Mon 2018-07-09 18:13:53 UTC; 2min 14s ago
Process: 22322 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800:1 (code=exited, status=0/SUCCESS)
Process: 22316 ExecStartPre=/usr/bin/vncserver -kill:1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)
Main PID: 22330 (Xtightvnc)
...

Теперь сервис VNC добавлен в автозагрузку.

Снова запустите туннель SSH:

ssh -L 5901:127.0.0.1:5901 -C -N -l 8host your_server_ip

Создайте новое подключение с клиента VNC на localhost:5901, чтобы протестировать настройку.

Заключение

Теперь на сервере Ubuntu 18.04 установлен сервер VNC. С его помощью вы можете управлять файлами, программами и настройками удалённого сервера (например, удаленно запускать веб-браузер).

Tags: , 25 ноября 2009 в 13:21

Подключение к удаленному компьютеру по VNC

  • Настройка Linux

Работа с VNC-клиентом. Материал ориентирован на неопытного пользователя.

1. Установка VNC-клиента
2. Подключение VNC-клиента к удаленному компьютеру
3. Отключение VNC-клиента от удаленного компьютера
4. Тюнинг VNC-клиента
5. Частые проблемы

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

1. Установка VNC-клиента
Для ОС Windows можно бесплатно скачать и инсталлировать VNC-клиент UltraVNC и TightVNC .

Mac OS X начиная с версии 10.5 имеет поддержку VNC-клиента в RemoteDesktop . Для предыдущих версий можно использовать VNC-клиенты JollysFastVNC и .

Для Linux ветви Debian (Ubuntu) VNC-клиент устанавливается из репозитория командой:

Apt-get install vncviewer

Для ветви RedHat (CentOS, Fedora) - командой:

Yum install vnc

Для FreeBSD VNC-клиент (TightVNC) устанавливается из пакетов командой:

Pkg_add -r tightvnc

2. Подключение VNC-клиента к удаленному компьютеру
Для подключения VNC-клиента к удаленному компьютеру требуется указать его IP-адрес или DNS-имя, и номер дисплея (по умолчанию, :0) или номер TCP-порта (по умолчанию, 5900). Если VNC-сервер требует авторизации, то при подключении к нему VNC-клиент запросит пароль. Обратите внимание, что пароль доступа к VNC-серверу не связан с каким-либо аккаунтом (учетной записью пользователя) на удаленном компьютере, а служит только для ограничения доступа к дисплею VNC-сервера.

После установки соединения и открытия экрана, в зависимости от настроек VNC-сервера может потребоваться авторизация пользователя на виртуальном сервере или может быть открыта уже запущенная рабочая сессия какого-либо пользователя.

Так как на компьютере одновременно могут работать несколько VNC-серверов, для их разделения используют параметр номер дисплея . Например, один VNC-сервер может быть запущен на дисплее:0, другой - на дисплее:1. Каждому номеру дисплея соответствует номер TCP-порта, на котором VNC-сервер принимает соединения. Номер порта для дисплея получается прибавлением номера дисплея к базовому номеру порта - 5900. Дисплею:0 соответствует TCP-порт 5900, дисплею:1 - порт 5901.

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

Главный параметр, который влияет на объем передаваемых данных - алгоритм кодирования передаваемой графики. Для уменьшения объема и, соответственно, ускорения работы, рекомендуется использовать алгоритмы Tight, ZLib, ZRLE - по сравнению с несжатыми данными (Raw), они обеспечивают сжатие в десятки раз, заметно нагружая процессор. Эти алгоритмы кодирования обеспечивают комфортную работу даже на каналах со скоростью 256-512 Кбит/сек.

Для сокращения объема передаваемой по сети информации также можно устанавливать высокий уровень сжатия (Compression Level, Compression Value), низкий уровень качества JPEG (JPEG Quality) и включать режим уменьшения количества цветов (-bgr233, Restricted colors). Самый большой эффект из них при заметном снижении качества изображения дает режим уменьшения количества цветов - объем передаваемой информации уменьшается в 1.5-3 раза, соответственно, в 1.5-3 раза ускоряется отображение на экране.

JPEG применяется алгоритмом кодирования Tight для сжатия участков экрана, содержащих фотографии и другие сложные изображения с большим числом цветов. Использование Tight+JPEG сокращает в 2-5 раз объем передаваемых при этом данных. Другие алгоритмы кодирования JPEG не поддерживают.

1. Выпадающего меню «Система -> Параметры»

Объем передаваемых данных и скорость отображения на канале 1 Мбит/сек при открытии выпадающего меню «Система -> Параметры» (на рисунке меню выделено зеленым пунктиром):

5. Частые проблемы
Не удается подключиться к VNC-серверу
Нужно проверить:
  1. есть ли доступ к интернету;
  2. отвечает ли виртуальный сервер на пинги;
  3. запущен ли на виртуальном сервере VNC-сервер;
  4. нет ли по пути файервола, закрывающего доступ к TCP-порту VNC-сервера;
  5. правльно ли указан номер дисплея или TCP-порт VNC-сервера (номер порта = 5900 + номер дисплея).
Медленная работа через достаточно быстрый канал
Если VNC-клиент не может согласовать с VNC-сервером использование алгоритм кодирования графики с компрессией данных, выбирается алгоритм по умолчанию - Raw, который передает данные без сжатия. Также кодирование без сжатия или с низким уровнем сжатия может автоматически выбираться VNC-клиентом при работе через быструю локальную сеть. Данную проблему можно исправить, принудительно указав в настройках VNC-клиента алгоритм кодирования с высоким уровнем сжатия - ZLib, ZRLE, Tight.

Однако, для некоторых сочетаний клиента и сервера такое решение может быть бесполезным из-за ошибок в согласовании алгоритма кодирования. Например, клиент TightVNC с сервером RealVNC часто могут работать только с кодировкой Raw. Решением в этом случае будет смена VNC-клиента или VNC-сервера.

VNC (или Virtual Network Computing) – это система, позволяющая пользоваться графическим интерфейсом удалённого сервера. Она может передавать обновления экрана и события клавиатуры и мыши по сети.

Система VNC полезна в ситуациях, когда сервер нуждается в графическом окружении рабочего стола.

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

Примечание: При желании можно пользоваться и другим окружением рабочего стола (Gnome или KDE, к примеру).

Данное руководство поможет подготовить Debian 8, установить окружение рабочего стола XFCE и настроить VNC. Кроме того, в руководстве показано, как создать скрипт запуска сервера VNC и защитить его по SSH.

Требования

Предварительно настроенный Debian 8 (или 8.1) с root-доступом. 512 MB памяти будет достаточно для запуска VNC и XFCE. Однако в зависимости от ваших планов вам может понадобиться и больший объём памяти.

Клиент VNC на компьютере, чтобы иметь возможность подключиться к серверу. В руководстве используется UltraVNC в системе Windows, но, конечно, можно использовать любой другой клиент VNC. Загрузить UltraVNC можно по этой ссылке. Система OS X поставляется с собственным клиентом VNC, Screen Sharing.

SSH-клиент для безопасного подключения. В системе Windows будет использоваться PuTTY (загрузить можно здесь). В OS X используйте встроенное приложение терминала.

1: Установка VNC и XFCE

Сначала нужно установить сервер VNC и окружение рабочего стола XFCE, а также несколько дополнительных программ.

Обновите список пакетов сервера:

Теперь обновите список пакетов

apt-get -y upgrade

Установите пакеты tightvncserver, XFCE4, несколько полезных пакетов и icon-theme:

apt-get install xfce4 xfce4-goodies gnome-icon-theme tightvncserver

По умолчанию браузер не установлен. Вы можете установить iceweasel (версия Mozilla Firefox для Debian), чтобы иметь возможность просматривать сайты:

apt-get install iceweasel

2: Создание пользователя для VNC

Создайте отдельного пользователя для подключений VNC. Рекомендуется использовать sudo вместо пользователя root.

Чтобы добавить на сервер пользователя vnc, выполните команду:

Создайте пароль для нового пользователя. На остальные вопросы можно просто нажать Enter, чтобы принять стандартные данные.

Чтобы установить sudo, используйте команду:

apt-get install sudo

Добавьте нового пользователя vnc в группу sudo, что передаст ему привилегии root.

gpasswd -a vnc sudo

Переключитесь в сессию пользователя vnc:

3: Запуск сервера VNC

В сессии пользователя vnc запустите сервер VNC и проверьте соединение.

При первом запуске программа предложит установить пароль для соединения с клиентами. Установите пароль и запомните/запишите его, он понадобится в дальнейшем. Кроме того, можно установить пароль только для просмотра, который позволит пользователям видеть экран, но заблокирует взаимодействие с ним. Примечание: Пароль должен состоять из 6-8 символов.

На экране появится номер текущего дисплея:

xauth: file /home/vnc/.Xauthority does not exist
New "X" desktop is vnc:1
Creating default startup script /home/vnc/.vnc/xstartup
Starting applications specified in /home/vnc/.vnc/xstartup
Log file is /home/vnc/.vnc/vnc:1.log

По умолчанию первое соединение VNC обслуживается на порте 5901, второе – на 5902, и т.д.

Примечание: На данном этапе останавливать сервер не нужно. Команда для остановки сервера приведена ниже для справки.

Чтобы остановить сервер VNC, запустите на Display 1 (порт 5901) следующую команду:

vncserver -kill:1

где:1 – номер дисплея, который нужно остановить.

При необходимости сервер VNC можно запустить вручную. Позже будет показано, как создать сервис для VNC.

4: Подключение с клиента

Теперь можно подключиться к VNC. Для этого используйте локальный VNC-клиент, который зависит от операционной системы.

На Windows можно использовать UltraVNC.

OS X предоставляет для этого встроенное приложение Screen Sharing. Можно также использовать Safari. Для этого введите:

vnc://yourserverip:5901

В качестве адреса сервера VNC введите:

yourserverip:5901

и укажите только что выбранный пароль для VNC-подключений.

Теперь можно пользоваться удалённым рабочим столом.

5: Создание сервиса для VNC

Теперь можно создать сервис, добавив VNC в system. Сервисы позволяют запускать и останавливать VNC-сервер, а также запускать его автоматически при перезагрузке виртуального сервера.

Остановите текущий интерфейс:

vncserver -kill:1

Создайте простой скрипт для управления сервером VNC.

В сессии пользователя vnc (или любого другого пользователя с правами sudo) создайте скрипт-файл.

Вставьте в него следующий код без изменений. Этот скрипт содержит несколько параметров для запуска VNC.

#!/bin/bash
PATH="$PATH:/usr/bin/"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"

case "$1" in
start)
/usr/bin/vncserver ${OPTIONS}
;;
stop)
/usr/bin/vncserver -kill:${DISPLAY}
;;
restart)
$0 stop
$0 start
;;
esac
exit 0

Можно немного изменить скрипт, чтобы отрегулировать глубину цвета VNC.

В текстовом редакторе nano нажмите CTRL+O, чтобы сохранить, и CTRL+X, чтобы закрыть файл.

Сделайте файл исполняемым:

sudo chmod +x /usr/local/bin/myvncserver

Этот скрипт позволяет редактировать настройки и быстро запускать и останавливать сервер.

Примечание: При необходимости скрипт можно запустить/остановить вручную.

sudo /usr/local/bin/myvncserver start
sudo /usr/local/bin/myvncserver stop
sudo /usr/local/bin/myvncserver restart

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

sudo nano /lib/systemd/system/myvncserver.service

Скопируйте следующий код в файл. Данный сервис будет просто вызывать ранее созданный скрипт запуска.


Description=Manage VNC Server on this droplet
Type=forking
ExecStart=/usr/local/bin/myvncserver start
ExecStop=/usr/local/bin/myvncserver stop
ExecReload=/usr/local/bin/myvncserver restart
User=vnc
WantedBy=multi-user.target

Перезапустите systemctl и включите сервис:

sudo systemctl daemon-reload
sudo systemctl enable myvncserver.service

Итак, теперь сервис включен. Используйте следующие команды для управления сервисом при помощи systemctl:


sudo systemctl stop myvncserver.service
sudo systemctl restart myvncserver.service

Запустите сервер VNC как сервис.

6: Защита VNC при помощи SSH-туннелирования

По умолчанию соединения VNC не шифруются. Потому для защиты данных рекомендуется использовать SSH-туннель.

Для этого нужно разрешить запуск VNC только на локальном хосте. Добавьте флаг -localhost в строку OPTIONS в ранее созданном скрипте.

Остановите сервер VNC:

sudo systemctl stop myvncserver.service

Отредактируйте скрипт:

sudo nano /usr/local/bin/myvncserver

Найдите эту строку:

. . .
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
. . .

И замените её:

. . .
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
. . .

Затем запустите VNC:

sudo systemctl start myvncserver.service

Теперь можно подключаться к серверу VNC с удалённого компьютера.

Для пользователей Windows

Для создания SSH-туннеля используйте PuTTY.

Откройте PuTTY.

В левом меню перейдите в раздел Connection->SSH->Tunnels.

В разделе Add New Forwarded Port укажите порт 5901 как Source port, а в поле Destination укажите localhost:5901. Нажмите Add.

Затем откройте раздел Session и в поле Host Name (or IP address) введите свой IP-адрес. Чтобы подключиться, нажмите Open.

Откройте сессию vnc. Не закрывайте окно PuTTY, пока соединение VNC не установится.

Затем используйте клиент VNC. Просто введите localhost::5901 и переведите соединение SSH в фоновый режим.

Для пользователей OS X

Чтобы создать SSH-туннель, введите в терминал:

ssh vnc@your_server_ip -L 5901:localhost:5901

Пройдите аутентификацию. Затем укажите localhost:5901 для Screen Sharing.

Заключение

Теперь у вас есть доступ к расшаренному удалённому рабочему столу на сервере Debian 8, который можно использовать для настройки сервера или совместного работы.

Tags: ,

Загрузка...