Version 1.0
Author: Srijan Kishore
Last edited 1/Sep/2014
This guide explains how to configure VNC-server in CentOS 7.0
server. It is a very convinient way of administrating the CentOS 7.0 with the
help of GUI(Graphics User Interface). The GUI can be access any where with the
help of the VNC-client on any OS. The basic condition is that the connecting OS
must have VNC-clients installed in it.
1 Preliminary
Note
This tutorial is based on CentOS 7.0 server, so you
should set up a basic CentOS 7.0 server installation before you continue with
this tutorial. The system should have a static IP address. I use 192.168.0.100 as my IP address in this tutorial and server1.example.com as the hostname.
IP address 192.168.0.100
Gateway 192.168.0.1
DNS 8.8.8.8
8.8.4.4
Hostname server1.example.com
VNC-server benefits
- Remote GUI administration makes work easy & convenient.
- Clipboard sharing between host CentOS server & VNC-client machine.
- GUI tools can be installed on the host CentOS server to make the administration more powerful
- Host CentOS server can be administered through any OS having the VNC-client installed.
- More reliable over ssh graphics.
- More reliable over RDP connections.
2 Installation
I am
logged in my system with root, & now I will be
installing the VNC-server.
yum
groupinstall "GNOME Desktop"
Further
install
yum
install tigervnc-server
3 Adding VNC
user
In my case I am
using user=srijan it will differ in your case. You can use any
username for the same.
useradd
srijan
In
CentOS 7.0 there is change in the vncserver configuration file. Before ContOS
7.0 it was /etc/sysconfig/vncservers and now it have changed in/lib/systemd/system/vncserver@.service. Next I will use the original file and create the
configuration file as shown:
cp
/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
Now we will edit the
file as follows:
vi
/etc/systemd/system/vncserver@:1.service
Replace the string <USER> with
appropriate vncuser’s username. In my case I will be using the user srijan just
created above:
[...]
[Service]
Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' #ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i" #PIDFile=/home/<USER>/.vnc/%H%i.pid ExecStart=/sbin/runuser -l srijan -c "/usr/bin/vncserver %i" PIDFile=/home/srijan/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' |
If you wish to add more users you would create a
new vncserver@:#.service file and change the <USER> string to the new users.
Firewall settings:
firewall-cmd
--permanent --zone=public --add-service vnc-server
firewall-cmd
--reload
Now switch to the vncuser just created above and start the vnc
service as:
su
- srijan
vncserver
[srijan@server1 ~]$ vncserver
You will require a password to access your desktops.
Password:<--yourvncpassword
Verify:<--yourvncpassword
xauth: file /home/srijan/.Xauthority does not
exist
New 'server1.example.com:1 (srijan)' desktop is
server1.example.com:1
Creating default startup script
/home/kishore/.vnc/xstartup
Starting applications specified in
/home/kishore/.vnc/xstartup
Log file is
/home/srijan/.vnc/server1.example.com:1.log
[srijan@server1 ~]$
Now make the service enabled on after every reboot with root
credentials:
su
-
systemctl
daemon-reload
systemctl
enable vncserver@:1.service
reboot
systemctl
start vncserver@:1.service
4 VNC Client
At client end my OS is Ubuntu 14.04 with vino installed on my
client machine. Otherwise you can install any VNC-client of your choice. In
case other OS say Windows-7 you can install Realvnc-client or any other of your
choice.
Now I am going to connect with the VNC server through my
VNC-client at 192.168.0.100:5901
It will prompt for the password, give the vnc password just
created above as follows:
Put yourvncpassword the same
which you gave at the time of adding the user srijan.
Now you are
connected with the CentOS 7.0 Server. In case you want to add more users to
access the vnc-console you need to add :
cp
/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
vi
/etc/systemd/system/vncserver@:2.service
For
instance I am using user kishore, entries will be like this
[...]
[Service]
Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' #ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i" #PIDFile=/home/<USER>/.vnc/%H%i.pid ExecStart=/sbin/runuser -l kishore -c "/usr/bin/vncserver %i" PIDFile=/home/kishore/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' |
Now switch to the
vncuser just created above and start the vnc service as:
su
- kishore
vncserver
[kishore@server1 ~]$ vncserver
You will require a password to access your desktops.
Password:<--yourvncpassword
Verify:<--yourvncpassword
xauth: file /home/kishore/.Xauthority does not
exist
New 'server1.example.com:2 (kishore)' desktop is
server1.example.com:2
Creating default startup script
/home/kishore/.vnc/xstartup
Starting applications specified in
/home/kishore/.vnc/xstartup
Log file is
/home/kishore/.vnc/server1.example.com:2.log
[kishore@server1 ~]$
Now start the
service on after every reboot for second user as follows:
systemctl
daemon-reload
systemctl
enable vncserver@:2.service
reboot
systemctl
start vncserver@:2.service
This
will enable user kishore to get the access to the VNC-server with the
port 5902 as 192.168.0.100:5902 . In the same way you can add the
root user also.
Congrats you have
configured the VNC-server in CentOS 7.0 successfully :)
Comments
Post a Comment