root@remote-server:~# aptitude install xvnc4server
root@remote-server:~# aptitude install fluxbox
root@remote-server:~# su inky
inky@remote-server:~$ vnc4passwd
inky@remote-server:~$ editor /home/inky/.vnc/xstartup
#/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
fluxbox &
AeroFS &
gnome-panel &
Главное тут то, что нам нужно заменить x-window-manager & на fluxbox & или запуск любого другого оконного менеджера.
Всё готово для запуска. Собственно, запустим:
inky@remote-server:~$ vnc4server -geometry 1350x600
-geometry 1350×600 — разрешение виртуального экрана. Подберите себе сами удобное.
Внимательно ищем строчку вот такого рода:
New ‘remote-server:1 (inky)’ desktop is remote-server:1
Если :1 — то vnc слушает порт 5901, если :2 — то 5902 и так далее. Данная информация будет полезна анальным рабам стивобалмера, и тем, кто дочитает статью до конца (там будет про безопасность). Обычный же VNC клиент в Linux сможет прицепиться к адресу remote-server:1
Чтобы остановить vnc-server правильно используем такую команду:
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.