Подключение к удаленному компьютеру по VNC. Подключение к удалённому рабочему столу с использованием TightVNC Добавляем noVNC, как Windows-сервис

29.04.2024

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-сервера.

TightVNC runs basically on any version of Windows (both 32-bit and 64-bit systems are supported):

  • Windows XP / Vista / 7 / 8 / 8.1 / 10,
  • corresponding versions of Windows Server.

On Windows XP, you should have the latest Service Pack installed. Windows CE systems are not supported.

There are no minimum disk space or RAM requirements. TightVNC uses so little space and memory that it can run anywhere Windows is running.

Previous TightVNC version 1.2 and 1.3 have some limitations, however. It is not possible to use TightVNC Server as a system service on Windows Vista / Windows 7 in this case.

How would I connect from the Internet to a machine in the internal network which is behind a router?

You should enable "port forwarding" in your router"s configuration. Port forwarding allows passing external connections to computers in the internal network. Almost all routers support this type of redirection.

For example, to access VNC or TightVNC server running on default ports, a router can be configured such way that TCP connections to ports 5900 and 5800 would be passed to the same ports of a particular machine with a specified private IP address (typically 192.168.x.x).

Here is an example of configuring port forwarding, assuming that TightVNC Server is running on default ports 5900 and 5800, on the machine with IP 192.168.1.100:

Application Start
Port
End
Port
Protocol IP Address Enable
TightVNC 5900 5900 TCP 192.168.1.100 yes
TightVNC 5800 5800 TCP 192.168.1.100 yes

When port forwarding is set up, you can connect to the router"s IP address such way as if it was your target machine"s IP address, but you should specify those port numbers on which port forwarding was activated.

Answer for TightVNC versions 2.x:

Open TightVNC configuration, choose Server tab, uncheck "Show icon in the notification area", press Ok.

To show the icon again, use one of Control Interface or Offline Configuration shortcuts found under the TightVNC group under Start\All Programs.

Does TightVNC work on Mac OS X?

Currently, we do not offer a version for Mac OS X. It"s very likely that TightVNC will include one in the future, but not in the nearest days. Currently, our team is busy working on the Windows version.

If you need viewer part on Mac OS X, try TightVNC Java Viewer. It"s cross-platform and should work fine in any system where Java environment can be installed, including MacOS X.

Also note that recent versions of Mac OS X include built-in VNC-compatible server which is compatible with TightVNC as well. In other words, you can connect to any modern Mac OS X system with TightVNC Viewer.

How do I uninstall TightVNC?

Normally, TightVNC can be removed just like any other software, from the Control Panel (Add/Remove Programs). But if something goes wrong, or TightVNC was installed manually, you can always remove it manually using step-by-step procedures below.

Uninstall procedure for TightVNC versions 1.x:

  1. If TightVNC Server is running, close it. If it is running but not showing the tray icon, choose Process Manages, locate WinVNC.exe process and shutdown it.
  2. If TightVNC Server was registered as a system service, unregister it. To do that, locate WinVNC.exe file under \Program Files\TightVNC (or wherever TightVNC was installed), and type in the command line: WinVNC.exe -remove
  3. Remove the settings from the registry if desired. The settings can be found in HKEY_LOCAL_MACHINE\Software\ORL and/or HKEY_CURRENT_USER\Software\ORL.

Uninstall procedure for TightVNC versions 2.x:

  1. Log in as an Administrator (or as a user with similar permissions).
  2. If TightVNC Server is running, close it. If it is running but not showing the tray icon, choose Process Manages, locate all tvnserver.exe process and shutdown each one of them.
  3. If TightVNC Server was registered as a system service, unregister it. To do that, locate tvnserver.exe file under \Program Files\TightVNC (or wherever TightVNC was installed), and type in the command line: tvnserver.exe -remove
  4. Remove the whole \Program Files\TightVNC directory (or wherever TightVNC was installed).
  5. Remove all TightVNC shortcuts from the Start\All Programs menu.
  6. Remove the settings from the registry if desired. The settings can be found in HKEY_LOCAL_MACHINE\Software\TightVNC and/or HKEY_CURRENT_USER\Software\TightVNC

Вопрос распространения ПО всегда актуален. Теперь он касается TightVNC. Можно просто прикрепить к политике msi-пакет. Но настройки придётся вносить отдельно: либо вручную, либо батником.

Вкратце - ниже.

Создаем батник следующего содержания:

net use O: \\%1\C$

copy vnc.msi O:\ /y

copy vnc.reg O:\ /y

psexec \\%1 msiexec /i C:\vnc.msi /quiet /norestart

psexec \\%1 regedit -s C:\vnc.reg

net use O: /delete /y

O: - название сетевого диска;

%1 - имя удаленного компьютера (можно подать как параметр при вызове батника из командной строки или же заменить прямо в батнике на нужное имя);

vnc.msi - установочный файл TightVNC, должен лежать в той же папке, что и батник, тестировалось на версии TightVNC 2.6.4 32-bit;

vnc.reg - предварительно экспортированная в файл ветка реестра HKEY_LOCAL_MACHINE\SOFTWARE\TightVNC с машины, на которой уже установлен и настроен TightVNC (ветка содержит такие параметры, как пароль для подключения, файл должен лежать в той же папке, что и батник).

