- 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
I would like an RDP server for Debian / Linux. I currently use NoMachine as an adequate replacement, and to be honest it enables me to do the limited amount I need to do with minimal "getting in the way" and I've been using it satisfactorily for a few years. But it's just not the same smooth experience that I remember from using RDP; feeling like you're actually sitting at the machine (pending network bandwidth and conditions).
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.
Try http://xpra.org/ - that's a "gnu screen" for X11, but bandwidth-optimized, can also relay USB, audio, ...
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 have tried xpra, and it was my go-to option until I tried NoMachine. I did try just forwarding windows, Firefox it was too, but there was some(times) frustrating delays.
I may re-visit, however, as the delays could have been network/environment issues rather than the technology.
> It is another block pusher as far as I understand.
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.
Are you sure on that first statement? I always thought it was akin to 'X' in that it simplified the connection based on an understanding of the windowing system. I guess I could have just made that up though.
Regarding remoting, I've found that running firefox through ssh -X makes sshd on the server max out the CPU and cause a very slow repaint. But eliminate ssh from the equation (use X11 forwarding without ssh, just let the remote firefox talk directly to your local X11 server) and firefox performance is indistinguishable from running it locally. Of course, for insecure network it's a bit of a hazard, but my usecase is forwarding a firefox instance running in a local virtual machine, so it's fine. Firefox over ssh -X brought me to the edge of sanity. I recommend trying direct X11 forwarding if someone has a similar problem and usecase (security-wise).
Obviously it depends on your use case whether this is useful, but I recommend just using your local Firefox and configuring it to tunnel connections over the SSH connection as a SOCKS proxy using "ssh -D".
In my experience, remote desktop solutions that use hardware accelerated encoding (Parsec, Nvidia GameStream, Steam Remote Play) are virtually indistinguishable from a local session when using wired Gigabit Ethernet. Even over the internet, the delay is only really noticeable in fast games. Would be great if RDP or VNC could catch up with this 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).
RDP at least is probably vastly more efficient as it doesn't encode the entire screen as a video every frame. This is what gives it the flexibility to have the remote display resolution and DPI be independent of the local settings, for one. It's actually quite sophisticated, unlike VNC and its ilk, but it isn't optimized for gaming.
Not true anymore. RDP encodes the entire desktop as it is more efficient than relaying the draw commands. You will notice compression artifacts on a poor network connection as RDP reduces the bitrate to compensate.
Gnome-remote-desktop in Gnome 42 (to be released soon) uses NVENC for H.264 encoding, if available. Of course, the client must support that too (many do, if the user left everything at 'auto').
There's also FreeRDP (xfreerdp/wlfreerdp) and rdesktop. Looks like all of the ones in the article (Vinagre, Remmina, Boxes) use libfreerdp as a backend.
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.
Krdc doesn't scale RDP connections strange enough. So I can't zoom a 1920x1080 remote to my 4k screen :(
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.
On openSUSE Tumbleweed, Wayland now works with the package `freerdp-wayland`, but integration is not complete (some resolution scaling doesn't work, the viewer window doesn't dock in KRDC like it does with X11).
I've been using a paid Teamviewer license to manage a fleet of Raspberry Pi 3b+ (50+ devices installed, 50+ incoming), doing some monitoring behind either a 3G/4G router or behind a firewalled enterprise NAT.
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.
I don't care much for TeamViewer, largely because you can't just install the "viewer" and also have to install the client. It doesn't work on Wayland either.
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.
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.
# 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.
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'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.
https://news.ycombinator.com/item?id=30694601
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
[2] https://github.com/rdesktop/rdesktop/commits/master
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
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.
Which makes it great for remote support sessions, but I wouldn't use it for the same purposes as RDP.
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.