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.
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
Then add the Gnome 3 PPA repository with this command:
add-apt-repository ppa:gnome3-team/gnome3-staging
Then, Press [ENTER] to proceed
apt-get update
apt-get upgrade
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:
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
apt-get install vnc4server
vncserver
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
cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
> ~/.vnc/xstartup
vi ~/.vnc/xstartup
Insert this given data into the file xstartup.
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
#!/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
mkdir -p /etc/vncserver
vi /etc/vncserver/vncservers.conf
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
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.






















No comments:
Post a Comment