Remote Desktop
Business model: Uber for pixels
2019-11-18 — 2026-02-17
Wherein sundry networked desktops are surveyed, protocols being noted from SSH X11 forwarding to NX, VNC, RDP, and SPICE, with Remmina recorded as a Linux client, last revised in July 2020.
Accessing a graphical desktop (you know, with windows and widgets and such; the dominant mode of interacting with desktop computers) remotely, over the network.
I keep forgetting the current fashionable way of doing this. Also, which client is popular right now. And which client is compatible with which server—which is basically the same thing as knowing which app talks which dialect of which protocol, which the IT department is usually quiet about because they do not want to field a bunch of help requests about various exotic combinations of clients and servers and such, so they just tell us to use their preferred client. Inevitably there is some reason it does not work, because the preferred client does not exist for our flavour of Windows, or it requires some weird network setup that crashes something. To answer these and many other tedious questions I do not even know to ask yet, I present this disordered notebook, where I mention the various protocols so I know what to search for.
The current least-worst protocol/software stack is constantly shifting. Given the current year and platform, the list of annoyances—icky privacy stuff, spamware, abominable UX, and straight-out bugs—differs for all of them.
Since I am currently blessed by not needing RDP, all the advice below is outdated; I have not updated my tools since July 2020.
1 Swiss army knife
I should note for myself that a popular Swiss army knife client for Linux is Remmina. This seems to speak every protocol (although maybe not NX).
2 SSH+X11 forwarding
The classic way is ssh with X11 display forwarding. In practice, this is not simple, since we need an X server on the client machine, an SSH server config that supports it, plus an X app on the server machine. It’s intrinsically slow. If we really need to do this from outside the same intranet, we’re in a bad situation. Try Vivek Gite’s settings:
That should open up a window on our local machine that, confusingly, represents an app running on a remote screen. Still, if we have to plug two machines together and they both run X (e.g. because they are both Linux machines), this is certainly simple and requires no software installation.
3 NX
My last two campuses liked the protocol NoMachine NX.
I think this is the protocol spoken by X2Go. As for clients, popular ones are the x2go qt client (needs an X11 server) and a Python one called PyHoca-GUI. The web presence for X2Go looks worryingly amateur, and the client versions in the repositories are ooooold. Some systems offer a browser client which looks tidier, but AFAICT it’s Linux-only. But it does seem less laggy over bad internet connections when we set it up right.
4 VNC
VNC is AFAICT not cool any more but was what we used for a while there. It uses a protocol called RFB. I think this is the one that Apple favours? The main barrier is that, the last time I looked into using this, there were so many different implementations and options, with various incompatibilities, speed issues, and quirks, that my brain shut down and I decided to work from the command line instead. Anyway, the original RealVNC software is blessed by Raspberry Pi, so maybe that will be a good default option for next time.
5 RDP
Remote Desktop Protocol is Microsoft’s one. They have client apps for it. There is some patent controversy and dispute about how open the protocol is, but nonetheless there are various open-source clients for this. FreeRDP seems to be a popular cross-platform one.
6 SPICE
This popular display protocol for virtual machines is also available for remote desktops. I suspect this is even nerdier than usual. File for later.
