RDP Clients for Debian: An incomplete review
smackeyacky.blogspot.com
smackeyacky.blogspot.com
# For client, I use:
- Remmina - https://remmina.org/
- Apache Guacamole (HTML5, browser based) - https://guacamole.apache.org/
# For server on Linux I use:
- X11: xrdp - for a KDE guide, see https://pilabor.com/blog/2021/05/remote-desktop-with-xrdp-an...
- Wayland / GNOME: Already integrated (alpha state, some caveats) - for a guide, see https://gitlab.gnome.org/-/snippets/1778 (read the comments first, there is some good additional info and I think someone has crafted a script)
# Further notes:
- RDP Server on Linux is very fiddly to get working reliable, while on X11 systems I found xrdp pretty straight forward - this link was pretty helpful: http://c-nergy.be/blog/?cat=79
- On modern GNOME systems the RDP server is already integrated, but there is a lot of missing stuff and I did not find a solution for a working RDP after reboot
- Remmina as RDP client is good, but it takes some fiddling, if you are using HiDPI
- Guacamole is not as good, but I use it as backup, which works in the browser
NoMachine is brilliant, however, given how much I paid for it. The "Enterprise client" is a free and no-install-necessary executable client, which I've found useful for allowing remote administration from a machine on which I don't have admin / install privileges.
I've even used it over a 9600 baud dialup connection (a long time ago from a 2G mobile that didn't have GPRS) and it was usable to my suprise.
While that is the most basic thing RDP allows for[1], it also supports sending GDI draw calls[2] which is more like X-forwarding.
It also hooks into the stack at a lower layer than VNC and friends so when sending bitmap block updates it has the dirty area information directly available, and doesn't have to do a frame-by-frame delta to recover that information. This is a huge CPU hog from my experience when I did some work on the FreeRDP server component years ago.
It also supports using UDP[3] with forward error correction to improve performance over WANs.
[1]: https://docs.microsoft.com/en-us/openspecs/windows_protocols...
[2]: https://docs.microsoft.com/en-us/openspecs/windows_protocols...
[3]: https://docs.microsoft.com/en-us/openspecs/windows_protocols...
Yeah, you can pretty much forget that with newer Windows versions.
Just to give you an idea: I used it for forwarding a Firefox window across an UMTS connection when sitting in a train. (Long story: 32bit Java required to remote desktop into a client's environment across the Atlantic, ugh.)
I may re-visit, however, as the delays could have been network/environment issues rather than the technology.
I'm a contributor for the Sunshine project: https://github.com/SunshineStream/Sunshine project, which allows Nvidia GameStream to be used on Linux systems with Moonlight clients. I haven't tested the Linux side of things, but it has many ways to both encode the screen or acquire it (via KMS, Pipewire or x11grab IIRC).
Don't have direct experience with Sunshine but my moonlight experience in general was great
I was very happy with xfreerdp on Debian 10, but something on Debian 11 is making it crash/disconnect from my work computer every so often. Haven't yet figured out what it is.
I run xfreerdp nightly builds for everything, and I rarely have issues, might be worth looking into for your crashing issue.
[1] https://groups.google.com/g/rdesktop-announce/c/AddglSNxK90
I've been pleasantly impressed coming from Remmina
Very weird because it can do it just fine when it's using the VNC protocol. Never understood why the same app can't do it when it's RDP.
Other than this it's great (like most apps from the KDE world) but I really need the scaling. 1:1 scaling is just too small on 4k 24". I really need to zoom it in.
PS I use it on FreeBSD, never tried it on Linux so perhaps that's the reason but I doubt it.
Almost 15+ years ago i contributing some code to rdesktop linked to libsvga
Before you start setting up connections, it insists on you making an account, which also sucks.
The good news is that it's an easy install (they supply a .deb). Even better news is that uninstalling it is just as fast.
Not sure about Anydesk.
It's crippled without creating an account (fair enough I guess), also has the annoying feature of installing the AnyDesk server software like TeamViewer.
It does share the great feature with TeamViewer that it can be uninstalled quickly.
Which makes it great for remote support sessions, but I wouldn't use it for the same purposes as RDP.
So far, it has been the most reliable way to connect. I've tried multiple VNC and RDP clients, and when dealing with "hidden behind a network" systems, Teamviewer works very well, with little to no overhead. Specially since they have an special client for RPi monitoring, which works fantastic in my opinion.
If you don't have the option to pay for those licenses (which I did for several months), and no direct SSH access is possible to the machines, you can setup a cloud gateway SSH server or a VPN network.
But, RDP's bandwidth efficiency on Windows is unbeatable AFAIK. I wish the Linux and macOS world had something like that.
I don't like the forced cloud mediation either, but the protocol is just so much better, almost comically better, than NoMachine, RDP-over-macOS, VNC, X11-forwarding, Screen Sharing.app, etc.
I wish they did offer Cloudless in their regular version.
By good I mean one that would give an experience at least somewhat close to RDP on Windows. All the ones I've tried have been orders of magnitude away.
A good one should also allow for a key RDP feature which is to seamlessly transition between physical and remote desktop sessions. Meaning, I log in to my desktop at home, I leave and log in via RDP and get the same desktop session, which I can again resume when I get back home.
This is either not possible or doesn't work well last time I tested xrdp and friends.
Of course, if things has changed in the last year or so, I'd be delighted to hear about it. A good RDP server for Linux is what's keeping me from transitioning away from Windows on my main machine.
This works with x2go.
Ah, I don't think I even got that far with x2go. Dismissed it due to performance.
But good to know!
If you mean better than anything else available on Linux, you're probably right.
The problem is that it's still an order or magnitude behind Windows-to-Windows RDP, which is my benchmark.
But thanks for reminding me, I'll give it another whirl.
RDP has a much more complex set of window painting commands - instead of sending 'this block of image goes here' it sends 'draw a window here with this decoration'. It's much more complex but also more performant as a result.
I hate both Windows and VNC. Is there any solution for me on Linux with RDP level performance?
Basically, VNC is a cheap hack and RDP is a well thought-out remote graphical terminal.
I hate both Windows and VNC. Is there any solution for me on Linux with RDP level performance?