Как да настроите свой собствен VNC сървър в Ubuntu Linux, Бележки на програмиста

Как да създадете свой собствен VNC сървър в Ubuntu Linux

Virtual Network Computing (VNC) е система за достъп до отдалечен работен плот. Ако си представите Remote Desktop или RAdmin, тогава VNC решава подобен проблем, само VNC сървърите са безплатни и с отворен код. Важно е да се отбележи, че VNC не е протокол. Използваният протокол се нарича Remote FrameBuffer (RFB). Този протокол е напълно описан в този PDF файл.

Защо някой би взел VNC:

  • Ако препращането на потребителския интерфейс през SSH е твърде бавно;
  • Сървърът се използва като виртуална машина, само със споделен достъп;
  • Инструмент за изтегляне на торент с бял IP, просто настройте Transmission и тръгвайте;
  • Един вид алтернатива на проксита и VPN;
  • И така нататък, за което е достатъчна фантазия;

Да започваме. Всички стъпки по-долу са тествани на Ubuntu Linux 14.04 LTS, но трябва да работят без много модификации и на други версии на Ubuntu, както и на други системи. За експеримента се нуждаем от ненужна машина, може би виртуална машина в някой DigitalOcean с поне 512 MB памет. Ако планирате да стартирате програми с голямо количество GUI като Google Chrome, тогава разпределете 1 GB веднага, а дори повече е по-добре. Ако отделите само 512 MB, можете да отворите само един GMail акаунт, след което паметта ще свърши, проверих. Лично аз съм много тъжен, че браузърите станаха толкова ненаситни, но това може би е тема за отделна публикация.

На машината, където ще повдигнем VNC, стартираме нов потребител под root:

Предписваме му нашето

/.ssh/authorized_keys chmod 0600

На вашия компютър в

VNC не криптира трафика, така че ще отидем до него, като използваме пренасочване на порт през SSH. Ако вие същоАко възнамерявате да използвате техниката за препращане на аудио, описана в публикацията Усвоихте стартирането на GUI приложения в Docker, добавете реда:

Отиваме на vnc-сървъра под потребителя на ubuntu, казваме:

Както можете да видите, TightVNC беше избран като конкретна сървърна реализация. Имах опит с него преди няколко години. Не помня точно какво точно TightVNC се открояваше от другите VNC сървъри по това време. Спомням си, че беше лесен за инсталиране и конфигуриране, съвместим с всички клиенти и просто работеше.

xrdb $HOME / .Xresources xsetroot -твърдо сиво startxfce4 & (сън 3 && xfce4-панел) &

Тук аргумент :1 е номера на дисплея. Можете да стартирате няколко настолни компютри, работещи едновременно. Флагът -localhost означава да се приемат връзки само от една и съща машина. Опцията -nolisten tcp е необходима, за да не стърчи порт 6001. Когато за първи път стартирате сървъра, ще трябва да въведете парола за достъп до работния плот. Имайте предвид, че паролата е съкратена до осем знака. Освен това ще бъдете помолени за отделна парола за връзката само за преглед:

Можете да промените паролата с командата:

Допълнение: И във FreeBSD правя това:

Ако всичко е направено правилно, ще видите работната среда Xfce. Също така трябва да се коригира малко. В менюто на приложенията → Настройки → Сесия и стартиране, в раздела Разширени, поставете отметка в квадратчето Стартиране на услуги на GNOME при стартиране. В раздела Автоматично стартиране на приложения деактивирайте различни ненужни услуги като Bluetooth Applet. В противен случай някои приложения, по-специално Skype, могат да изтрият всички X с много странни грешки в регистрационните файлове. Аз лично оставих само следните отметки:

ubuntu

Сега предписваме VNC за автоматично стартиране. В /etc/init.d/vncserver пишем:

case "$1" в start ) su ubuntu -c'/usr/bin/vncserver :1 -localhost -nolisten tcp' ;;

стоп ) su ubuntu -c '/usr/bin/vncserver -kill :1' ;;

рестартиране ) $0 стоп $0 старт ;; esac

Ако всичко работи, остава само да се уверите, че сървърът ще се стартира автоматично след рестартиране:

Тук настройваме VNC, използвайки примера на виртуален облачен сървър, но е ясно, че във Vagrant или Docker всичко ще работи по абсолютно същия начин.

Използвате ли VNC и ако да, за какви задачи, ако не е тайна?