Віддалений робочий стіл (VNC, x11vnc)

З лінуксом життя стає цікавішим, я б навіть сказав експериментальнішим! Мене потягнуло на експерименти з ssh, і те, що я отримав у результаті - доступ з роботи до домашнього комп'ютера - мені дуже сподобалося! Ще б пак - класно керувати домашнім компом, оновлювати його і т.п. З дівчиною навіть за допомогою festival розмовляв))) Однак, захотілося піти далі, цікаво, чи можна налаштувати віддалений доступ до робочого столу, як це дозволяє RAdmin у Windows? Звичайно можна! Треба лише налаштувати))

Покопався в інтернеті, знайшов кілька статей про VNC – Virtual Network Computing, вирішив таке щастя зробити і у себе! Для цього спочатку необхідно було поставити кілька утиліт: sudo aptitude install vnc4-common vnc4server xvnc4viewer Ці утиліти необхідні безпосередньо для того, щоб запускати віддалений сервер (vnc4server) і підключатися до нього з віддаленого клієнта (xvnc4viewer). Встановили! Тепер справа залишається за малим: спочатку потрібно запустити vnc-сервер, а потім підключитись до нього. Для запуску віддаленого сервера потрібно в консолі набрати vncserver Якщо це перший запуск vncserver у системі з цим обліковим записом користувача, тоді ви повинні ввести пароль, який клієнти будуть використовувати при підключенні, після чого запуститься сервер, який буде доступний на порту 5901 До речі, при запуску сервера в консоль виведеться номер дисплея (віртуального), на якому він буде доступний, відлік ведеться з 1 (оскільки 0 - поточний дисплей). Приклад запуску: igor@Voyageur:

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 Тут рядокNew 'Voyageur:1 (igor)' desktop is Voyageur: 1якЯкщо говорить про те, що в мене комп'ютері запустився сервер на екрані 1, доступний він на порту 5901. Якщо вncserver запустити ще раз, то завантажиться новий термінальний сервер: 2 на порту 5902 і т.д. Тепер спробуємо зайти на цей сервер із віддаленої машини. Для цього необхідно в консолі віддаленого клієнта ввести команду: vncviewer __hostname__:1 У цій команді __hostname__ це ім'я або ip машини, на якій запущений віддалений сервер. Далі необхідно буде ввести пароль і в результаті з'явиться приблизно таке вікно:

vncserver

Почав розбиратися, і виявилося, що vncserver запускає лише нову сесію, а не підключається до поточної, саме для цього і потрібні віртуальні дисплеї. А в цій сесії запущені twm (Tab Window Manager for X Window System) та xterm. Між іншим це все добро запускається зі скрипту

x11vnc

Нормально до роботи. Але ж не айс! Оперу можна запустити ще деякі програми, але далеко не всі (додатки kde виламуються)! Пробував я замість fluxbox'a запустити де, але не пішов. Грає вітання входу в систему, але вилітає вікно з крахом плазми та все, чорний екран, завіса.

У результаті я отримав віддалений доступ, але не такий, як хотів! Мені хотілося мати доступ до поточного робочого столу, а не до міфічного дисплея 1, на якому завантажується fluxbox, але не де.

/.vnc/passwd (тут лежить пароль, який був заданий під час першого запуску vncserver). Далі безпосередньо запустимо x11vnc: x11vnc -usepw -display :0 Опція-usepwвикористовує пароль при підключенні до сервера,-display :0- запускає сервер на нульовому дисплеї (так, де відкрита поточна X-сесія). Тепер ми з віддаленої машини можемо підключитися до поточної X-сесії, виконавши vncviewer__hostaname__:0 і ввівши пароль.

стіл

При закритті вікна віддаленого робочого столу, завершується і робота x11vnc (на сервері) Таким чином, я отримав те, що хотів)))) Наостанок наведу кілька опцій для утиліт vncserver, x11vnc і vncviewer, що полегшують трафік і життя ))vncserver

  • -kill :n - завершує роботу термінального сервера на дисплеї n (порту 590n), якщо він раніше був запущений
  • -geometry 800x600 - встановлює розмір робочого столу, що створюється (за замовчуванням 1024x768)
  • -depthdepth- встановлює глибину кольору в бітах, за замовчуванням 16 біт, можна змінити на 8, 15, 24
  • Для запуску VNC-сервера з певним номером (дисплеєм) використовується команда vncserver :n

  • -q - зменшує виведення налагоджувальної інформації в stderr
  • -forever - дана опція не завершує роботу x11vnc-сервера, коли перший клієнт відключається, а чекає на наступні підключення

  • -Geometry 800x600 - встановлює розмір вікна, в якому відображатиметься віддалений робочий стіл. Якщо вказаний розмір менший за розмір віддаленого столу, то з'являться смуги прокручування
  • -compresslevel n – встановлює рівень стиснення даних. Значення n варіюється від 0 до 9, 9 - найкращий стиск (якість, відповідно, гірше)
  • -quality m - впливає якість картинки. m варіюється від 0 до 9, 0 - найгірша якість зображення (менше трафік)
  • -depthdepth- якщо X-сервер підтримує різні значення глибини кольору, то можна спробувати підібрати оптимальне значення (у бітах)
  • -viewonly - опція, що дозволяє користувачеві, що підключився, тільки спостерігати за тим, що відбувається на віддаленій машині, засоби управління (миша, клавіатура) недоступні