Learn Remote Desktop - Installing a VNC Server on Linux
Episode 3 of 23

Learn Remote Desktop - Installing a VNC Server on Linux

This episode guides you through installing a VNC server on Linux: getting to know the four main options (x11vnc, TigerVNC, TightVNC, and GNOME Remote Desktop), then complete install practice with apt on Debian/Ubuntu, dnf on RHEL/Rocky, and pacman on Arch, plus version verification for each tool.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Introduction

After understanding the VNC and RDP architecture in episode 2, it's time to get hands-on. Episode 3 guides you through installing a VNC server on Linux. There's more than one way — and choosing the right one from the start will save you a lot of time in the episodes ahead.

In this episode you'll get to know the four main VNC server options, then install TigerVNC and x11vnc across three distribution families: Debian/Ubuntu, RHEL/Rocky, and Arch. By the end of the episode, you'll have a server installed and know exactly which tool to use for which scenario.

VNC Server Options

The Four Main Implementations

Not all VNC servers are created equal. The four most relevant for you:

  • x11vnc — shares the X11 display that's already running on the machine. It doesn't create a new session; it just opens a window to the existing desktop. Ideal for helpdesk and access to a physical desktop.
  • TigerVNC (Xvnc / x0vncserver)Xvnc creates a new virtual display without a physical monitor (multisession); x0vncserver shares the physical display like x11vnc.
  • TightVNC — its main focus is Windows, but its history is closely tied to the Tight encoding carried by TigerVNC.
  • GNOME Remote Desktop — a modern Wayland-based solution for GNOME desktops, managed through grdctl (episode 18).

A quick rule of thumb: use x11vnc to share a running desktop, use TigerVNC Xvnc to create a virtual display without a monitor, and use GNOME Remote Desktop if you're already on GNOME/Wayland.

Installing on Debian and Ubuntu

apt for Debian-Based Distributions

Let's start with the Debian/Ubuntu family. Update the package index and install the main VNC servers:

Installing VNC servers on Debian/Ubuntu
sudo apt update
sudo apt install x11vnc tigervnc-standalone-server tigervnc-common

The tigervnc-standalone-server package brings Xvnc, x0vncserver, and vncserver; tigervnc-common brings vncpasswd. Meanwhile, x11vnc comes from a separate package with the same name. For the client, install the viewers now as well:

Installing VNC viewers on Debian/Ubuntu
sudo apt install tigervnc-viewer remmina

The apt install tigervnc-viewer remmina command installs two viewers at once: TigerVNC's command-line viewer and the GUI-based Remmina. You'll use both in episode 6.

Verifying the Installation

Make sure all binaries are available by checking their versions:

Verifying tool versions
x11vnc -version
vncserver -version
vncpasswd --help

If all three commands produce output without errors, the Debian/Ubuntu installation was successful.

Installing on RHEL and Rocky Linux

dnf for the RHEL Family

On the RHEL/Rocky family, the EPEL (Extra Packages for Enterprise Linux) repository must be enabled first, because most VNC packages live there:

Enable EPEL then install TigerVNC
sudo dnf install epel-release
sudo dnf install tigervnc-server tigervnc-server-minimal tigervnc

The tigervnc-server package brings Xvnc and vncserver. Unlike Debian, on the RHEL family x11vnc isn't always available in the standard repositories — if needed, install it from EPEL:

Installing x11vnc from EPEL
sudo dnf install x11vnc

The dnf install x11vnc command only succeeds if the package is available in EPEL for your RHEL version. If not, the already-installed TigerVNC remains the alternative.

Verifying on RHEL/Rocky

Verifying the TigerVNC installation
rpm -qa | grep tigervnc
x0vncserver --help

The rpm -qa | grep tigervnc output shows the installed TigerVNC packages, and x0vncserver --help confirms the physical display sharing binary is available.

Installing on Arch Linux

pacman for Arch

Arch provides both main servers directly from the official extra repository:

Installing VNC servers on Arch
sudo pacman -S tigervnc x11vnc

The tigervnc package on Arch bundles the Xvnc server, the vncviewer, and the vncpasswd tool in a single package. x11vnc is available as a separate package.

Verifying on Arch
pacman -Q tigervnc x11vnc

The pacman -Q tigervnc x11vnc command shows the installed versions of both packages. If they print, Arch is ready.

Installation Summary

Command Table by Distribution

For easy reference, here's the summary:

DistributionCommandServers you get
Debian/Ubuntuapt install x11vnc tigervnc-standalone-serverx11vnc, Xvnc, x0vncserver
RHEL/Rockydnf install tigervnc-serverXvnc, vncserver
Archpacman -S tigervnc x11vncXvnc, viewer, x11vnc

Don't forget to install a viewer on the client machine — tigervnc-viewer or Remmina — because episode 6 will use it soon. One habit you should start building: after every install, always verify versions so you know exactly which features are available.

Conclusion

Episode 3 completes the installation steps: you now know the four VNC server options, and you've installed TigerVNC and x11vnc on Debian/Ubuntu, RHEL/Rocky, and Arch with the correct package commands for each.

Key takeaways:

  • x11vnc for sharing a running display; TigerVNC Xvnc for virtual displays.
  • Debian/Ubuntu: apt install x11vnc tigervnc-standalone-server.
  • RHEL/Rocky: enable EPEL first, then dnf install tigervnc-server.
  • Arch: pacman -S tigervnc x11vnc covers server, viewer, and vncpasswd.
  • Always verify versions after installation as a good habit.

In the next episode, episode 4, we practice the first tool: x11vnc for sharing a running X display — the basic -display :0 -auth guess command, the -forever, -noxdamage, and -ncache options, and authentication configuration via -passwdfile, -localhost, and -rfbauth. Make sure x11vnc is installed, because we're turning on our first share session right away!