- Подключение к удаленному компьютеру по VNC
- Настройка сервера VNC на Debian 8
- 1: Установка VNC и XFCE
- 2: Создание пользователя для VNC
- 3: Запуск сервера VNC
- 4: Подключение с клиента
- 5: Создание сервиса для VNC
- 6: Защита VNC при помощи SSH-туннелирования
- Для пользователей Windows
- Для пользователей OS X
- Заключение
- VNCviewer
- High CPU usage in X when VNC client is connected
- Add parameters in x11vnc command line
- Create / Specify display driver in /etc/X11/xorg.conf
- Other VNC Tools
- VNC ‘Server side’
- VNC ‘Client side’
- VNC Tools
Подключение к удаленному компьютеру по VNC
Работа с 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 и Chicken.
Для 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 Мбит/сек при открытии выпадающего меню «Система -> Параметры» (на рисунке меню выделено зеленым пунктиром):
Полноцветный режим | 256 цветов (BGR233) | |||
---|---|---|---|---|
Объем | Время | Объем | Время | |
ZLib | 11 Кб | 0.09 сек | 7 Кб | 0.06 сек |
HexTile | 208 Кб | 1.6 сек | 118 Кб | 0.95 сек |
Raw | 248 Кб | 2 сек | 128 Кб | 1 сек |
5. Частые проблемы
Не удается подключиться к VNC-серверу
Медленная работа через достаточно быстрый канал
Если VNC-клиент не может согласовать с VNC-сервером использование алгоритм кодирования графики с компрессией данных, выбирается алгоритм по умолчанию — Raw, который передает данные без сжатия. Также кодирование без сжатия или с низким уровнем сжатия может автоматически выбираться VNC-клиентом при работе через быструю локальную сеть. Данную проблему можно исправить, принудительно указав в настройках VNC-клиента алгоритм кодирования с высоким уровнем сжатия — ZLib, ZRLE, Tight.
Однако, для некоторых сочетаний клиента и сервера такое решение может быть бесполезным из-за ошибок в согласовании алгоритма кодирования. Например, клиент TightVNC с сервером RealVNC часто могут работать только с кодировкой Raw. Решением в этом случае будет смена VNC-клиента или VNC-сервера.
Источник
Настройка сервера VNC на Debian 8
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 введите:
и укажите только что выбранный пароль для VNC-подключений.
Теперь можно пользоваться удалённым рабочим столом.
5: Создание сервиса для VNC
Теперь можно создать сервис, добавив VNC в system. Сервисы позволяют запускать и останавливать VNC-сервер, а также запускать его автоматически при перезагрузке виртуального сервера.
Остановите текущий интерфейс:
vncserver -kill :1
Создайте простой скрипт для управления сервером VNC.
В сессии пользователя vnc (или любого другого пользователя с правами sudo) создайте скрипт-файл.
sudo nano /usr/local/bin/myvncserver
Вставьте в него следующий код без изменений. Этот скрипт содержит несколько параметров для запуска VNC.
#!/bin/bash
PATH=»$PATH:/usr/bin/»
DISPLAY=»1″
DEPTH=»16″
GEOMETRY=»1024×768″
OPTIONS=»-depth $
case «$1» in
start)
/usr/bin/vncserver $
;;
stop)
/usr/bin/vncserver -kill :$
;;
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
Скопируйте следующий код в файл. Данный сервис будет просто вызывать ранее созданный скрипт запуска.
[Unit] Description=Manage VNC Server on this droplet
[Service] Type=forking
ExecStart=/usr/local/bin/myvncserver start
ExecStop=/usr/local/bin/myvncserver stop
ExecReload=/usr/local/bin/myvncserver restart
User=vnc
[Install] WantedBy=multi-user.target
Перезапустите systemctl и включите сервис:
sudo systemctl daemon-reload
sudo systemctl enable myvncserver.service
Итак, теперь сервис включен. Используйте следующие команды для управления сервисом при помощи systemctl:
sudo systemctl start myvncserver.service
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
Найдите эту строку:
Затем запустите VNC:
sudo systemctl start myvncserver.service
Теперь можно подключаться к серверу VNC с удалённого компьютера.
Для пользователей Windows
Для создания SSH-туннеля используйте 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, который можно использовать для настройки сервера или совместного работы.
Источник
- VNCviewer
Translation(s): English — Español — French — Português (Brasil)
?Discussion
VNC stands for Virtual Network Computing. It is, in essence, a remote display system which allows you to view a computing `desktop’ environment not only on the machine where it is running, but from anywhere on the Internet and from a wide variety of machine architectures.
It is implemented in a client/server model. This package provides a client for XWindow, with this you can connect to a vncserver somewhere in the network and display its content in a window. There are vncserver available for X and for Win95/NT.
The difference between the xtightvncviewer and the normal vncviewer is the data encoding, optimized for low bandwidth connections. If the client does not support jpeg or zlib encoding it can use the default one. Later versions of xvncviewer (> 3.3.3r2) support a new automatic encoding that should be equally good as the tightvnc encoding.
High CPU usage in X when VNC client is connected
Various causes between X versions and display driver may cause this issue. Below solutions attempt to fix:
Add parameters in x11vnc command line
If you are using x11vnc, you may try different parameters, one at a time, to see if it fix the issue
Create / Specify display driver in /etc/X11/xorg.conf
This will force X to use the VESA display driver, which is slow for local display but works great for remote connection.
Other VNC Tools
VNC ‘Server side’
conspy — Remote control of Linux virtual consoles
gnome-rdp — remote desktop client for GNOME
krfb — Desktop Sharing for KDE
tightvncserver — virtual network computing server software
vino — VNC server for GNOME
vnc4server — Virtual network computing server software
x11vnc — VNC server to allow remote access to an existing X session
VNC ‘Client side’
directvnc — VNC client using the framebuffer as display
gvncviewer — VNC viewer using gtk-vnc
krdc — Remote Desktop Connection for KDE
python-gtk-vnc — A VNC viewer widget for GTK+ (python binding)
ssvnc — Enhanced TightVNC viewer with SSL/SSH tunnel helper
tightvnc-java — TightVNC java applet and command line program
tkvnc — Displays a list of (defined) machines to start VNC to
tsclient — front-end for viewing of remote desktops in GNOME
vinagre — remote desktop client for the GNOME Desktop
vnc-java — VNC java applet and command line program
xrdp — Remote Desktop Protocol (RDP) server
xtightvncviewer — virtual network computing client software for X
xvnc4viewer — Virtual network computing client software for X
tigervnc-viewer — «TigerVNC is a high-performance, platform-neutral implementation of VNC»
VNC Tools
pyvnc2swf — screen recording tool to SWF movie
vncsnapshot — A utility that takes JPEG snapshots from VNC servers
x2vnc — A dual-screen hack — link an MS-Windows and X display
Источник