5 Tools to Enable Remote Desktop Access on RHEL/CentOS 7

This article I will show you, tools which enabled you to access remote Desktop on machines running Centos/RHEL. All these apps works in client-server mode. So you need to run server side app on your remote machine and after that, you will be able to connect to it from all over the world. Of Course in this reference manual I will tell you how to configure this securely, so only you can access to your server. Before beginning, you only need SSH access to your server and rights to install software. You need to know root password or permissions to use sudo. All commands will work on every CentOS server 5/6/7. Before start you need to install desktop environment to your server

#yum groupinstall 'GNOME Desktop Environment' 'X Window System'


x11vnc – simples of this 3 methods to get remote access. VNC stands for Virtual Network Computing) is a very useful network graphics protocol

Perhaps you need to enable EPEL (Extra Packages for Enterprise Linux) repository. Run

#yum -y install epel-release

Now we can install x11vnc. This command will install server and solve all dependencies

#yum -y install x11vnc

Then we will protect server with password:

# x11vnc -storepasswd

Enter VNC password:

Verify password:

Write password to /root/.vnc/passwd? [y]/n y

Password written to: /root/.vnc/passwd

!Do not use simple password!

We ready to start server:

# x11vnc --reopen --forever -rfbauth ~/.vncpasswd &

You can check if servers started:

    #netstat -an | grep 5900

    tcp 0 0* LISTEN

    tcp6 0 0 :::5900 :::* LISTEN

    If its ok, simply try to connect to it using vncviewer.
    #yum -y install vnc
    #vncviewer YOUR_SERVER_IP

That's all! Now you have access to your desktop. After reboot just ssh again and do again

    x11vnc --reopen --forever -rfbauth ~/.vncpasswd &

2) Tigervnc server

Tigervnc - is a high-performance, platform-neutral implementation of VNC

   #yum install -y tigervnc-server

Lets copy example config and edit it:

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

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

Example of config:

    Description=Remote desktop service (VNC)
    After=syslog.target network.target
    ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
    ExecStart=/usr/sbin/runuser -l YOUR_NAME -c "/usr/bin/vncserver
    ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
Now enable autostart service and restart it:
    systemctl enable [email protected]:1.service
    systemctl restart [email protected]:1.service

And finally connect to it:

    #vncviewer YOUR_SERVER_IP


xrdp is an Open Source Remote desktop Protocol server. First of all we need to install EPEL repository and xrdp server:

    #yum -y install epel-release
    #yum -y install xrdp

Now lets start server

    #systemctl start xrdp.service 

Check if its running, and add him to autostart.

#netstat -an | grep 3389 
tcp 0 0* LISTEN
#systemctl enable xrdp.service

Thats all now you can connect to your server from any windows machine.

4) Teamviewer

Teamviewer does not exist in standard repos, so we need to install wget and download TeamViewer rpm package

    #yum -y install wget
    #wget https://download.teamviewer.com/download/linux/teamviewer.x86_64.rpm

Install it, using this command:

    #yum install teamviewer.x86_64.rpm

And set your password

    # teamviewer passwd YOUR_PASSWORD
    #systemctl start teamviewerd.service

Now you only need to get your id to connect

#teamviewer –info
  TeamViewer ID: 9XXXXXXX7

Try to connect to it using this id and password you set

5) FreeNX

FreeNX is a Remote Access solution based on enterprise class open source technologies by NoMachine. If you like exact this tool to get remote access you may upgrade to cloud version.

First of all we need to add e EPEL + nux-dextop repositories, for Centos 6:

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm

For Centos 7

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

Install server and agent:

#yum install freenx-server nxagent 

Enable passdb authentication:

#echo 'ENABLE_PASSDB_AUTHENTICATION="1"' >> /etc/nxserver/node.conf

Now we need to create user for remote access and assign password for him:

# /usr/libexec/nx/nxserver --adduser bob 
NX> 100 NXSERVER - Version 3.2.0-74-SVN OS (GPL, using backend: not detected)
NX> 1000 NXNODE - Version 3.2.0-74-SVN OS (GPL, using backend: not detected)
NX> 716 Public key added to: /home/bob/.ssh/authorized_keys2
NX> 1001 Bye.
NX> 999 Bye

#/usr/libexec/nx/nxserver --passwd bob 
NX> 100 NXSERVER - Version 3.2.0-74-SVN OS (GPL, using backend: not detected)
New password:
Password changed.
NX> 999 Bye

Now we will install epel-repos and opennx client on your machine:

#yum install opennx

After starting opennx wizard you will be asked about session name,server address and port. Most important thing is to set your key. You need to copy key from servers /etc/nxserver/client.id_dsa.key and paste it general tab of your client session properties.

Please share your comments on this article and let us know if you aware of any other tools.

Roman Gainullin 12:05 am

Have anything to say?

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

All comments are subject to moderation.