VNC (Virtual Network Computing) allowed to remotely control desktop systems. We can say VNC is a graphical desktop-sharing system that uses the Remote Frame Buffer protocol (RFB). There are multiple software services provides VNC service to access Linux based desktop remotely including, TigerVNC, TightVNC, Vino, vnc4server and more.

The TigerVNC is a free, open-source and high-performance VNC server used to control or access Linux based desktop remotely. It is a client/server application that allows you to interact with graphical applications on remote machines.

This tutorial help you to how to install and configure VNC server on Debian 10 Buster Linux system using the TigerVNC server.

Prerequisites

First, update and upgrade all installed packages on your system with the following command:

sudo apt update 
sudo apt upgrade

Once your system is updated, follow the next instructions.

Step 1 – Install Desktop Environment

The default, Debian servers does have a Desktop Environment. TigerVNC server is designed to controls only desktop systems. So you will need to add a desktop environment in your server.

First, install the Tasksel utility to install a desktop environment:

sudo apt install tasksel -y 

After installing Tasksel, launch the Tasksel utility with the following command:

sudo tasksel 

You should see the following interface:

How To Install VNC Server on Debian 10 Debian Debian 10 vnc vncserver

  1. Move cursor to Debian Desktop Environment in the list.
  2. Press the Space key to select item.
  3. Press Tab key to move cursor to Ok button.
  4. Again hit Enter to start installation.

During installation it may prompt to choose Keyboard type and continue to install. Once all the packages are installed, you will need to set your system boots into the graphical target. You can set it with the following command:

sudo systemctl set-default graphical.target 

Next, restart your system to apply the changes.

Step 2 – Installing VNC Server on Debian

The TigerVNC package are available under default package repositories under Debian 10 system. You can install it by running the following command:

sudo apt install tigervnc-standalone-server -y 

After installing TigerVNC, create a new user and set a VNC password for that user.

First, create a new user named “rahul” (or choose other name of your choice) with the following command:

sudo adduser rahul

Next, switch the user to newly created account and set a VNC password with the following command:

su - rahul
vncpasswd 

Provide your desired password as shown below:

Password:
Verify:
Would you like to enter a view-only password (y/n)? n

Next, start the VNC server using the following command:

vncserver -localhost no 

Once the VNC server is started, you should get the following output:

/usr/bin/xauth:  file /home/rahul/.Xauthority does not exist

New 'tecadmin:1 (rahul)' desktop at :1 on machine tecadmin

Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/rahul/.vnc/tecadmin:1.log

Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/rahul/.vnc/passwd tecadmin:1 to connect to the VNC server.

You can verify your running VNC server using the following command:

vncserver -list 

You should get the following output:

TigerVNC server sessions:

X DISPLAY #	RFB PORT #	PROCESS ID
:1		5901		1204

Step 3 – Installing VNC Client

In this section, we will install the RealVNC VNC client on the remote machine and connect to the VNC server.

You can download the RealVNC client from the RealVNC download page.

Once the download is completed, install the downloaded package with the following command:

dpkg -i /home/vyom/Downloads/VNC-Viewer-6.20.529-Linux-x64.deb  

Next, launch the VNC client from the Gnome application menu. Then, Click on the File menu => New connection to create a new connection. You should see the following screen:

How To Install VNC Server on Debian 10 Debian Debian 10 vnc vncserver

Provide the Name and IP address along with VNC session ID :1 of your VNC server and click on the OK to save the connection. You should see your saved connection in the following screen:

How To Install VNC Server on Debian 10 Debian Debian 10 vnc vncserver

Now, double click on your newly created connection. You will be asked to provide your VNC password as shown below:

How To Install VNC Server on Debian 10 Debian Debian 10 vnc vncserver

Provide your VNC password and click on the OK. Once connected, you should see your Debian desktop screen:

How To Install VNC Server on Debian 10 Debian Debian 10 vnc vncserver

Step 4 – Configure VNC to Work with Your Desktop Environment

Before starting, stop the VNC instance using the vncserver command with a -kill option and the server session ID as an argument.

vncserver -kill :1 

You should get the following output:

Killing Xtigervnc process ID 1719… success!

Next, you will need to configure TigerVNC to work with Gnome. You can do it by creating new file xstartup inside .vnc directory:

su - rahul 
nano ~/.vnc/xstartup 

Add the following lines:

#!/bin/sh
exec /etc/vnc/xstartup
xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &

Save and close the file when you are finished. The above script will be executed automatically whenever you start or restart the TigerVNC server.

Next, give execute permissions to the ~/.vnc/xstartup file:

chmod u x  ~/.vnc/xstartup 

Step 5 – Creating SystemD Unit File

Next, you will need to create a systemd file for TigerVNC to manage the VNC service. You can create it with the following command:

sudo nano /etc/systemd/system/[email protected] 

Add the following lines:

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=rahul
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1024x768
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Save and close the file then reload the systemd daemon with the following command:

sudo systemctl daemon-reload 

Next, enable the VNC service to start at system reboot with the following command:

sudo systemctl enable [email protected] 

Next, start the VNC service with the following command:

sudo systemctl start [email protected] 

Conclusion

Congratulations! you have successfully installed VNC server on a Debian 10 Linux Buster system. You can now connect your Debian desktop from any remote desktop systems using VNC Viewer.