17
November
2023
16:25

Various VNC servers and clients for Linux (review)

17 November 2023 16:25

In the article I provided an overview of various VNC clients and servers, and links to projects for further consideration.

Introduction

In addition to SSH, a graphical interface for PC management (like Radmin or Anydesk) is often used to administer a PC. I have a server configured on my home PC XRDP, but I also wanted to check VNC instead of XRDP. Since a lot of time and effort was spent configuring XRDP, maybe I chose a more complex path and VNC is easier to configure?

Free VNC servers from Ubuntu repositories

1)linuxvnc- Ubuntu VNC server package, only for accessing the TTY console
Installation:
sudo apt install linuxvnc

Starting the server:
sudo linuxvnc 1

where 1 is the TTY console number redirected to the linuxvnc server
User's Guide on https://manpages.org/linuxvnc- there are other launch keys.

2)tightvncserver- TightVNC version 1.3.10 is opensource and free
Installation instructions from www.digitalocean.com
The following packages can be installed:

  • tightvncserver
  • tigervnc-xorg-extension
  • tigervnc-standalone-server
  • tigervnc-scraping-server
    You must explicitly indicate which one you want to install.

3)x11vnc server https://github.com/LibVNC/x11vnc/
Unfortunately, development stopped in 2019, because... The author does not have time to work on the project. But this is the easiest server to install and convenient for the untrained user.

sudo apt install x11vnc

The program for managing the X11VNC Server can be launched from the desktop.

The desktop file is given below:

[Desktop Entry]
Name=X11VNC Server
Comment=Share this desktop by VNC
Exec=x11vnc -gui tray=setpass -rfbport PROMPT -bg -o %%HOME/.x11vnc.log.%%VNCDISPLAY
Icon=computer
Terminal=false
Type=Application
StartupNotify=false
#StartupWMClass=x11vnc_port_prompt
Categories=Network;RemoteAccess;
Keywords=VNC;Server;Screencast

After launching the shortcut from the Desktop, the program prompts you to set the port for connecting via VNC, and whether file transfer will be allowed.

Then the program shows setup instructions and checkboxes "Accept connections" - "Ask for confirmation" - "All clients view only" - Shared - Advertise Service (Zeroconf)
and offers to set a complex password to log into VNC.
The "Advanced" tab shows events "under the hood" - server startup and client connections. In advanced mode there are tabs for debugging, keyboards, displays, screens, etc.

Legacy VNC4SERVER server for Ubuntu 12.04-16.04

The package is not available on modern Linux, but the guide below provides a guide to writing a script to run VNC:
installation guide

Open source VNC servers for Linux (Ubuntu / Debian / Fedora / CentOS)

1)TurboVNC- https://www.turbovnc.org/ DEB files are located at https://sourceforge.net/projects/turbovnc/files/, source texts are on git https://github.com/TurboVNC/turbovnc.git, script is on https://forums.developer.nvidia.com/t/tutorial-how-to-install-virtualgl-and-turbovnc-on-jetson-nano/175767

2)TigerVNC there is a free version for Linux
https://github.com/igewebs/server-tigervnc
Read:installation of TigerVNC and description TigerVNC installations

3)pyvncs VNC server in Python for X11 (Wayland is not supported yet) https://github.com/radixcl/pyvncs

VNC server for Windows

*ultravnc Ultra VNC official website:https://uvnc.com/

Guides and scripts - installation assistants

  • ubuntu-sesktop-vnc Guide to installing vnc4server on Ubuntu 16.04 https://github.com/UnivaHost/ubuntu-desktop-vnc
  • tigervnc_remote_desktop scripts for installing TigerVNC and i3 or Gnome desktops: https://github.com/earizon/tigervnc_remote_desktop
    (the script can be remade from i3 or Gnome to suit your favorite desktop), the project is 5 years old.
  • softasap script for installing a VNC server via ansible galaxy workflow: https://github.com/softasap/sa-vnc-remote-desktop
  • script for installing a VNC server via ansible: https://galaxy.ansible.com/ui/standalone/roles/sdarwin/vnc/

Paid VNC servers

*RealVNC® Connect*- paid VNC server https://www.realvnc.com/
TightVNC**- 2.0 paid, rewritten in C++ https://www.tightvnc.com/licensing-server-x11.php (on request)

Free apps for specific desktops:

*vino- the most famous component of Ubuntu Gnome

Vino is the default VNC server in Ubuntu (Gnome desktop) to share your existing desktop with other users in View Only or Manage mode. To set up Vino from Gnome, go to System -> Settings -> Remote Desktop

1) To have Vino request access every time, set the "Allow other users to view your desktop" setting in the Remote Desktop configuration window.

2) There is no way to set Vino to listen to only one next connection.

3) To set a password, select the "Require the user to enter this password:" setting and enter a complex password.

4) To configure Vino in view-only mode, uncheck "Allow other users to control your desktop."

5) To allow only connections within this PC (localhost), open a terminal and run the command:

 gsettings set org.gnome.vino interface lo

6) To allow connections from anywhere, open a terminal and run the command:

 gsettings reset org.gnome.Vino network-interface

*krfb- VNC server is the default in Kubuntu (Ubuntu with KDE desktop). Because KRFB is heavily integrated with KDE, running it in other environments is difficult. Installation instructions krfb given in this article.

VNC/RDP clients

*vinagre- remote desktop viewer for Gnome

 sudo apt update && sudo apt install vinagre

*krdc- KDE application for connecting to a remote desktop from Kubuntu and other OSes with a KDE desktop.

*remmina- the most powerful and convenient RDP / VNC / SSH client

Installing remmina with plugins for RDP and VNC:

sudo apt update && sudo apt install remmina remmina-plugin-rdp remmina-plugin-vnc

Conclusion

Graphical desktop viewing and control VNC, unlike RDP, is a standard part of Linux and uses the Remote Frame Buffer (RFB) image transfer protocol approved RFC6143. You can choose any of the above VNC server and client options or write your own.


Links:
Virtual Network Computing- Wikipedia



Related publications