[HN Gopher] Ask HN: Why is there no performant remote desktop fo...
       ___________________________________________________________________
        
       Ask HN: Why is there no performant remote desktop for Mac/Linux?
        
       IIUC, RDP (Microsoft's remote desktop protocol) sends draw commands
       across. It's the default way to access remote desktops on Windows.
       Conversely, AFAICT, the default way on MacOS and Linux is VNC which
       IIUC sends all the pixels (with compression). I've noticed for
       years I can work remotely, edit code, etc on RDP. I've done it
       around the across 8000 miles and had hardly any lag. Conversely I'm
       trying to share 2 computers right next to each other in the same
       network via VNC and it's horribly laggy.  Is this just not an itch
       anyone has wanted to scratch in the last 25 years? On Linux you can
       maybe XWindows your way to a faster connection by what about Mac?
       Also, RDP seems to let me run GPU based stuff where as XWindows
       you're actually not seeing the computer's display.
        
       Author : asiachick
       Score  : 31 points
       Date   : 2022-08-19 21:25 UTC (1 hours ago)
        
       | PaulHoule wrote:
       | Circa 1995 the physics department I was studying at received a
       | grant from Microsoft and Intel to buy a large number of x86
       | workstations, first most of them were running Windows NT but the
       | only people who would use NT were another grad student who liked
       | Windows and me who would use vnc to log into a Linux computer
       | without competing for one.
       | 
       | That grad student and I argued about many things, one of which
       | was the relative merits of X windows and RDP and he was right
       | about that one. RDP was written with the X Windows experience in
       | mind and it performs much better. Compressors for the X protocol
       | were made but they did't address the high latency nature of the
       | protocol.
        
       | intelVISA wrote:
       | Have you considered something like NICE DCV which uses QUIC and
       | is pretty performant?
        
       | cloudymeatballs wrote:
       | DCV is the best remote desktop tool I've found - alas it is
       | closed source and requires a paid license unless you're running
       | on AWS EC2.
        
         | throwaway6734 wrote:
         | Do you know if this works wit hardware acceleration (like
         | GPUs)?
        
           | cloudymeatballs wrote:
           | Yes, GPUs are supported.
        
       | technofiend wrote:
       | For demonstration purposes I've stood up Digital Ocean droplets,
       | installed Apache Guacamole and streamed YouTube videos. If that's
       | your definition of performant check out the app: it's easily
       | installed and configured and there are demo scripts on GitHub
       | that automate it.
        
       | noduerme wrote:
       | It's probably not what you're looking for, as it's proprietary &
       | closed-source, but I've found AnyDesk to be pretty smooth. They
       | have a free tier for personal use. I really only use it to help
       | out my parents when they can't figure something out on their
       | computers, but one advantage is it's very easy to walk a non-
       | technical person through the setup process, without knowing
       | anything about their network topology.
       | 
       | For my own gaming I used Parsec for a long time, which does
       | stream pixels but has pretty impressive variable rate
       | compression.
        
       | kaladin-jasnah wrote:
       | I am making one right now and have been working on one for the
       | past two/three months to scratch this itch. I will probably
       | release it soon (and hopefully shill it on HN!). In the meantime,
       | NoMachine is a very good remote desktop software (macOS and
       | Linux), and possibly Sunshine (GameStream host), but basically
       | I'm not sure why a more popular one exists.
       | 
       | In essence, a good remote desktop software will use video
       | encoding/decoding (h264/265 for both ways being very fast) and a
       | good transport protocol over the network with good tuning
       | parameters to achieve low latency (which is what mine does). I
       | believe this is what NoMachine and Parsec do and why they are so
       | good (along with NICE DCV). From my work I've found that video
       | processing libraries/techniques are extremely poorly documented
       | (think the libav* family of libraries), which makes it a very
       | difficult segment to conquer because of what I perceive as
       | honestly massive gatekeeping (or by Hanlon's razor perhaps
       | laziness). There's nothing impossible about making a remote
       | desktop software (I can say this since I'm doing it right now)
       | but I can say it's harder than it has to be.
        
       | 29athrowaway wrote:
       | There's an implementation of RDP for Linux, Xrdp.
       | 
       | https://github.com/neutrinolabs/xorgxrdp
        
       | FinalDestiny wrote:
       | As someone who likes to remotely stream games from my desktop,
       | Parsec has been extremely easy to use and very performant. Could
       | be worth a try!
        
         | McElodeon wrote:
         | I'll second this. It may be gaming focused, but it's perfectly
         | functional as a general remote access tool too. The visual
         | quality and latency are second to none in my experience.
        
       | Spooky23 wrote:
       | It's flipped the other way around. VMWare's Blast Extreme is
       | essentially an x264 stream that outperforms RDP in most ways.
       | 
       | It's pretty awesome, any device with a x264 decoder chip can be a
       | performant client.
        
         | MrBuddyCasino wrote:
         | So, like Parsec?
        
       | rando_comment wrote:
       | export your $DISPLAY with X11, Citrix stole the idea. not many
       | really do it anymore it seems, and i doubt Wayland does it at
       | all.. works great for me
        
       | rel wrote:
       | Meshcentral is fantastic and cross-platform. Hosting it yourself
       | is really simple. One of my favorite open source projects.
       | https://meshcentral.com/info/
        
       | weberer wrote:
       | ssh -X
       | 
       | https://unix.stackexchange.com/questions/566/how-does-ssh-x-...
        
         | motohagiography wrote:
         | We used to boot sun360's diskless using bootp to a freebsd 1.5
         | X server, which would serve our 20" black and white CRT
         | monitors and the chunkiest keyboards ever. Remote desktop? Pah.
         | Fvwm. ehem.
        
       | ravenstine wrote:
       | VNC doesn't send all pixels of every frame. If you look at the
       | RFC for the frame buffer protocol it uses, it concerns itself
       | with areas of the screen.
       | 
       | https://www.rfc-editor.org/rfc/rfc6143.html
       | 
       | I've only seen very good performance using the built-in VNC
       | client/server for macOS. You can try it out by turning on remote
       | sharing and doing this from the terminal:
       | 
       | `open vnc://<host>:5900`
        
       | anthk wrote:
       | X2Go/FreeNX since forever.
        
       | mxvanzant wrote:
       | I found that RustDesk worked very well for me:
       | https://github.com/rustdesk/rustdesk
       | 
       | (I'm using it for linux to linux.)
        
         | yazzku wrote:
         | As in LAN, or did you test across the tubes of the Internet?
        
       | jeroenhd wrote:
       | Ubuntu 22 ships an RDP server by default these days. Haven't
       | tried it myself (my manual attempts at running xrdp way back in
       | Ubuntu 18 broke stuff) but it seems to work quite well. Just open
       | the settings application and enable it. Might not even be Ubuntu-
       | specific, might be available in every GNOME distro?
       | 
       | Personally, I've used stuff like Steam in-home streaming and
       | Parsec for remote desktop access. They're more meant for game
       | streaming but they handle normal applications just fine and they
       | run on pretty much any platform I can think of. As an added
       | bonus, there's something nice about the idea of picking up a
       | cheap second hand Steam Link and using it as a thin client for
       | your PC.
       | 
       | Don't know about macOS, though.
        
       | gerdesj wrote:
       | meshcentral - https://meshcentral.com/info/ - self hosted server
       | needed for best effect.
       | 
       | Open Source and development is lead by an Intel employee. I use
       | Arch (btw) exclusively on my personal gear and I'm a first class
       | citizen along with pretty much everything. The Windows binaries
       | are signed too, which is nice. It also fully supports Intel AMT
       | (vPro) which is probably why it is supported by Intel.
       | 
       | You can auth with say MS Azure (documented config required) so
       | you simply click on the MS logo instead of filling in username
       | and password and if you have an Azure cookie you go straight in
       | or you go through the usual MS sign in thing. There are several
       | more auth/auth mechs.
       | 
       | There is an agent install required and my Ansible playbook for it
       | is roughly 10 lines long so rather simple.
        
       | smolder wrote:
       | I used to use NoMachine with good success. I believe they have
       | the cross platform capability and performance you might expect,
       | though it's been years since I used it. Can it work?
        
       | georgia_peach wrote:
       | RDP also does its fair share of raster shuffling. Where it has
       | the edge is that most windows programs still use GDI (i.e.
       | windows native draw commands), and RDP can send a lot of that as
       | commands instead of pixels.
       | 
       | Xwindows _used to_ have the same advantage, but lost it for most
       | modern applications (i.e. ones written in GTK or Qt, which pre-
       | rasterize almost everything for simplified cross-platform
       | compatibility). Nowadays, unless you restrict yourself to classic
       | X applications, X forwarding is going to be a slower, dumber,
       | version of VNC.
       | 
       | Mac has so many fades & animations that, raster or command, it
       | will probably always be slower.
        
       | phatfish wrote:
       | VNC is not too bad now with internet connection speeds
       | increasing. It is usable for development, but not for
       | video/graphics in the way RDP can.
       | 
       | I've found the SPICE protocol using the QXL driver with some
       | compression settings tweaks gives the best performance. The
       | latency is better than VNC, but video/graphics intensive screens
       | are still a problem unfortunately.
       | 
       | I use it to connect to the console of a VM over VPN for Linux
       | development currently.
        
       | AdieuToLogic wrote:
       | TigerVNC[0] might be of interest in this domain.
       | 
       | 0 - https://tigervnc.org/
        
       | m463 wrote:
       | I think it's worth mentioning that apple screen sharing is pretty
       | amazing for apple <-> apple.
       | 
       | You can screen share a remote mac very efficiently, drag and drop
       | files, use keystrokes such as modifier-plus-key in a sane way,
       | and more.
        
         | snoopy_telex wrote:
         | Which app is this? I've checked the box in sharing for screen
         | sharing and it's just using vnc. Is there a different one
         | hidden somewhere?
        
       | pmontra wrote:
       | I noticed that remote desktop from Linux to Mac (with Remmina) is
       | much slower than Linux to Windows 10. It's definitely RDP on
       | Windows, maybe it's VNC on the Mac.
       | 
       | No idea about the performances of a remote Linux desktop because
       | I connect to remote machines with ssh and use only the command
       | line. It's maybe 25 years since I run remote X11 applications to
       | my local server.
       | 
       | There are other apps like NoMachine and TeamViewer. I never used
       | them with a remote Mac.
        
       | drdec wrote:
       | Remmina on linux will support RDP, VNC, SPICE and others. I've
       | used it to remote into my Windows laptop from my linux desktop.
        
       | unixhero wrote:
       | X2go is super smooth and fast, yes Linux has a fast remote access
       | protocol, server and client software.
        
       | ianai wrote:
       | Others are giving options for Linux/Mac I've not used. Probably
       | the reason a name like RDP for Linux/max isn't so widely spread
       | is because RDP is daily driven in IT "enterprise" at scale for
       | course of business stuff. The equivalent for IT pros in Linux is
       | ssh. Mac is decidedly un-"enterprise" friendly.
        
       ___________________________________________________________________
       (page generated 2022-08-19 23:01 UTC)