Если удобней стартовый скрипт - пожалуйста! Если доверяем только себе - вручную через psexec.

P.S. Рег-файлы под Windows7 и Windows XP отличаются.

P.S.2. DFMirage-драйвер дисплея ставить тоже нужно, но с этим надо разбираться отдельно. Без него VNC-сервер может знатно тормозить.

Проверяем установлен ли tightvncserver

на хосте к которому будем удаленно подключаться:

Dpkg -l | grep vnc

пакет установлен увидим:

Ii tightvncserver 1.3.9-6.4 amd64 virtual network computing server software

Установим Tightvncserver

если нет, установим его:

Sudo apt-get install tightvncserver

Запускаем tightvncserver

(дополнительные ключи запуска ищите в интернете):

Tightvncserver:1 -geometry 1024x768 -dpi 96 -nolisten tcp

где
:1 - номер дисплея, который будет доступен по порту 5901
-geometry 1024x768 - разрешение дисплея
-dpi 96 - Dots per inch
будет запрошен пароль (с подтверждением, нужно ввести два раза) и запрос на необходимость ввода пароля на режим "только просмотр", сразу же после этого можно подключиться к дисплею. К примеру из под Windows запустив программу Tightvnc Viewer , и введя

Ipaddress:5901

где ipaddress - айпшник хоста, к которому подключаемся
5901 - порт, на котором доступен дислпей 1, можно в TightVNC Viewer для Windows вводить ipaddress:1

Выведем список запущенных дисплеев

ps aux | grep vnc

Останавливаем дисплей

№1 командой

Tightvncserver -kill:1

Установим постоянный пароль для доступа к дисплею

Поскольку дисплей всегда запускается от имени какого либо пользователя, установми пароль для пользователя NameUser, от имени которого мы будем запускать дисплей в автозагрузке (см. далее)

залогинемся под пользователем от имени которого будем запускать дисплей, введя команду и пароль (интересно что su расшифровывается как switch user, а не как super user как многие считают)

Su NameUser

введем команду для задания пароля, его необходимо будет ввести два раза и указать необходим ли пароль для режима "только чтение"

Tightvncpasswd

пароль записывается в файл

/home/NameUser/.vnc/passwd

удалив этот файл, сбрасывается пароль

Настраиваем отображение дисплея при запуске

Сделаем бекап файла настройки дисплея

Sudo cp /home/NameUser/.vnc/xstartup /home/NameUser/.vnc/xstartup.default

заменим содержимое файла дисплея xstartup на

#!/bin/sh def export XKL_XMODMAP_DISABLE=1 unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS gnome-panel & gnome-settings-daemon & metacity & nautilus & gnome-terminal & Можно добавлять запускаемы программы при старте дислпея через символ &

Можно запустить другой оконный менеджер (он разумеется должен быть установлен, в данном примере запускаеться Gnome), а так же еще много что интересного...

Добавим tightvncserver в автозагрузку

создадим скрипт автозапуска для этого перейдем в папку

Cd /etc/init.d/

Или создадаем файл скрипта с именем vncserver

Touch vncserver

вставляя в файл следующий текст

Содержимое файла

#!/bin/sh -e
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: networking
# Default-Start: 3 4 5
# Default-Stop: 0 6
### END INIT INFO

PATH="$PATH:/usr/X11R6/bin/"

# The Username:Group that will run VNC
export USER="NameUser"
#${RUNAS}

# The display that VNC will use
DISPLAY="1"

# Color depth (between 8 and 32)
DEPTH="16"

# The Desktop geometry to use.
#GEOMETRY="x"
#GEOMETRY="800x600"
GEOMETRY="1024x768"
#GEOMETRY="1280x1024"

# The name that the VNC Desktop will have.
NAME="my-vnc-server"

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

. /lib/lsb/init-functions

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user "${USER}" on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

stop)
log_action_begin_msg "Stoping vncserver for user "${USER}" on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill:${DISPLAY}"
;;

restart)
$0 stop
$0 start
;;
esac

Или копируем его с сайта командой

Wget http://сайт/vncserver

Выставим на него права

для добавления в автозагрузку выполняем команду

Update-rc.d vncserver defaults

для запуска без перезагрузки и вообще запуска и остановки tightvncserver с параметрами указаными в скрипте используйте команды соответветсвенно

/etc/init.d/vncserver start /etc/init.d/vncserver stop

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

Общие сведения о программе VNC Viewer

Вам будет интересно:

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

То есть данную программу можно отнести к классу RDP-приложений, предназначенных для подключения к удаленному «Рабочему столу». Однако только доступом к удаленным компьютерам дело не ограничивается, поскольку в самой программе имеется еще немало дополнительных возможностей:

  • Полное управление настройками без ограничений в полноэкранном или оконном режиме.
  • Трансфер файлов.
  • Возможность отсылки сообщений через встроенный чат.
  • Блокирование периферийных устройств, если это необходимо (мыши, клавиатуры и т. д.).
  • Возможность доступа к подключенным ПК через браузер.
  • Организация подключения с несколькими терминалами одновременно.
© omutsu.ru, 2024
Компьютерные подсказки - Оmutsu