15 Remote Desktop Solutions for Linux.
There are a wide range of remote desktop applications that are available that can be used to connect to Windows environment but there aren’t too many that can be used to remote desktop from Linux to Linux or Windows to Linux. With this I mean, getting entire desktop of remote Linux environment on your local workstation.
[ad]
Most people who are used to a Unix-style environment know that a machine can be reached over the network at the shell level using utilities like telnet or ssh. And some people realize that X Windows output can be redirected back to the client workstation. But many people don’t realize that it is easy to use an entire desktop over the network. There are a several of open source applications that can be used to achieve this.
1) VNC (Virtual Network Computing) is a remote display system which allows the user to view the desktop of a remote machine anywhere on the internet. It can also be directed through SSH for security.
Basically you install VNC server on the server and install client on your local PC. Setup is extremely easy and server is very stable. On client side, you can set the resolution and connect to IP of VNC server. It can be a bit slow compared to Windows remote desktop and also has the tendency to take more time refreshing over low-bandwidth links. All in all VNC is an amazing piece of free software that gets the job done.
There is RealVNC , TightVNC and UltraVNC. Each has it’s advantages and disadvantages. Most popular one is RealVNC but if you’re upto it, experiment with all three and choose the one that works for you best. By default, communication between client and server is in clear text on port 5900. However, you can easily route all traffic via SSH tunnel. Here is a quick way of setting it up if you have access to command line shell:
ssh -ND 5900 <user>@remote.server.com
When you get prompted, enter your password. Pop open VNC client and connect to ‘localhost’. This’ll route your connection to VNC server on remote machine.
You can download VNC from:
2) Then there is FreeNX. FreeNX is a system that allows you to access your desktop from another machine over the internet. You can use this to login graphically to your desktop from a remote location. One example of its use would be to have a FreeNX server set up on your home computer, and graphically logging in to the home computer from your work computer, using a FreeNX client. It provides near local speed application responsiveness over high latency, low bandwidth links.
[ad]
FreeNX can be configured to run via SSH without any tunneling. It binds to your existing SSH install. Instead of guiding you through the installation of FreeNX in this article, you can visit the following URLs that’ll guide you through the installation on Ubuntu:
- https://help.ubuntu.com/community/FreeNX
- http://ubuntuforums.org/showthread.php?t=97277&highlight=freenx
- http://freenx.berlios.de/ (FreeNX homepage)
3) The third free application is 2X Terminal Server for Linux. 2X TerminalServer for Linux is an Open Source project, licensed under the GPL and is free of charge. As far as performance goes, NoMachine’s technology is on par with Windows’ own Remote Desktop Protocol (RDP) suite, better than VNC. Both X2 and FreeNX is based on NoMachine technology.
Here are some quick links if you’re interested in using this software:
- Download at http://www.2x.com/terminalserver/download.htm
- Forum is at http://www.2x.com/forums
4) Then there is is XDMCP. The X Display Manager Control Protocol uses UDP port 177. Compared to the list above, it’s not as easy to setup for remote desktop but it’s the original way of doing this on Linux. You can get setup instructions and other tips in the following URL:
5) CygwinX. A complete Linux emulation on Windows. You’ll find every tool and app that you have on Linux on Cygwin.
- Get it from http://www.cygwin.com/
6) XRDP. RDP server that runs on Linux, thus allowing you to use Windows Remote Desktop Client or rdesktop to connect.
- Get it from http://sourceforge.net/projects/xrdp/
7) x2vnc – great little utility that allows you to tie a linux and windows (or anything that can run the vncserver) together with a ingle keyboard/mouse, avoiding the need for a switcher box. Mousing cross screens transparently switches between machines, and cut and aste works.
- Get it from http://fredrik.hubbe.net/x2vnc.html
8 ) Xming – t’s a great and lightweight implementation of X11 for Windows that allows you to connect to a Linux box.
- You can read about it at http://freedesktop.org/wiki/Xming
9) KDE Desktop Sharing (formerly krfb) – part of KDE since version 3.1. It is located in the kdenetwork package. If your distribution splits the KDE applications into separate packets, you may find the client as ‘krdc’ and the server as ‘krfb’. Also uses VNC technology.
10) X-Win32 – Top rated PC X server solutions for Windows PCs connecting to remote Unix and Linux host systems. Works well over SSH.
- Get it from http://www.starnet.com/products/xwin32/
11) Single Click UltraVNC – In case you would like to remote control without any software installed on the target computer you need UltraVNC SC. The user on the to be controlled computer needs to simply click on a web page and remote controlling begins.
- Get it from here http://ultravnc.sourceforge.net/addons/singleclick.html
12) CrossLoop – CrossLoop is a FREE secure screen sharing utility designed for people of all technical skill levels. CrossLoop extends the boundaries of VNC’s traditional screen sharing by enabling non-technical users to get connected from anywhere on the Internet in seconds without changing any firewall or router settings.
- Get it from http://www.crossloop.com/
13) Thinstation – Although not a remote desktop app but worth mentioning here. Thin client linux distro for terminals using std. x86 hw. It can boot from network, pxe, syslinux,loadlin, CD, floppy or flash-disk and connect to servers using VNC, RDP, XDM, SSH and etc.
- Get it from http://sourceforge.net/projects/thinstation
14) rdesktop – an open source client for Windows NT Terminal Server and Windows 2000/2003 Terminal Services, capable of natively speaking Remote Desktop Protocol (RDP) in order to present the user’s NT desktop. rdesktop currently runs on most UNIX based platforms with the X Window System, and other ports should be fairly straightforward.
- Download from: http://www.rdesktop.org/
While you’re at it, get grdesktop from (http://www.nongnu.org/grdesktop/). It is a GNOME frontend, for rdesktop. It can save several connections (including their options), and browse the network for available terminal servers.
15) ssh -X – You can check out this great article written by a slashdot user sometime ago.
- Read it here http://slashdot.org/~Trolling4Dollars/journal/69740
Windows to Mac / Mac to Windows
1) RDP Client for Mac allows you to connect to a Windows-based computer and work with programs and files on that computer from your Macintosh computer.
2) OSXVnc – Vine Server is a full featured VNC server for Mac OS X providing remote access to the GUI, keyboard and mouse using Vine Viewer or any other VNC client.
3) Chicken of the VNC – A VNC client allows one to display and interact with a remote computer screen. In other words, you can use Chicken of the VNC to interact with a remote computer as though it’s right next to you.
- Download it from http://sourceforge.net/projects/cotvnc/
Unfortunately I was not able to find too many available to connect to Mac from Windows other than VNC. I think Windows need to support RDP into Mac. Many people would benefit from this.
[ad]
If I am missing anything from the list, please let me know.
XDMCP should not be used over the Internet because login credentials are sent in plain text.. X shouldn’t be used over the Internet because it sends all communication eg. key entries in plain text.
NX, VNC with SSH tunneling, and SSH X forwarding (2, 1, and 15) are secure over the Internet.
Great post and blog overall, keep up the good work 🙂
I didn’t see NoMachine mentioned next to FreeNX.
IMO, NoMachine packages are way easier to install and use than what FreeNX have.
Well… it’s useful to have a list, but it would be even more useful to have a decent comparison (e.g. by feature) and a ranking than just a list.
Besides, when you need a remote desktop application, you need only one: the one that best suits your needs. Having a dump of 15 alternatives (half of which show up in a Google search on “remote desktop for linux” isn’t all that helpful. Quality, not quantity, is what’s needed.
In my experience VNC works, and works cross-platform as well (I think the author was right to put it in first place). However, for connections between MS Windows machines it is slower and less crisp and polished than straightforward “mstsc” (meaning it probably can be improved, at least for Windows-Windows connections). For connections between a Windows client and a Linux server, VNC does have its merits but between Windows machines mstsc is much better.
Can’t believe you missed x11vnc. It’s my favorite vnc solution for a linux vnc server. Lightweight & fast.
I’ve always liked just keeping it simple, ssh -X for me. I’ve used it from my netbook to desktop, at work from various Red Hat machines to each other. Heck, my son even used it from his MacBook to my Ubuntu machine to run a windows program with wine. (now that was fun)
Macs running 10.3 and later have a vnc server built in. You can find in the ‘Sharing’ preference pane.
Totally agree 🙂
An alternative I know is RHUB remote desktop, where you don’t even need to have a VPN. It uses an advanced security feature that blocks access by IP address. This is in addition to its firewall protection, which is highly secure.
But there is always a risk of possible security breach when you connect to remote PCs with hosted solutions. A solution like RHUB remote desktop appliance would be much better. In addition to on-premise security, it provides stringent access security. You can even lock your remote PC as extra security. No inbound TCP ports need to be opened to access a remote system. Though its not free, they do have free trial.
For the Mac and RDP, there’s also the excellent tool CoRD. I use it all the time to manage my Windows servers from a Mac. It has less bloat and issues than the MS RDP client and is updated more quickly for newer versions of OS X than the MS client is.
Oops… forgot the link: http://cord.sourceforge.net/
@A. Davis
Link: http://cord.sourceforge.net
Another RDP frontend for linux rdesktop is Gnome-RDP. I’ve been using this with Linux Mint. However, as with grdesktop it doesn’t have options to see or edit the rdesktop command line before opening a connection to the windows machine. I’d really like to be able to map a local linux path to the windows RDP session which is possible with rdesktop, but’s it left out of these GUIs for rdesktop.
What about GO-Global? Cross platform and has Unix, linux and Win solutions… have you tried it?
I thought you might find this project appropriate; PC TSC uses Tiny Core Linux and rdesktop to turn a PC, even a rather old PC, into a working terminal server client, as easily as possible. Works very well.
Maybee erd is also a good choice. It’s easy (browser based) and closs platform built on JavaFX.
You can find it on: http://erd.riapp.eu
The most useful and handy RDP/VNC client for linux I’ve ever seen is Remmina. Being FreeRDP-based in its RDP part, it does not have any rdesktop’s keyboard layout switch issues. It has also very nice settings for each connection including SSH tunneling settings.
Another one is http://remmina.sourceforge.net It’s also open source
what about freerdp?
http://www.crystalballmobile.com is a java web based remote desktop solution so it can virtually run everywhere.
VNC on Linux can be used in one of the two ways:
* To create persistent desktops for specific users
* To provide desktops on demand for VNC connections
Both types of remote access can be active on the same system at the same time.
In the first case you explicitly configure a desktop for each user. Users may disconnect and reconnect from their desktops at any time. When they reconnect to a VNC desktop they find it exactly as they left it.
If you enable the second type of configuration, the system creates and drops desktops as users connect and disconnect. With this method, any user that has a valid account on the system may login via VNC. Convert videos Ubuntu :
How come Synergy is not on the list. It is the best way to connect between WIndows, Linux and Mac all at the same time.
X2Go is IME more reliable and faster to all the VNC and NX-based alternatives. Also close in terms of speed and functionality is RDP on Windows.
The viewer that comes with Gnome, Remote Desktop Viewer, Vinagre, http://projects.gnome.org/vinagre/, is pretty nice. Allows you to create bookmarks to frequented systems and can handle both VNC and RDP connections, so it’s dual purpose in being able to connect to VNC servers and also windows servers too. It also has a sidebar for quick connections and can toggle nicely between fullscreen views and scaled down ones. Highly recommend it.
There’s also freerdp, main site: http://www.freerdp.com/ github: https://github.com/FreeRDP/FreeRDP. This is an excellent client for connecting to RDP servers such as windows. Big note here: you can setup xrdp on a linux box and use this client to connect to it using RDP instead of VNC. This works very well. I can’t recommend freerdp enough. I use it every day to connect to windows servers I manage and it’s fast and reliable. Supports Network Level Authentication (NTLMv2) as well as FIPS.