I have two systems right next to each other. One of them doesn’t have a monitor attached and it’s not simple to do so. They are both on the same 1Gbps LAN.
I’m currently using FreeRDP/xRDP to remote into the other system, but the latency is just terrible. I’m able to deal with it, but in some circumstances (like if dynamic ads or videos autoplay on websites) the latency just skyrockets to a a frame very few seconds. The remote system is Kubuntu 20.04 using X.org and not Wayland. I have just about every window decoration turned off or down. And just about every setting I can find to increase performance. The connection settings are the best they can be (I’ve looked through so many guides and posts about increasing performance), and they have helped a bit, but it’s still far from ideal.
I’ve even tried VNC and AnyDesk and they’re both just as bad, which is odd because I’ve connected to my brother’s system in another part of the country on many occasions, and even when he loads up a Youtube video the connection and latency is buttery smooth.
Does anyone here have any recommendations or suggestions on what I can use or do to improve the connection quality?
Earlier this month I tried some options. Just my personal experience as a basic user. Disclaimer: trying to connect over internet (not LAN) to a machine running Plasma Wayland. Some points I remember:
- AnyDesk and RustDesk didn’t work.
- xrdp has some issues like it doesn’t work if user is already logged in the physical machine when you try to connect. Also if I don’t manually logout before disconnecting from remote, my physical PC freezes, forcing me to reboot.
- NoMachine and TeamViewer are good. I also quickly tested with X11 and performance was bad with AnyDesk and xrdp. RustDesk is in between the two pairs, closer to the good ones.
- I couldn’t make NoMachine send audio, maybe because I use PipeWire?
- NoMachine has better keyboard support, simple and important hotkeys like
Ctrl+C
didn’t work consistently for me with TeamViewer, even after searching for grab keyboard-like settings.Alt+Tab
to switch active window also doesn’t work properly on TeamViewer, it’s captured by local machine instead of remote. - None of them were able to hide the screen (privacy mode) in the physical monitor. At least NoMachine can automatically lock the session when you disconnect.
I ended up using NoMachine. I guess it has similar performance as connecting to a Windows machine using FreeRDP, but with some minor issues like no audio (for me this wasn’t important).
So from my experience, I’d rank this way:
- NoMachine > TeamViewer > RustDesk > AnyDesk > xrdp.
Didn’t try VNC options because everyone says (from what I read) they perform poorly.
I’m controlling my Xubuntu media server using NoMachine from my Windows 10 PC, and NoMachine takes over some of the keyboard shortcuts. Ctrl, alt, and t opens a NoMachine menu instead of the terminal, for example.
It’s only started fairly recently, so might just be a new setting that I haven’t checked yet.
Really appreciate the detailed write-up!
I’ve used NoMachine in the past. But that was years ago. I think I’ll give it another try. Thanks for the input.
X11 forwarding can be amazingly fast and due to its nature the integration is amazing. I mean that’s basically its whole purpose. If you can secure your network you can run it unencrypted for best results or over ssh if not.
If you need full desktop sharing VNC is probably the fastest of all solutions I tested. It’s barely not fast enough for games, but otherwise it does a great job.
I thought about this, but would I be crazy to forward an entire instance of plasma? Is that even doable or is that just asking for problems?
For a number of reasons I want to keep a separation between my host system and the remote system. I have a specific workflow on the remote system (like apps in the taskbar, etc), and I would like to keep that. But it’s not impossible to adapt to a new workflow.
One issue I can envision, is that I use Teams on that remote system for screen sharing and calls. I really don’t want to futz with audio redirection. I have headphones plugged into the remote system and I use direct audio.
I don’t know that you can forward an entire instance of plasma. I might be wrong, though. Not sure.
If you want to be able to connect to already-running applications rather than run them originally via the SSH connection, you might be interested in Xpra.
As far as keeping your environments separated, I’d probably recommend a second xorg-server on a different… what do they call them… not virtual terminals. ctrl+alt+f1/ctrl+alt+f2/etc things, though. (Or even a separate virtual desktop.) And just designate ctrl+alt+f2 as your “other system desktop”.
I don’t know that you can forward an entire instance of plasma
I think it’s possible, but I think it’s one of those things like printing a website screenshot, scanning it, and emailing it.
you might be interested in Xpra.
Thanks, I’ll check it out.
I’d probably recommend a second xorg-server on a different… what do they call them
I know what you mean. You’re thinking of a display server. That’s what xRDP does on the remote system. Although for whatever reason I can’t log in to the remote session if the local display server is logged in. But that might have something to do with how Plasma handles authentication. I haven’t tried with another DE.
That’s a difficult question to answer. My intuition tells me that it does not work, because 2 desktop sessions would fight with each other. The applications you export are managed by the local window manager therefore the concept of exporting a whole DE doesn’t really make sense. I don’t know the answer though and it’s just my guess.
What the other answer proposed might be possible though. Take another tty and launch another X session there. It can even be another DE than your primary one. There you can have your own session with its own windows etc. I know for sure that this does work, but you might run into problems if you use Nvidia (at least it was the case a few years ago).
Try nomachine
Take a look at Guacamole, it combines lots of different access methods in one UI.
I also like NoVNC
Get a cheap kvm switch.
“cheap” the switches with support for 2 monitors start at 250€
He doesn’t need support for two monitors, he needs support for two computers.
They’re like 30 bucks on Amazon.
I actually did. The issue is that on my main system I have 3 monitors. And switching one of them with the KVM causes some issues on the main system.
Plasma’s window management is actually pretty solid. It completely and accurately restores window positions, except for which virtual desktop each window is on. When restoring it tends to lump everything onto the currently active workspace.
It’s definitely a solution, but not my preferred one.
Thanks for the suggestion.
I’d like to bring here Parsec, It’s marketed as a remote gaming software.
I’ve been using it everyday for a couple months now, and wow the latency is great. You definitely need a stable connection (no issues for your lan use). I use it for my main pc and plex server, and easily allows me to have a sort of home cloud gaming setup. It’s also free. Plus you can install it to start before logon, so you just need to have the pc turned on, logged in or not.
There are some issues i have gotten around, although it should be able to run headless i had to provide some hdmi dummy plugs and same for keyboard and mouse (used a trash logitech pairing usb i had around). Which isn’t an issue if it’s already got a k/m on it.
Does parsec need an account to use? And can I do a direct IP connection or does it require a relay server?
Yea, you make an account on it and have both clients running and they appear as possible connections. Uses Upnp for router access (there’s also some other settings network related but i’ve never had a reason to use them so idk).
Ya, that’s what I remembered. That’s a no go for me, as the remote system has sensitive data on it and it would be a potential breach of security if I put an internet accessible remote connection system on to it.
Thanks for the info.
forwarded x windows over ssh
There’s TeamViewer I guess- but we use vnc at work to connect to some ancient systems and latency isn’t that bad. Do you have any other system to try on? Preferably with standard setup.
Or remote X11 perhaps? https://goteleport.com/blog/x11-forwarding/
RustDesk is briliant. Its interface is virtually identical to TeamViewer except it is free and open source. I swear by it. You can even set up your own RustDesk server and self-host it.
Do you know of any free to use relay servers that one can use and rely on for RustDesk?
RustDesk Server is what you’re looking for.
Sounds exciting!! Imma give it a go
Love the anti scammer banner - excitement +1
I knew about RustDesk, but decided to give it a go finally. It seems really good actually, but CPU usage was at 300% of a 6 core system. And GPU encoding wasn’t available as that system has a T500 Nvidia card, which doesn’t support any hardware encoding despite being a Turing card.
NVIDIA is going to be its achilles heel unfortunately.