Open main menu

OpenVZ Virtuozzo Containers Wiki β

NX inside VE

Revision as of 21:17, 4 June 2008 by Mrjcleaver (talk | contribs)

My goals were simply to be able to connect to a container using an NX client. This is handy for when I work from home and wish to run a web browser on my work's internal network to access local resources. I connect using a gutsy desktop and using nxclient.

Contents

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