Terminal services alternatives

Aleksandar Milivojevic amilivojevic at pbl.ca
Mon Dec 13 15:40:47 UTC 2004


Tom Diehl wrote:
> Hi all,
> 
> I was wondering if anyone knows of a linux based solution to Terminal Services
> or Citirx?

You don't need anything extra.  X11 is basically networked graphics 
protocol.  It was designed to be used over the network from the day one. 
  X11 itself is lightweight, but don't expect to run it comfortably over 
the 33.6kbps modem line.

You can login remotely using XDMCP (X Display Manager Protocol).  All 
you need to do is to configure XDMCP manager (whichever you are using) 
to accept connections from network on the server.  I haven't done that 
since days when xdm (the XDMCP manager distrubted by MIT X11) was the 
only implementation available, but it shouldn't be anything complicated. 
  Today, there are also kdm and gdm (KDE display manager, and Gnome 
display manager, and you are probably using one of those two to login on 
your console -- haven't done this kind of stuff with them, but they 
should basically work the same way xdm does).

Do ps -ef | grep '[gkx]dm' to check out which one you are running.

On classic today's Linux system, XDMCP manager is started from 
/etc/inittab during boot, if you are booting into run level 5.  It is 
the line that calls /etc/X11/prefdm, which than starts XDMCP manager of 
your choice (xdm, kdm, or gdm).  Configuration files for all three of 
them are usually located in /etc/X11.  By default, they are configured 
not to accept connections from network (they will handle only the console).

On the client side, if clietns are Windows boxes, you'd need to install 
some sort of X server (several available, mostly commercial).  Almost 
all of them support XDMCP.  If clients are Linux boxes, just point them 
to XDMCP manager you configured in previous step.  From that point on, 
users will not be able to tell if they are sitting at the console or at 
the remote computer.  They can even be presented with menu of available 
server to connect to (after that point they'll get the very same login 
screen as if sitting at the console).

The "just point them" part might be a bit misleading.  It is a bit more 
work.  You need to start X server on the client (not the XDMCP manager) 
and instruct it to connect to the server.  Do "man Xserver" and look at 
XDMCP section.  Options that are of interest to you are "-query" to get 
login from specific hostname, "-broadcast" to do broadcast on the 
network and present list of available XDMCP servers, and "-indirect" to 
connect to specific hostname and have XDMCP server on that host present 
list of available servers.  Also, make sure X server on the client PC is 
not started with "-nolisten tcp" (default on Linux).  You do want it to 
listen on TCP, so that applications from the server can connect to 
user's display to open windows.

Note:
If on the server you are booting into run level 3, than XDMCP manager 
will not be started.  In that case, you need to start it by hand (write 
a startup script to be placed in /etc/rc3.d).  Configure it *not to* 
start X11 server on the console (otherwise, you'll get same thing as if 
booting into run level 5, X server running on console).

-- 
Aleksandar Milivojevic <amilivojevic at pbl.ca>    Pollard Banknote Limited
Systems Administrator                           1499 Buffalo Place
Tel: (204) 474-2323 ext 276                     Winnipeg, MB  R3T 1L7




More information about the users mailing list