Запускаємо графічні додатки на сервері без іксів з віддаленим доступом до них по vnc

# Aptitude install xvnc4server
Воно запитає купу залежностей, що логічно. Доведеться їх ставити.
Ще нам знадобиться простенький, але функціональний віконний менеджер. У подібних випадках я використовую зазвичай fluxbox (та й на робочому столі його використовував дуже довгий час). У ньому є все необхідне. Ще я запускаю gnome-panel (вже дуже зручні аплети і менюшки), але це опціонально.
Поставимо fluxbox:
root @ remote-server:

# Aptitude install fluxbox
Тепер стаємо користувачем і все далі виконуємо від імені користувача. В даному прикладі я використовую користувача inky
root @ remote-server:

# Su inky
Для початку запаролено VNC-сервер:
inky @ remote-server:

$ vnc4passwd
Тепер впишемо в конфіг vnc-сервера весь софт, який потрібно запускати при старті vnc-демона.
inky @ remote-server:

$ Editor /home/inky/.vnc/xstartup
У мене файл виглядає так:
# / Bin / sh
[-x / etc / vnc / xstartup] # 038; # 038; exec / etc / vnc / xstartup
[-r $ HOME / .Xresources] # 038; # 038; xrdb $ HOME / .Xresources
xsetroot -solid grey
vncconfig -iconic # 038;
x-terminal-emulator -geometry 80x24 + 10 + 10 -ls -title "$ VNCDESKTOP Desktop" # 038;
# X-window-manager # 038;
fluxbox # 038;
AeroFS # 038;
gnome-panel # 038;

Головне тут те, що нам потрібно замінити x-window-manager # 038; на fluxbox # 038; або запуск будь-якого іншого віконного менеджера.
Все готово для запуску. Власне, запустимо:
inky @ remote-server:

$ Vnc4server -kill: 1
Усе. Тепер ми можемо чіплятися до нашого VNC-сервера і запускати там будь-які додатки. Якщо ви вибрали Fluxbox - не полінуйтеся змінити тему флюксіями на FluxNight - з нею набагато комфортніше, ніж зі стандартною (пкм по столу, styles і там вибираєте).
Тепер про безпеку. Ясна річ, що чіплятися до VNC безпосередньо в прослуховується wifi-мережі не дуже хороша ідея. Ми обгорнемо наш VNC в ssh тунель.
Закриємо всі з'єднання до VNC, крім локальних (всі команди далі виходять з того, що vnc-server стартував на: 1):
root @ remote-host:

# Iptables -I INPUT -p tcp --dport 5901. -i lo -j DROP
root @ remote-host:

# Iptables -I INPUT -p tcp --dport 6001. -i lo -j DROP

Тепер ніхто не зможе підчепитися до нашого VNC зовні.
Ми ж прокинув собі порт VNC-сервера на локальну машину (виконуємо вже на лаптопе):
user @ laptop:

$ Ssh -L 5910: 127.0.0.1: 5901 user @ remote-server
Тепер ми можемо VNC клієнтами чіплятися до localhost: 5910 і localhost: 10
Віндузятнікі можуть прокинути порти в Putty або використовувати openssh-клієнт (у нього такий же синтаксис як і в нормальних ОС).

В общем-то все. Ми отримали шифрування і стиснення VNC-трафіку. Ну а те, про що було написано на початку статті ми отримали вже давно.
В ході проходження виконання інструкцій зі статті на сервері стало зайнято на 20 мегабайт більше пам'яті і на 100 метрів більше дисково простору, що більш ніж відмінно. На VNC запустилось без особливих питань. За швидкістю - на сервері в хетзнере з москви я зміг з вітерцем полазити по gmail, вбити ноутбук не хотілося.
Вдалого використання і не світите свої дані у відкритій мережі;)
P.S. - з VNC-клієнтів вкрай раджу використовувати Remmina - дійсно кльова річ. Вона вміє цілком прокидати клавіатуру в VNC, разом зі всякими alt-f2 і c-a-del.

Схожі статті