Linux – How to remotely view a Linux desktop from Windows XP

centoslinuxremote desktopwindows

I'm using Windows XP and need to remotely connect to a CentOS-5.X server.

I'm looking to visually, securely and with as small a footprint as possible manage a remote Linux system via an GUI. It's not clear to me if Linux has a default method for streaming the desktop. Before installing something on the remote Linux system, is there a grep or find I should run to see if there's existing support on the computer? … Really have no idea, looked at Xming, but couldn't tell what it's doing; meaning if like WinSCP it's just creating an interface on my end and running CMDs remotely, or if it's streaming the desktop. Really don't need the desktop streaming to me, or really want to install something on the Linux box.

Best Answer

You get two categories of options:

Using X11 for its client-server capabilities.

X11 is designed as a client-server protocol, so your application effectively connect to the X11 server to display their windows. In the X11 model, the application is the client and the display is the server.

As an example, if you're sitting next to machineA and machineB is your remote Linux server, you can SSH from machineA to machineB (so machineA is the client as far as SSH is concerned). Then, if you run xeyes (or any X11 application), machineB will be the client to connect to machineA's X11 server (as far as the X11 application is concerned).

For this to work, you need an X11 server running on machineA. This is not a problem. Linux systems with a desktop environment will have one out of the box. On Windows, you can use the one provided with Cygwin, or perhaps Exceed.

To secure such a connection, use -X (or -Y if you trust the server) with ssh from a Linux box (machineA), this will automatically forward the X11 connections back to your machineA, tunnelled via SSH. Similarly (since in your use case, machineA is running Windows), SSH clients such as Putty have a option to forward X11.

Using a full remote desktop environment.

You can set up a VNC server (or similar, RDP, ...) on the remote machine and connect to it from a VNC client. (The notion of client and server is perhaps more intuitive in this model.) If your VNC server isn't running by default, you might have to log on via SSH manually to start it up. You're more likely to get a "full desktop" with this method (it ultimately depends on how it's configured), so you won't need to know the commands to launch the GUIs you want to use.

UltraVNC seem to have an option to have it secured out of the box in their commercial product. If you want to secure such a connection manually, you'll probably have to connect to this machine via SSH and tunnel the VNC port on the remote server to your client machine.

In general, the second option (full desktop) will be faster.