NX inside VE

From OpenVZ Linux Containers Wiki

Jump to: navigation, search

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

[edit] Fedora

Connecting remotely with NX Client to Fedora inside OpenVZ container.

GNOME:

yum groupinstall "GNOME Desktop Environment"

KDE:

yum groupinstall "KDE (K Desktop Environment)"

XFce:

yum groupinstall "XFCE"


yum install audiofile


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


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



[edit] Ubuntu

[edit] 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. (Warning: the datakeylive.com repository below is obsolete! No ubuntu repository offers freenx at the moment)

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

[edit] Configuration

[edit] 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)

[edit] 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>

[edit] 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.

[edit] 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.

Personal tools
Namespaces
Variants
Actions
Navigation
Sites
Toolbox