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@xxxxxx> Pollard Banknote Limited Systems Administrator 1499 Buffalo Place Tel: (204) 474-2323 ext 276 Winnipeg, MB R3T 1L7