Настройка Удаленного Рабочего Стола (Vnc, X11Vnc)

С Linux жизнь становится интереснее, я бы даже сказал экспериментальнее! Меня потянуло на эксперименты с ssh, и мне очень понравилось то, что я получил в итоге — доступ с работы к домашнему компьютеру! Конечно, здорово управлять домашним компьютером, обновлять его и т. д. Я даже с девушкой общалась с помощью фестиваля))) Однако хотелось пойти дальше, интересно, можно ли настроить удаленный доступ к рабочему столу, как это позволяет RAdmin в Windows? Конечно, это возможно! Надо только настроить)) Я порылся в Интернете и нашел несколько статей о VNC — вычисления в виртуальной сети , я решила сделать себе такое счастье! Для этого сначала нужно было установить несколько утилит:

sudo aptitude install vnc4-common vnc4server xvnc4viewer

Эти утилиты необходимы непосредственно для того, чтобы запустить удаленный сервер (vnc4server) и подключиться к нему с удаленного клиента (xvnc4viewer).

Установлен! Теперь осталось только запустить vnc-сервер и затем подключиться к нему.

Для запуска удаленного сервера нужно в консоли набрать

vncserver

Если это первый запуск vncserver в системе под этой учетной записью пользователя, то необходимо ввести пароль, который будут использовать клиенты при подключении, после чего запустится сервер, который будет доступен по порту 5901. Кстати, при запускаешь сервер, номер дисплея (виртуального), на котором он будет доступен, начинается с 1 (так как 0 — текущий дисплей).

Пример запуска:

igor@Voyageur:~$ vncserver New 'Voyageur:1 (igor)' desktop is Voyageur:1 Starting applications specified in /home/igor/.

vnc/xstartup Log file is /home/igor/.

vnc/Voyageur:1.log

Вот линия Новый рабочий стол Voyageur:1 (igor) — Voyageur:1 это просто означает, что на моем компьютере работает сервер на дисплее 1, он доступен через порт 5901. При повторном запуске vncserver будет загружен новый терминальный сервер: 2 на порту 5902 и т.д. Теперь попробуем получить доступ к этому серверу с удаленной машины.

Для этого введите в консоли удаленного клиента команду:

vncviewer __hostname__:1

В этой команде __hostname__ — это доменное имя или IP-адрес компьютера, на котором работает удаленный сервер.

Далее вам нужно будет ввести пароль и в результате появится окно, подобное этому:

Настройка удаленного рабочего стола (VNC, x11vnc)

Это не то, что я ожидал увидеть, если честно)) Начал разбираться, и оказалось, что vncserver только запускает новую сессию, а не подключается к текущей, для чего как раз и нужны виртуальные дисплеи .

И в этом сеансе работают twm (диспетчер вкладок для системы X Window) и xterm. Кстати, все это добро запускается из скрипта ~/.

vnc/xstartup, который можно редактировать, удаляя ненужные и добавляя свои строки для запуска необходимых приложений.

В самом верху скрипта есть небольшой комментарий:

# Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc

То есть, чтобы получить нормальный рабочий стол, нужно раскомментировать 2 строки.

Я их раскомментировал, но ничего хорошего из этого не вышло.

Я посмотрел на этот твм и решил, что с этим убожеством невозможно работать.

Я установил fluxbox (занимает всего 6 МБ) и заменил строчку в скрипте xstartup

twm &

на

fluxbox &

В итоге у меня получилось вот так:

Настройка удаленного рабочего стола (VNC, x11vnc)

ОК для работы.

Но никакого льда! Можно запускать Opera, некоторые другие приложения, но не все (приложения kde ломаются)! Попробовал запустить kde вместо fluxbox, но не получилось.

Приветствие при входе играет, но окно вылетает с крашем плазмы и все, черный экран, шторка.

В итоге удаленный доступ я получил, но не так, как хотелось! Я хотел иметь доступ к текущему рабочему столу, а не к мифическому дисплею 1, который загружает fluxbox, а не kde. Что делать? Надо еще копнуть!!! Поискал по репозиториям пакеты с «vnc» в названии, список был не очень большой, начал читать комментарии к утилитам и библиотекам.

В самом конце списка увидел вот такую строчку:

p xvnc4viewer - Virtual network computing client software for X

Очень похоже на то, что мне нужно! Я установил x11vnc. чувак, в этой утилите много контента, несколько тысяч строк)) Немного изучив ее, я более-менее разобрался с процедурой запуска и назначением утилиты.

Итак, x11vnc на самом деле является удаленным сервером (как и vncserver), но позволяет получить доступ к уже существующей X-сессии! На машине необходимо подключиться к:

x11vnc -storepasswd

Эта команда позволит вам позаимствовать пароль для подключения к серверу из файла ~/.

vnc/passwd (пароль, который был установлен при первом запуске vncserver, находится здесь).

Далее давайте напрямую запустим x11vnc:

x11vnc -usepw -display :0

Вариант -usepw требует использования пароля при подключении к серверу, -дисплей :0 — запускает сервер при нулевом отображении (где открыт текущий сеанс X).

Теперь мы можем подключиться к текущему сеансу X с удаленного компьютера, запустив

vncviewer __hostaname__:0

и ввод пароля.



Настройка удаленного рабочего стола (VNC, x11vnc)

Когда вы закрываете окно удаленного рабочего стола, x11vnc (на сервере) также завершается.

Таким образом, я получил то, что хотел)))) Напоследок приведу несколько вариантов утилит vncserver, x11vnc и vncviewer, которые облегчают трафик и жизнь)) vncсервер:

  • -kill :n — выключает сервер терминалов на дисплее n (порт 590n), если он был ранее запущен
  • -geometry 800х600 — задает размер создаваемого рабочего стола (по умолчанию 1024х768)
  • -глубина глубины - устанавливает глубину цвета в битах, по умолчанию 16 бит, можно изменить на 8, 15, 24
  • Чтобы запустить VNC-сервер с определенным номером (отображением), используйте команду vncserver :n.
х11внк:
  • -q — уменьшает вывод отладочной информации в stderr
  • -forever — эта опция не выключает сервер x11vnc при отключении первого клиента, а ждет следующих подключений
vncviewer:
  • -geometry 800x600 — задает размер окна, в котором будет отображаться удаленный рабочий стол.

    Если указанный размер меньше размера удаленной таблицы, появятся полосы прокрутки.

  • -compressionlevel n — устанавливает уровень сжатия данных.

    Значение n варьируется от 0 до 9, 9 — лучшее сжатие (соответственно качество хуже).

  • -качество м – влияет на качество картинки.

    m варьируется от 0 до 9, 0 — худшее качество изображения (меньше трафика)

  • -глубина глубины — если X-сервер поддерживает разные значения глубины цвета, то можно попытаться найти оптимальное значение (в битах)
  • -viewonly — опция, позволяющая подключенному пользователю только наблюдать за тем, что происходит на удаленной машине, элементы управления (мышь, клавиатура) недоступны
P.S. Кстати, если вам нужно, чтобы x11vnc запускался автоматически, то для этого нужно добавить его в автозагрузку: в настройках системы выберите «Автозагрузка» (на второй вкладке), добавьте туда скрипт

x11vnc -usepw -display :0 -q -forever &

и укажите, что он должен запуститься до запуска KDE! Теги: #linux #kubuntu #vnc #x11vnc #удаленный рабочий стол #Chulan
Вместе с данным постом часто просматривают: