Cheap VPS & Xen Server


Residential Proxy Network - Hourly & Monthly Packages

How to turn your Ubuntu 14.10 headless server into a XFCE + VNC Network Desktop


This tutorial describes the installation of Gnome 3, XFCE and VNC on a headless server (server without monitor) to turn it into a Linux Desktop that you can access from anywhere over the internet with VNC. The server that is used for this setup is a root server in a datacenter that runs just a minimal Ubuntu 14.10 operating system. I will guide you trough the installation and configuration of the following software:

Ubuntu 14.10
Gnome 3.14
VNC 4.1.1

Important Notes: This procedure is only applicable to a new installed Ubuntu Linux OS, if you have existing running Ubuntu Linux with a different version where you like to install a desktop and vnc, i suggest you make a backup of your system and after that, you may proceed with this procedure. All commands below assume that you are logged in as root user, so please run “sudo -” to become root if you are logged in as a different user.

WARNING: The VNC protocol does not encrypt the transmitted data or login details, use a VPN tunnel if you plan to use it over a insecure or public network.

1. Installing Gnome

First we install some prerequisites for installing Ubuntu PPA repositories:

apt-get install software-properties-common

gnome2

Then add the Gnome 3 PPA repository with this command:

add-apt-repository ppa:gnome3-team/gnome3-staging

gnome3

Then, Press [ENTER] to proceed

gnome4

to load the gpg key.

Then run:

apt-get update

gnome5

to load the package list from the server and install pending updates:

apt-get upgrade

gnome6

2. Installing VNC

VNC (Virtual Network Computing), this is used for remote access software to control and this can be done by installing in destination server.

Diagram:
VNC client(source) -> Internet cloud -> VNC Server(destination)

VNC Destination server:
Assign a IP address
VNC server installed
Password set in VNC (for security purposes)

VNC Source client:
VNC viewer installed (you can install this to any client pc either your using windows or linux)

Here are the steps:

apt-get install gnome-core xfce4 firefox

gnome7

Then you may choose Yes or Y to confirm the action, after that issue the command

apt-get install vnc4server

gnome8

You should test it by running vncserver and setting a password.

vncserver

gnome19

If you seen this option view-only password, this means you have no control on remote server. So, in this case you will need to choose “n”, so you have a full access.
Once its running, you may kill the process.

vncserver -kill :1

gnome20

Then I will make a backup of the original vnc startupfile by executing the command

cp ~/.vnc/xstartup ~/.vnc/xstartup.bak

gnome9

The next command will empty the file

~/.vnc/xstartup

gnome10

By using vi editor, you may edit the file.

vi ~/.vnc/xstartup

gnome12

Insert this given data into the file xstartup.

gnome11

for easier copy / pasting, here the content of the startup file as text

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

Then make the startup file executable.

chmod +x xstartup

gnome13

Next, I will create a startup script

gnome14

then insert this data into that vncserver file.

#!/bin/bash
 
unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"
start() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Starting $prog: "
 ulimit -S -c 0 >/dev/null 2>&1
 RETVAL=0
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 DISP="${display%%:*}"
 export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
 su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
 fi
 done
}
stop() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Shutting down VNCServer: "
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 export USER="${display##*:}"
 su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
 fi
 done
 echo -e "\n"
 echo "VNCServer Stopped"
}
case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [ -f /var/lock/subsys/vncserver ]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac

and make it executable.

chmod +x /etc/init.d/vncserver

gnome15

Then, I need to create a configuration file for the vnc server:

mkdir -p /etc/vncserver

gnome16

vi /etc/vncserver/vncservers.conf

gnome17

Then insert this to vncserver.conf and make it root user in VNCSERVERS=”1:root” (this will depend on what user are you gonna use)

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768"

Now, will create to startup upon boot of the system.

update-rc.d vncserver defaults

gnome18

You may reboot the system.

reboot

Once the system up and running you may use any VNC client and configure it. (as with me i install TightVNC on my windows pc)

In this example, in VNC server -> <enter the ip address  of the target server>:<port number>, since this VNC server is using port number 5901.

gnome21
Then you need to enter the password.

gnome22
If its working, then you should be able to access the desktop of the remote server.

gnome24

 

Comments

comments