Install and Configure VNC Server in CentOS 7 and RHEL 7

VNC (Virtual Network Computing) Server allows the remote Desktop sharing using remote VNC clients like VNC viewer. In CentOS 7 & RHEL 7 package named “tigervnc-server” needs to be installed in order to setup the VNC server.

In this article we will go through the installation and configuration of VNC Server on CentOS 7 / RHEL 7.

Step:1 Make Sure the Desktop Packages are installed

In order to setup VNC server first we make sure that Desktop is installed ,in My case i am using Gnome Desktop. If Gnome Desktop is not installed on your Linux machine then use the below command to install.

 [[email protected] ~]# yum groupinstall "GNOME Desktop"

Step:2 Install Tigervnc and other dependency Package.

 [[email protected] ~]# yum install tigervnc-server xorg-x11-fonts-Type1

Step:3 Setup VNC Server Configuration File.

Copy the VNC config file “/lib/systemd/system/[email protected]” to the “/etc/systemd/system/[email protected]:<Port_Number>.service”.

While Copying the VNC config file we can mention the port number on which we want VNC service to be listen. In my case i am using port 3 , it means VNC will listen on “5903”. So while Connecting to the VNC server We can specify port number as <IP_Address_VNC_Server:3> or <IP_Address_VNC_Server:5903>

 [[email protected] ~]# cp /lib/systemd/system/[email protected] /etc/systemd/system/[email protected]:3.service

Step:4 Update the User’s Information in the Config File

[[email protected] ~]# vi /etc/systemd/system/[email protected]:3.service

vnc-server-config-file

Replace the “linuxtechi” user as per your requirement. In my case linuxtechi user will able to control and manage its desktop session using remote VNC clients.

Set the Firewall Rule if firewall is enabled on your linux box.

[[email protected] ~]# firewall-cmd --permanent --zone=public --add-port=5903/tcp
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#

Step:5 Set the VNC password for the User.

Switch to the user (linuxtechi) and run vncserver command to set the password as shown below :

vncserver-passwd

Start and Enable the VNC Service at boot.

Execute below commands as root only.

[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl start [email protected]:3.service
[[email protected] ~]# systemctl enable [email protected]:3.service
ln -s '/etc/systemd/system/[email protected]:3.service' '/etc/systemd/system/multi-user.target.wants/[email protected]:3.service'
[[email protected] ~]#

Step:6 Access Remote Desktop Session.

From Ubuntu Machine :

[email protected]:~$ vncviewer 192.168.1.15:3

Enter the VNC password that we have set in above step, after validating the authentication Remote Desktop session will start.

From Windows Machine Using VNC Viewer

Enter the VNC Server IP Address and Port Number and then Click on OK

vncviewer

Enter the VNC Password & then click on OK.

vnc-password

Desktop Session Will start after authentication.

remote-desktop-vncviewer

20 Responses

  1. José Luis Alonso says:

    Hi!

    I’m from Mexico. Thank you for your post. This is a good post, i can to installed and configured the vncserver

  2. Aravindh says:

    Hi Pradeep, Thank you for your post.It worked for me. once again thanks. 🙂

  3. Pablo says:

    Hi there! Great job, easily explained. Works perfect.

  4. David Livingstone says:

    I did everything Exactly by the book, and ended here:
    [[email protected] ~]# systemctl daemon-reload
    [[email protected] ~]# systemctl start [email protected]:3.service
    Job for [email protected]:3.service failed because the control process exited with error code. See “systemctl status [email protected]:3.service” and “journalctl -xe” for details.
    [[email protected] ~]# systemctl status [email protected]:3.service
    [email protected]:3.service – Remote desktop service (VNC)
    Loaded: loaded (/etc/systemd/system/[email protected]:3.service; disabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Tue 2016-05-17 09:45:47 AEST; 44s ago
    Process: 1238 ExecStart=/usr/sbin/runuser -l david -c /usr/bin/vncserver %i (code=exited, status=2)
    Process: 1232 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

    May 17 09:45:47 OptiPlex-380 systemd[1]: Starting Remote desktop service (VNC)…
    May 17 09:45:47 OptiPlex-380 systemd[1]: [email protected]:3.service: control process exited, code=exited status=2
    May 17 09:45:47 OptiPlex-380 systemd[1]: Failed to start Remote desktop service (VNC).
    May 17 09:45:47 OptiPlex-380 systemd[1]: Unit [email protected]:3.service entered failed state.
    May 17 09:45:47 OptiPlex-380 systemd[1]: [email protected]:3.service failed.

    Any hints? I’ve checked the forums I could find, with no clue. Any help greatly appreciated.

  5. Steve says:

    Followed you instructons for RHEL7, connected from Win7 laptop. Works perfect. Thanks!

  6. Magesh Mahi says:

    Worked Like a Charm in Centos 7 windows 10 laptop remoting into it …

  7. DeeZay says:

    Thanks Its Working Perfect

  8. Sandeep says:

    Can I get this work without Gnome Desktop group package?

  9. Brianthreedee says:

    I’m a complete noob: Running CentOS 7 – Gnome installed. Followed all instructions. I entered the following;

    systemctl enable [email protected]:5901.service ln -s ‘/etc/systemd/system/[email protected]:5901.service’ ‘/etc/systemd/system/multi-user.target.wants/[email protected]:5901.service’

    When I hit enter I get Failed to parse signal string /etc/systemd/system/[email protected]:5901.service

    Any help would be greatly appreciated!

  10. jirka says:

    Hi, I have a little problem. Everything went OK, but after
    systemctl start [email protected]:1.service

    I got this:

    Job for [email protected]:1.service failed because a configured resource limit was exceeded. See “systemctl status [email protected]:1.service” and “journalctl -xe” for details.

    I tried to remove /tmp/.X11-unix/

    without avail.

    Can somebody help. Thank

  11. Amar says:

    Thank you very much.

  12. Pete Kowalsky says:

    Great little guide – works like a champ. I like that if you follow the instructions exactly you’ll wind up with a VNC server that starts on host boot, and you can even login via the Gnome login… I’m printing this page to a PDF and stashing it. THANKS!

  13. Santhoshkumar says:

    Instead of using “yum groupinstall “GNOME Desktop” , use below command to get rid of all issues. Follow rest other steps.

    yum groupinstall ‘Server with GUI

    yum groups mark install ‘X Window System’ ‘GNOME’

    systemctl set-default graphical.target

  14. Kazuhiko Yamashita says:

    Thank you for your kind instruction. I could install both Vncserver on Centos 7 and Vncclient onWindows 10 successfully.

  15. Marco says:

    Thank you, very useful.

  16. JohnW says:

    How about a light duty Window Manager. I dont want all the gnome stuff running on my server. TWM is not on the list anymore?

  17. Rob says:

    I had to create a vnc password for my user before the service would start properly on my RHEL 7.6 system. I created the user using vncpasswd while logged in with that user account.

  18. Santosh V says:

    I am getting the following error:
    Job for [email protected]:3.service failed because the control process exited with error code . See “Systemctl status [email protected]:3.service ” and “journalctl -xe” for details

Leave a Reply

Your email address will not be published. Required fields are marked *

Pin It on Pinterest