Open main menu

OpenVZ Virtuozzo Containers Wiki β

NX inside VE

Revision as of 14:12, 7 February 2011 by 92.50.151.186 (talk) (Troubleshooting)

You can run full graphical remote desktop inside container using NX technology. This is handy for when you work from home and you wish to run a web browser on your work's internal network to access local resources. You can use NX client to connect to remote NX server.

Contents

Fedora

 
Connecting remotely with NX Client to Fedora inside OpenVZ container.
  • Use fedora template to create new container and install desktop of your choice:

GNOME:

yum groupinstall "GNOME Desktop Environment"

KDE:

yum groupinstall "KDE (K Desktop Environment)"

XFce:

yum groupinstall "XFCE"


  • You may need to install additional package audiofile:
yum install audiofile


  • Download installation RPM packages for server from site www.nomachine.com. Choose right architecture i386 or x86_64.

Example:

wget http://64.34.161.181/download/3.4.0/Linux/nxclient-3.4.0-5.i386.rpm
wget http://64.34.161.181/download/3.4.0/Linux/nxnode-3.4.0-6.i386.rpm
wget http://64.34.161.181/download/3.4.0/Linux/FE/nxserver-3.4.0-8.i386.rpm


  • Do simple manual installation of RPM packages.

Example:

rpm -ivh nxclient-3.4.0-5.i386.rpm
rpm -ivh nxnode-3.4.0-6.i386.rpm
rpm -ivh nxserver-3.4.0-8.i386.rpm


  • Done. You can now connect from NX client to your server.


Ubuntu

Installation

Create a new container using the gutsy template. Edit /etc/apt/sources.list and enable the "multiverse" repository. Install X and XDM

apt-get install xorg xdm

Then add this 3rd party repo to sources.list

deb http://www.datakeylive.com/ubuntu gutsy main
deb-src http://www.datakeylive.com/ubuntu gutsy main

Install the repo keys and update:

wget http://www.datakeylive.com/ubuntu/dists/gutsy/wjeremy.key -O - | apt-key add -
wget http://www.datakeylive.com/ubuntu/dists/gutsy/alivesoftware.key -O - | apt-key add -
sudo apt-get update

Install FreeNX (*)

apt-get install expect openssh-server tcl8.4 libxcomp2 libxcompext2 libxcompshad nxlibs nxagent nxproxy nxclient freenx openssl

For Ubuntu 8.04 :

apt-get install expect openssh-server tcl8.4 libxcomp3 libxcompext3 libxcompshad nxlibs nxagent nxproxy nxclient freenx-server openssl

Finally install XFCE

apt-get install xfce4

Configuration

Configuring X

In /etc/X11/xdm/xdm-config, comment out the line where it says DisplayManager.requestPort: 0

In /etc/X11/xdm/Xservers, comment out the line :0 local /usr/bin/X :0 vt7 (this starts a local X server, which will fail)

In /etc/X11/xdm/Xaccess, uncomment the line with * #any host can get a login window (Please keep in mind the security implications by the above line. Read the comments found in the file and set it appropriately)

Configure NX Server

Edit /etc/X11/xorg.conf. Ensure that the files section looks similar to this:

Section "Files"

        # path to defoma fonts
        FontPath     "/usr/share/fonts/X11/misc"
        FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
        FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
        FontPath     "/usr/share/fonts/X11/Type1"
        FontPath     "/usr/share/fonts/X11/100dpi"
        FontPath     "/usr/share/fonts/X11/75dpi"
EndSection

Now create a local user account:

useradd -m <username>

Now add this user to nxserver:

nxserver --adduser <username>

Configure NX client

Setup the Host/Port. In the desktop section select Unix and Custom. In Settings, select "Run the default X client script on server" and select "New virtual Desktop".

Now try to connect. You should get the XFCE desktop.

Thanks to dantalizing for the feedback.

Troubleshooting

(*) If you get any errors like:

dpkg: error processing /var/cache/apt/archives/libxcomp3_3.1.0-6-2_i386.deb (--unpack):
trying to overwrite `/usr/lib/libXcomp.so.3.1.0', which is also in package libxcomp2

while installing the libxcomp package, just force-install the libxcomp package:

# cd /var/cache/apt/archives
# dpkg --force-all -i libxcomp3_3.1.0-6-2_i386.deb
# apt-get -f install

You can't print from VE to client PC easily because printing in NX is realized via samba-mount of shared client's printer and CIFS isn't virtualized yet.