35 ms·
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.
- mxvanzant 4y agoI found that RustDesk worked very well for me: https://github.com/rustdesk/rustdesk https://github.com/rustdesk/rustdesk (I'm using it for linux to linux.)
- Technetium 4y agoRelated: https://news.ycombinator.com/item?id=31456007 https://news.ycombinator.com/item?id=31456007 - Rustdesk – Remote desktop software, an open source TeamViewer alternative https://news.ycombinator.com/item?id=32239025 https://news.ycombinator.com/item?id=32239025 - RustDesk – Open-source TeamViewer alternative
- yazzku 4y agoAs in LAN, or did you test across the tubes of the Internet?
- mxvanzant 4y agoI used it across the tubes! ;) I support my in-laws and my daughters running Linux on their laptops and it worked fine and was pretty quick. By the way -- we are all running various fairly recent versions of Linux Mint with the MATE desktop. The oldest being mine: [Release Linux Mint 19.3 Tricia 64-bit].
- than3 4y agoThe very simple answer to your question is, the developers that have made these great things weren't Management people. They don't generally work in MiS, and when they target something, they've just gone their own way. This leaves multiple fragmented camps of GUI to target, increasing the technical debt before you can get anything done. Wayland was a step forward, but overall 20 years too late. This stuff isn't rocket science; if something hasn't been done its a structural issue that needs to be addressed but the project maintainers of the projects that you would need to target don't see it that way. Why should someone that puts effort in to a project like this be forced into a dovetailed management strategy that is doomed to maintainability failure as a 1 bus factor project.
- wizofaus 4y agoEven RDP isn't great with latency over about 30ms from my experience. The mouse cursor never quite follows my hand movements and everything feels slightly sluggish. Without tech whereby the client can somehow anticipate user actions and predict the next likely update I'm not sure how you solve that.
- kasajian 4y agoI've used RDP based remoting in the early 2000s, with a 28K modem, for development, on my full-time job for six weeks. It wasn't amazing, but totally usable. Even today's tight-VNC at the time would have been unusable.
- readerbaza 4y agoWith Windows RDP it's possible to login in the same session that was started at the phisical machine. Also the physical monitor doesn't wake up upon login and the desktop remains password locked. None of the options I tried on linux could match this features. NoMachine did perform well but having the remote computer in the same room I could see it was mirroring the physical monitor and I could type on the keyboard. It does have a feature to make the screen black and lock inputs but then you're unable to log in from physical even if you know the password
- emaxt6 4y agoNobody mentioning something like PCoIP? I think the direction to go, being compute/GPU nowadays much more powerful and even in the same chip (and bandwidth), is to just remote the framebuffer or the video output built on the source machine, with realtime hardware assistance. No primitives, no API... just pixels, so both world can evolve without being in lockstep. PCoIP is proprietary but the basic philosophy is pretty sounding ("graceful degradation" etc., I've used it even across WANs and the experience was pretty good). Amazon AWS is using it to stream its remote cloud desktops.
- anthk 4y agoX2Go/FreeNX since forever.
- pmontra 4y agoI 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.
- romeoblade 4y agoFor the slowness of Linux > Mac. I'm not sure if this helps, but I always had better performance from the freerdp2 nightly and remmina next repositories. At least on Ubuntu, looking at the package website for 22.04 freerdp is at version 2.6.0. However 2.8.0 is available in nightly. I've been using the nightly branch for 6 or 7 years now and have rarely ran into issues. In fact our entire company runs nightly due to using the latest bastions and gateways servers that sometimes the version in the main repository do not support yet.
- PaulHoule 4y agoCirca 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.
- PaulDavisThe1st 4y ago"High latency nature of the protocol" is a bit misleading. X is distinctly asynchronous. You don't send the server a command and then wait till it ack's that before doing something else. The actual delay between the client sending the command and the result appearing on the server's display can be extremely fast (dependent mostly on network performance), and by most definitions that is a "low latency" system. However, if the app on the client needs more synchronous behavior from the server, that's when you start to see things slow down and demonstrate "high latency"
- hedora 4y agoI believe it is impossible for an RDP app to rely on "more synchronous behavior" as you put it. Remote X11 worked well in the past. It's possible to latency-optimize software for it, but it's not common anymore.
- mekster 4y agoI wonder why cloud vendors, even AWS, wouldn't invent a modern remote desktop protocol that works cross platform in easy way such as through ssh protocol that may perform at near native performance and they may just have a wider use case for cloud servers to increase their revenue. Of course it helps other vendors too but no one loses including the users.
- FinalDestiny 4y agoAs 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 4y agoI'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.
- geerlingguy 4y agoIt seems like it's "latency focused" which is good for gaming but also things like video editing, remote visual/graphical coding (like for games). It seems a good number of people use it for more business-related purposes.
- chowells 4y agoI think the gaming focus is to market the free product. The enterprise version is all about productivity stuff. The big things it adds are better color quality and multi-monitor support.
- akvadrako 4y agohttps://www.paperspace.com/ https://www.paperspace.com/ is a SaaS that uses Parsec and they are not game-focused - it barely works for games. They are focused on professionals who need good GPUs, like 3D modeling and rendering.
- dafelst 4y agoSame, I Parsec into my machine at the office using my dual screen 1440p monitor set up at home, the latency is incredibly good, so good sometimes I forget I'm using a remote machine. I was skeptical of it at first, but now I am a convert - it works very well for coding as well as gaming stuff.
- bronco21016 4y agoThe only downside IMHO is the lack of an iOS/iPad OS client. I’m in the “make my iPad a general purpose computer” crowd though, mainly to avoid carrying a beefy machine around.
- smolder 4y agoI 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?
- mottosso 4y agoI second this! I was also looking for performance (3d graphics usage) and NoMachine is surprisingly performant; currently using it across both Windows, Linux and Mac and consider my search to be over.
- smolder 4y agoI remember being surprised that watching a video on my remote desktop worked as well as it did, over 100Mb LAN, circa 2010.
- gchamonlive 4y agoNomachine turned out to handle latency very well. My company is based in Brazil but we have our infrastructure on Aws north Virginia. I build an EC2 with Ubuntu and installed the gnome desktop and nomachine and the result was a very usable and cheap remote workspace.
- cloudymeatballs 4y agoDCV 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 4y agoDo you know if this works wit hardware acceleration (like GPUs)?
- cloudymeatballs 4y agoYes, GPUs are supported.
- emptysongglass 4y agoIt also looks like a paid license can only be purchased by through a "contact us" partner? That's a hurdle.
- deleted 4y ago[deleted]
- 29athrowaway 4y agoThere's an implementation of RDP for Linux, Xrdp. https://github.com/neutrinolabs/xorgxrdp https://github.com/neutrinolabs/xorgxrdp
- scarygliders 4y agoGlad someone mentioned Xrdp. Some years ago I made a WYSIWYG customisation utility to configure not just Xrdp sessions, but also the look and feel of the Xrdp login manager : https://scarygliders.net/xrdpconfigurator/ https://scarygliders.net/xrdpconfigurator/ , https://github.com/scarygliders/XRDPConfigurator https://github.com/scarygliders/XRDPConfigurator I've not done anything to it for years - lost interest in the whole thing - so it definitely needs an update to more modern versions of Python, PySide, whatever. Pull requests welcome, in case anyone is ever interested (it's not a sexy project I suppose). But I was particularly proud of the login screen emulator for the WYSIWYG part of it :)
- 29athrowaway 4y agoThere is also Miracast and Steam Link.
- rel 4y agoMeshcentral is fantastic and cross-platform. Hosting it yourself is really simple. One of my favorite open source projects. https://meshcentral.com/info/ https://meshcentral.com/info/
- mxvanzant 4y agoThanks for the info -- I'm going to try this out!
- gerdesj 4y agomeshcentral - https://meshcentral.com/info/ 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.
- guerby 4y agoI second this, meshcentral is very good and efficient, works on Windows and MacOS too, developpers are very responsive.
- georgia_peach 4y agoRDP 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.
- rcarmo 4y agoRDP has not worked that way in a long time. Look up “rdp gfx rfx” for an idea of how it works a lot more like streaming video today.
- deleted 4y ago[deleted]
- phatfish 4y agoVNC 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.
- m463 4y agoI 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 4y agoWhich 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?
- znpy 4y agoMaybe they have some custom protocol extensions that only work between mac os and mac os?
- sys_64738 4y ago/System/Library/CoreServices/Applications/Screen\ Sharing.app
- geerlingguy 4y agoThe easiest way to see it is to browse to another Mac on the Network in Finder and if it has "Screen Sharing" enabled, you should see a "Share Screen..." button in the finder window.
- sys_64738 4y agoI keep Screen Sharing App in my dock at right click for prior connections from the popup list.
- m463 4y agoYou can use screen sharing to non-apple devices using the VNC protocol, but between macs it does something different. I use it over ssh myself. for example, if I have a machine call rem: Host rem Hostname 10.1.2.3 User foo IdentitiesOnly yes IdentityFile ~/ssh/id_rem # rem screen shares on port 5900 locally # this forwards rem:5900 to this machine:5903 LocalForward 5903 localhost:5900 then I do in one window (which you leave open): ssh rem then launch /System/Library/CoreServices/Applications/Screen\ Sharing.app choose Connection -> New and enter: localhost:5903 when you log in using username/password and you will get a nice remote window on your desktop The window has lots of nice features. You can drag files from your local desktop and drop them on the remote desktop and they are copied over. cmd-tab in a screen sharing window works on the remote machine, but move it out of the window and it works on the local machine. You can copy/paste between apps on the local machine and apps on the remote machine, including rich text stuff. There is probably lots more I don't remember or haven't discovered.
- drdec 4y agoRemmina on linux will support RDP, VNC, SPICE and others. I've used it to remote into my Windows laptop from my linux desktop.
- BeefWellington 4y agoYep, I just used Remmina earlier today to go cross-continent and it was fine.
- ianai 4y agoOthers 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.
- intelVISA 4y agoHave you considered something like NICE DCV which uses QUIC and is pretty performant?
- technofiend 4y agoFor 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 4y agoIt'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 4y agoI 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) to encode captured frames of the desktop, 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.
- GiorgioG 4y agoNoMachine is ok...if you haven't spent much time in RDP. Windows RDP is so far ahead of anything else out there it puts them all to shame. I use RDP for work all day long and I couldn't find a workable solution that would have a similar experience on Mac/Linux. And these machines are all on the local network!
- wombat-man 4y agoThis was the case 10 years ago too iirc. Windows RDP is excellent. Wish Linux RDP worked as well.
- kaladin-jasnah 4y agoI've found, over NoMachine and even RDP, that Parsec is hands down the best solution that I've encountered because of how low-latency it is. It might not support all the input methods/etc. that RDP does (IIUC RDP has good touchscreen support), but Parsec is faster than everything else.
- rando_comment 4y agoexport 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
- shakna 4y agossh -x does that, _and_ it sets up authentication, making it harder to blow your foot off. No need to reinvent the wheel.
- yakubin 4y agoAnd it kills performance, making you watch redraws, while sshd is maxing out a single core.
- shakna 4y agoThe drawing is local to your machine, so it doesn't have any overhead over exporting $DISPLAY, and several sshd implementations have moved to fully multithreaded, since at least '08. The only performance hit is X11 (no different than normal) and the network - not ssh.
- yakubin 4y agoDoesn't fit with my experience. Moving from using ssh -X to just pointing remote X applications at my local X server without tunnelling it over SSH consistently improves performance for me. Not just in terms of experience, but also no process maxes out a CPU, so the machine has spare compute capacity for other tasks. It's really not an issue of ssh not being multithreaded. That shouldn't happen even on a single core. If sshd divided that workload over my n cores, it would still be very bad.
- weberer 4y agossh -X https://unix.stackexchange.com/questions/566/how-does-ssh-x-function https://unix.stackexchange.com/questions/566/how-does-ssh-x-...
- motohagiography 4y agoWe 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 4y agoVNC 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 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`
- jeroenhd 4y agoUbuntu 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.
- pseudoramble 4y agoWanted to add this also is setup on Fedora workstation 36 and is turned on the same way. It was super easy and works really well. I only use it on a local network now and then though. So I can’t say I’ve hammered on it very hard, but it was exactly what I wanted at the time.
- bpfrh 4y agoLast I checked it didn't work if your cpu is amd or your resolution is wrong
- pseudoramble 4y agoWell I'm not sure about the resolution part. Mine was nothing notable, maybe 1920x1080, but it seemed okay? Maybe there are other problems though. I'm running an AMD CPU and that worked fine. Perhaps it's the built in GPU that causes a problem? The system I connected to has a standalone GPU.
- zoomablemind 4y agoOn Ubuntu I used Remmina client to have a remote desktop of another Ubuntu over ssh tunnel. I did it over local WiFi attached to low-speed DSL and a fiber on the remote end. It's quite usable graphically even with such channel. Of course, running graphically intense programs or remote video would not be practical, but spreadsheets ok.
- Spooky23 4y agoIt’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 4y agoSo, like Parsec?
- 59ca4f8bbb9713c 4y agoVery minor nitpick, but I think you mean h264. x264 is the name of a certain software project used for encoding video into h.264, but it's not a video codec itself.
- AdieuToLogic 4y agoTigerVNC[0] might be of interest in this domain. 0 - https://tigervnc.org/ https://tigervnc.org/
- b112 4y agoYes, along with x11vnc and its scale option. A 4k screen scaled to 1080p, then rescaled on the remote end is very useful.
- unixhero 4y agoX2go is super smooth and fast, yes Linux has a fast remote access protocol, server and client software.
- asadlionpk 4y agoIn the past, I did some optimizations on top of guac (https://guacamole.apache.org/ https://guacamole.apache.org/) and got pretty nice results. I used that 'protocol' to build this: https://allmydesktops.com/ https://allmydesktops.com/
- dan-robertson 4y ago0. RDP is not as simple as sending draw commands. It has eg commands that correspond to scrolling regions of the screen to save on network use, a framerate limit (25fps I think) and allows some colour space reduction to reduce bandwidth too. I think it does a bunch of raster things (eg maybe caching floating windows like right-click menus). I think the windows server implementation can take advantage of information about the composition of the screen from windows. 1. There is some trade off of latency for bandwidth: it may take more time to figure out a small change to send over the network. Looking at api use from eg X may help with old apps that make small updates but more modern apps (or even modern fonts) which just render to gpu buffers and composite are less amenable to this. Very modern apps that use special apis to do lower latency scrolling/resize may be a little better. 3. A lot of the time for Linux the solution is to use ssh and terminal apps as they tend to make smaller updates and require less bandwidth. You can also try mosh to compensate for high latency connections. Text editors can work ok in terminals, especially fancy modern ones with eg mouse support. And for web things you can do set up a socks proxy over ssh which I think can work for a lot of apps which are really just web sites. So this may be part of the reason: fewer people see Remote Desktop as necessary. 4. I’ve had reasonable success with xrdp on the server and a windows client. One needed to select 32-but colour to get a better protocol version and turning off double-buffering in some apps (eg emacs) helped. But that was over a wired high bandwidth low latency connection.
- mike_hock 4y ago3 is the cart before the horse. "Real" terminal apps (i.e. command line utilities) are fine the way they are and you wouldn't use them any differently locally. They don't even need to care if stdout is a tty, and they reap all the benefits from a CLI because you can script them and pipe them into grep/awk/etc... But as soon as we skid into ncurses territory, we're stuck with ANSI terminal codes to make some sort of graphical UI. Those apps don't benefit from being in a terminal (e.g. you can't grep htop output), and there's obviously some desire to make something visually appealing. Using in-band magic escape codes from the 1970s with severely limited functionality for that is just a workaround for the lack of a standard remote desktop protocol that actually works, is reasonably efficient and SSH-friendly. Sure, the fact that you can make ncurses apps feeds back into complacency with the status quo, but that's always true. The enemy of great is good enough. The other alternative is making a web UI, which in principle has the right architecture (run the UI on the client side and only push/pull meaningful data to/from the server), but unfortunately that's tied to HTTP(s), which isn't exactly SSH-friendly. What we'd need is a transport-agnostic version of HTTP that can be given a socket and communicate with the server through that without demanding to know how to open more connections to the server and demanding that those connections be made through AF_INET or AF_INET6 sockets. So again, some server software is implemented as a web UI (like CUPS), but that's a workaround for the lack of something more straightforward that's also a de-facto standard.
- Inhibit 4y agoX2Go here, although it looks like it needs updates for the future to continue. NX (the protocol it uses) had a novel way of only updating pixels that were changed and tunnels through ssh for security. Although if you're curious on the technicals look them up; my knowledge of it's got to be 20 years old at this point.
- philsnow 4y agoI haven't seen anybody mention xpra ( https://xpra.org/ https://xpra.org/ ) yet, but I used to use it daily a while back when I still used linux on my laptop. "Screen for X" really jives with how I wanted to use it (beefy server, ultrabook laptop, fast local network). X2Go is also pretty good IIRC. I used NoMachine at work a few jobs ago, but I didn't like how it required a weird dedicated unix user for itself. I don't know why they needed that (maybe so that they could multiplex multiple users over a single port or something like that?), but I never understood why it didn't just run as my own user. It was fast, I'll give it that.
- Youden 4y agoVery big +1 for Xpra. For anyone unfamiliar, it's similar to ssh -X but with modern compression, so it works well even with reduced bandwidth. If you want, you can also use it to view an entire desktop but I find it much more comfortable to have the windows on the remote computer act as windows on my local computer.
- pmontra 4y agoMany servers create their own user. PostgreSQL creates postgres and gives ownership of configuration and data files to it. It's especially convenient when those server softwares run on real servers or on multiuser machines. Historically single user Unix machines were the exception. They cost too much. Graphical workstations started the trend, then Linux.
- tgflynn 4y agoThis was a solved problem 30 years ago in the Unix and later Linux worlds. Completely remote X based terminals/thin clients were quite common. My impression is that things have mostly regressed since then, probably due to neglect since it's a kind of functionality that not many people seem to be interested in these days.
- znpy 4y agoYes it was but the thing is that the problem to solve then got harder. Think about video streaming, 3d acceleration, sound input and output. Then whereas you previously had only a handful of vendors to coerce into agreement, now you have a multitude of individuals that are going to complain for every change.
- kllrnohj 4y ago> probably due to neglect Kinda yes kinda no? Mostly from X drawing commands being a shit way to represent modern UI's and toolkits. So everyone draws stuff on their own, since it's far more flexible and faster. Same is true on windows. RDP is streaming video far more often than it steams drawing commands. You could maybe build something that streams GPU commands, though. Use something like VirtIO-GPU + GFXSTREAM ( https://www.phoronix.com/news/VirtIO-Context-Type https://www.phoronix.com/news/VirtIO-Context-Type ) to stream to an entirely different computer instead of just to the VM host?
- PaulDavisThe1st 4y ago> Mostly from X drawing commands being a shit way to represent modern UI's and toolkits. This is really fundamentally wrong. X drawing commands are still just fine for representing modern within-app UIs and toolkits. The two things that have changed are the underlying GPU technology, which has shifted towards abstractions and APIs mostly targetting gaming and video, and desktop level UI stuff, which is expected to include compositing these days. However, it's not as if the other remote desktop systems have really changed much to reflect these developments either.
- 4y ago
- urza 4y agoThis is what keeps me on Windows. If there would be Linux RDP client with these capabilities I would switch to Fedora or something. But remote desktop performance on Windows with RDP vs. anything on Linux is not even comparable.
- dudeinhawaii 4y agoRemmina is what you're looking for. I used it daily to RDP into Windows machines from Fedora and the latency/performance/features are actually either on-par or slightly better than Windows Remote Desktop. Prior, I had been using Windows 7/10/11 RDP for decades.
- jlarocco 4y agoI'm not sure VNC is the really the default on Linux, or that there even is a "default" solution. On local networks I've had good luck tunneling X, and it's even worked well running lightweight programs remote over a VPN in a pinch. For "real" remote connections through the internet, x2go has been pretty good. At a previous job I used Remmina (an RDP client) to connect to Windows machines, and X2Go for Linux machines, and they felt about the same to me. It really depends far more on network speed than anything else.
- ta988 4y agoX2go has been unusable for me on macos (M1). Keeps crashing all the time.
- simonblack 4y agoThe capability is there in Linux. I use it myself now and then. With regards to the Mac, MacOS is BSD-based. BSD UNIX has had that capability and the required software for decades. So ... the capability is there. The software 'app' probably isn't. It would probably only need the installation of several packages. MacOS is a downgrade from the underlying BSD UNIX that is its foundation.
- 1R 4y agoIf you have an Nvidia card then gamestream (or quadro experience) works really well, with sunlight and moonlight
- bick_nyers 4y agoMoonlight with an NVIDIA GPU is the best solution imo.
- tobsterius 4y agoParsec performance is impressive. I've had good luck with Splashtop, though I've experienced some lagging at times. There's also Teradici (HP bought them a few months ago) but that can get pretty costly.
- kllrnohj 4y agoChrome Remote Desktop works pretty well and works on all OS's https://remotedesktop.google.com/ https://remotedesktop.google.com/
- bane 4y agoI use this daily for a number of windows machines and it's great. Even the Android client is surprisingly usable.
- dhd415 4y agoMy work issues me a MBP that I can't stand, so finding a way to access it remotely has been a priority. For CLI apps, I SSH into it from a Linux machine, but for GUI apps, I've tried X (most Mac apps are Cocoa and not X-compatible), NoMachine (it was ok), Splashtop (ok speed but glitchy), VNC (slow), and Jump Desktop (https://www.jumpdesktop.com https://www.jumpdesktop.com). I found Jump Desktop to be surprisingly good, roughly on par with RDP. They have a free version, so I'd recommend you try it.
- gregmac 4y agoMy work setup (in my house) has been entirely based on RDP for a few years now, and I have to say it's great. I basically never physically touch my work laptop unless I'm not working from within my actual office. Two of my three monitors run fullscreen RDP to my work laptop. I run Slack and Teams on the other one (on my personal PC) because audio/video over RDP is the one thing that doesn't work well. I can even copy/paste images across. At one point I tried using a dock. It required me to physically switch the cable as well as switch inputs on one monitor (to still connect to my PC's GPU). Though a multi-hundred-dollar KVM could have "solved" this, it was still occasionally glitchy, comparatively slow to switch, and, frankly, just not as convenient. Doing it 100% software is just better. I wish I could get the same experience doing this to a linux or mac system. In my experience, remote macOS over VNC is a punishingly bad experience, while RDP to a system even sitting physically next to the mac (same internet/VPN/LAN connection) is entirely usable.
- supportlocal4h 4y agoThere are plenty of good ones, but you probably fail to recognize the best ones. In fact, the very question suggests that you have a limited world view. You will reject what I say because it doesn't fit into your narrow view. That's not meant as an attack, just an observation of human nature. For example, one "remote desktop" that has become popular lately is called Wireguard. You connect, open the spreadsheet stored on the office network drive and print it to either the printer in the office on to the printer sitting next to you. Many people would say that is sooo much better than RDP. That is not Windows thinking. That is Unix thinking--you know, Mac/Linux. (And BSD and most everybody else in the world) So, to say it differently, Mac/Linux people often solve problems a different way, so they use different tools. Why don't laser printers come with whiteout toner?
- SAI_Peregrinus 4y agoThat solves a different problem. A remote desktop does the CPU-intensive computation on the remote side, not the local side. A tunnel like Wireguard or SSH does the computation on the local side, foz GUI programs that don't run in a terminal. Now, quite a lot can be done from a terminal, but some compute-intensive things are better suited to GUI programs. CAD/CAM, for example.
- supportlocal4h 4y agoWhat part of opening a spreadsheet made you jump into a terminal?
- berkut 4y agoI think there is - if you're willing to pay for it: Parsec's a pretty good cheap solution, and Teradici (HP have taken them over now) is good at the enterprise level.
- octoberfranklin 4y agoThe issue is trust. I don't mind paying for closed source software one bit if I can run it in a sandbox with extremely limited privileges and network access on an opt-in basis. But a remote desktop solution isn't useful that way. By definition, it has to have all the powers that you have. And for that reason, it's one of a very small number of categories of software for which closed source is simply a non-starter.
- nousermane 4y agoSending pixels is not necessarily a show-stopper for a remote desktop that feels "snappy". Case in point - scrcpy, remote "desktop" to access Android from Linux/Mac/PC. Very responsive, including during fancy animations, playing video, games, etc. https://github.com/Genymobile/scrcpy https://github.com/Genymobile/scrcpy
- topspin 4y agoTwo hosts on the same LAN can have excellent performance with VNC. There are some things you need to know and some work you need to do, however. First, the two most common DEs, Gnome and KDE, use X compositing by default. This is very bad for VNC. You want to turn that off. Unfortunately you can't with Gnome, which is sad. You can turn off compositing in KDE, and that's one reason I've preferred KDE for years. Other DEs can also forego compositing. Second, turn off all encryption between the VNC client and server. No SSH-ing, no build-in VNC encryption. Nothing. Ignore the nag warning about the lack of encryption some VNC clients hit you with. Third, no VNC compression. You're on a LAN and you don't need it or the lag it adds. Forth, don't "share" the VNC session with the remote host's desktop. Use the vncserver headless X server. Every "shared" VNC system (where the desktop appears both local and remote) I've encountered is laggy. Fifth, use a fast VNC client. RealVNC's VNC Viewer is excellent. Sixth, do not scale. Ensure your vncserver's resolution matches your VNC's client size exactly. Seventh, tune your DE to remove whatever animations or alpha effects exist. Eighth, no wifi. Ethernet only between VNC server and client. Wifi is awful for this. Ninth, use decent ethernet gear. Some NICs are low end and impose more latency. Likewise, low cost switches are bad news as well. Do these things and your VNC session will be difficult to distinguish from a local DE. If you're using gigabit or faster LAN you'll be able to play video through VNC reasonably well.
- georgyo 4y ago9 requirements, and a low latency high bandwidth link... Compared to RDP which works well across the ocean, is encrypted, compressed, and scalable. I think you just proved that VNC isn't a good replacement for RDP.
- topspin 4y agoI agree. RDP and Windows are light years ahead of Linux here. This is just my take on this for a local LAN environment, and if that's your use case and you follow my guidance you'll be pleased with the result. One benefit of using VNC is the lack of glitches. I've been down every road; nomachine, various commercial and open source X servers, xrdp, all of it. They all have glitches; sizing problems, decoration problems, font problems, keyboard state problems, pointer problems, you name it. VNC (operated as I've described above) doesn't; everything is correct, all of the time.
- oneplane 4y agoIt's somewhat a case of "they almost went there"; around the time that MCX (Managed Client for Mac OS X) and Apple Remote Desktop (the central management tool, not the built-in one) peaked, they also had the option of selecting or starting a new user session over VNC. This was the foundation of concurrent desktop sessions in Mac OS X (now macOS) and was pretty much one step away from Terminal Services style multi-user computing. Right then and there, the choice flipped the other way: instead of taking the management approach to remote computing they made management go the MDM route, and made remote computing more of an application-specific detail; if you need something 'remote', it's probably just data so remote data access could cover that. If you need a piece of software, the idea was that you'd simply run it locally instead of remotely over a stream, and if you need something specific to the remote location (i.e. the network) you'd use a VPN connection. The biggest benefits of terminal-style computing is that you can lock away special software on a server or use computing resources that aren't available locally. That second part was something Apple probably never wanted to have to deal with, either you get the 'big fat expensive machine' for your heavy workload, or you get the Mac mini for your ligher workloads. If you want to have one big machine shared by two people, that wasn't really something they cared about, and you'd just have to buy two of them. This makes sense from their perspective: you buy the machine for a specific task or purpose, and that makes remote computing a bit redundant because you'd have bought the machine that fits your needs. In a way they are right; nearly every device they make can do the same tasks and only heavy resource eaters really need more hardware than a base configuration can deliver. For Linux it's different; you can just install an RDP client and server and do the same thing windows does. The only thing you need to do yourself in such a setup is configure the desktop environment so it doesn't do weird things like wobbly window animations over RDP which don't translate well. Microsoft doesn't write RDP clients or servers for Linux, and only has a client for macOS, so not much of a commercially validated option on Linux. There is NoMachine's NX which essentially does what RDP does, and on Linux you'd also not actually transmit the entire application; most of the window chrome can be handled by the local window manager instead, like with X11 forwarding.
- dominicl 4y agoI've been using https://remotedesktop.google.com/ https://remotedesktop.google.com/ for quite some time now with both Linux and MacOS because it provides the best latencies. Anyone knows what protocols it's using? And is this feature set part of the open source chromium distribution as well?
- siraben 4y agoFrom experience, Parsec is the best instance of remote desktop I've seen. Another one that is pretty solid is RDP for Windows (it feels as if it uses more information than raw pixels from the display, since it seems to render UI elements accurately). For macOS, Apple's Screen Sharing is pretty good, using some video compression and diffs to render the frames rather than vanilla VNC.
- throwaway892238 4y agoRemmina is your best bet. You should also try X2Go (an NX fork).
- pessimizer 4y agoIn Linux's case I think it's partially because RDP/VNC afaik is only really useful for proprietary, locked down software. If I want to do work on remote resources that I can't do over ssh, I'll just download the files and my config, and install the program needed to work with them from my package manager. The only real other uses for it that I can think of would be if I were working with graphics/video with files so large that transferring them would be annoying, or cross-platform access, like working on a remote Windows installation from a Linux machine. But for that, there seem to be multiple programs on Linux that implement RDP well enough for MS itself to recommend them.
- phibz 4y agoI do 99% of my day job on a windows laptop connected to a Linux NoMachine session. It's not perfect but it works really well. There are RDP implementations for Linux both client and server. x11rdp, remotedesktop,, etc.
- binbashthefash 4y agoGnome 42 in Ubuntu 22.04 uses RDP, otherwise use X11vnc and GPU acceleration. https://linuxhint.com/enable-remote-desktop-ubuntu-access-from-windows/ https://linuxhint.com/enable-remote-desktop-ubuntu-access-fr...
- octoberfranklin 4y agoThere is an excellent and ultra high-performance remote desktop server for Linux. It's called xorgxrdp: https://github.com/neutrinolabs/xorgxrdp https://github.com/neutrinolabs/xorgxrdp I love it. It only works with X11, not with Wayland. Wayland refuses to add a protocol command for "blit this image to this surface" (would be ~20 bytes). That is the critical feature your protocol must have in order to get good RDP performance. Windows GDI has it. To get good, responsive RDP you need to be able to send an image across the network once, and then be able to blit it to on-screen surfaces without having to upload the whole image again. Windows GDI has this. X11 has this. That's why they're fast.
- zamadatix 4y agoRDP is very good but it also hits its ceiling extremely quickly. E.g. the RDP client that ships with Windows is limited to 30 FPS, as is the server that ships with Windows with default config. It can also be extremely CPU intensive on 1080p and larger resolutions to the point it becomes another limitations. You can enable hardware accelerated video encoding for RDP but then it's really not any different than something like NxMachine or Parsec except it has a 30 FPS limit.
- password4321 4y agoApple Remote Desktop is the official client for Mac (server is built-in), only $80 with 2 stars after ~275 ratings: https://support.apple.com/guide/remote-desktop/welcome/mac https://support.apple.com/guide/remote-desktop/welcome/mac https://apps.apple.com/us/app/apple-remote-desktop/id409907375 https://apps.apple.com/us/app/apple-remote-desktop/id4099073...
- umvi 4y agoUsually when I'm remoting into systems I don't need a full GUI, I just need access to some resource, for which ssh is great.
- XorNot 4y agoThis comment is interesting to me but for a very different reason: the real magic I find in RDP is that the hand off when going from "local" to "remote" is seamless. On windows, without any pre-setup other then enabling the service, I can logon remotely (and it will lock the screen locally) and resume using all my apps. Then I can come back to that workstation, logon (and it'll kick off the remote session if it's there) and keep using the apps locally - and repeat over and over. And crucially: none of this harms the performance of my local session. I don't have any background daemons or special modes running, I'm not in a "virtual remote session" when working locally. It adapts resolution and screen sizes when I switch to remote consoles. Everything just works really well, whereas the same is not remotely true on Linux. The best in class - x2go (NoMachine variant) can't do this. My local session can't become a resizeable remote session, it just becomes a slow screen grab of it, and doesn't allow me to lock the remote session when I log in, or kick off the remote session when I log back on. If anyone knows how or what can get this experience to Linux, it's IMO not only something I greatly desire - it's vital.
- unnouinceput 4y agoThis is a quest for a remote desktop software that is free and/or included in the OS, yes? Because otherwise, in the land of paid software nothing beats TeamViewer. Not even Windows' RDP does. I use TV daily with clients across oceans and nothing else offers a better remote desktop experience than TV.
- bschwindHN 4y agoFor many setups, we now have enough bandwidth between peers to stream video with low latency and with a "good enough" to "great" quality, at 60 FPS. For most cases you just need a GPU or some hardware video encoder (H264/H265/VP9/AV1, etc.) that can work in real time. It's not the most efficient in terms of bandwidth, of course, but if you have a decent connection to your remote peer it's the most straightforward way to accomplish this on any system. I haven't tried Parsec personally but from their website description and screenshots, it looks like they're taking this approach and I bet it works great.
- glitchc 4y agoAnyDesk exists. It’s cross-platform and works well.
- yewenjie 4y agoI'm surprised that nobody mentioned RustDesk. https://rustdesk.com/ https://rustdesk.com/
- nurettin 4y agoWhat is wrong with x2go?
- emptysongglass 4y agoReemo.io is all browser based with fantastic performance, easily competitive with Parsec without requiring a client side agent as it's all browser accessible. Sound doesn't yet work on macOS (word is coming soon) but I found it otherwise the best in the space. Also supports Linux and Windows.
- tomjen3 4y agoIts a paid product but NoMachine solves this problem fully, including across networks and between different platforms. Accessing a full desktop computer from your ipad is crazy magical the first time you see it.
- bawolff 4y agoSSH is super speedy, and for many linux users remote commandline is all that is needed
- tmikaeld 4y agoIf you don't mind a hosted service that doesn't proxy the stream, then https://getscreen.me/ https://getscreen.me/ is great, you can even watch a movie over the wire performantly. It uses a custom native handshake client and WebRTC for the capture & encryption, in other words, same as Chrome Desktop but simpler to use.
- btax 4y agoI went through a back injury that saw me wanting to use my desktop from bed for extended periods of time. Support for remote desktop _with audio_ seems very lacking. xrdp on Ubuntu sorta works, except that you can't easily drop into an existing session, and it develops horrible audio lag/stutter if too much of the screen changes at once. I've settled on Steam Link for remote desktop on Linux. It still has one big issue for me: the cursor rendered by Steam jumps around weirdly at the edges of windows. I would love to solve that problem. However, apart from that, it flawlessly transmits video and audio in a way that Just Works. I just wish it was packaged as a standalone solution.
- Traubenfuchs 4y agoWhat about TeamViewer? Works very well on Windows.
- coredev_ 4y agoWorks very well on Linux as well.
- berry_sortoro 4y ago
- acd 4y agoYou can use Cendio Thinlinc which uses jpeg turbo over SSH for faster remote VNC expierance. Cendio Thinlinc https://www.cendio.com/thinlinc/what-is-thinlinc https://www.cendio.com/thinlinc/what-is-thinlinc Also you can use game streaming technologies such as Steam remote play over layer2 VPN and hack it to stream your desktop. Since game streaming uses mpeg4 like video compression technology and is built for low latency the lag will be less and video quality good. Steam streaming https://store.steampowered.com/streaming/ https://store.steampowered.com/streaming/ You need a Layer2Vpn to use steam streaming Freelan layer 2 VPN https://www.freelan.org/ https://www.freelan.org/
- veyh 4y ago+1 for ThinLinc. Also, it's free for personal use.
- sgt 4y agoThe answer is basically that in Unix-world (Mac and Linux) we focus a lot more of our attention on the command line. I have mostly remote Linux servers but also a couple of Macs I can remotely ssh into. You use your own computer for UI. The thin client dream is a bit.. 90s.
- indianmouse 4y agoReally interesting conversations here! Thanks community. Is there any free / open source solution for Mac? Parsec is really nice. So is JumpDesktop. But running a closed source is a little jittery because no one knows what it could do and capable of. The workflow does require some security and privacy since it is not like gaming. Sometimes accessing a sensitive file or a document across multiple networks requires the opensource software's trust which can never be provided by any closed source application. Some of the mentioned solutions like RustDesk is really good and it is open source and can be self hosted (it does win on many areas naturally!), but it still lacks the performant part to the likes of Parsec or JumpDesktop or similar high performance RDP solutions. Anydesk is again closed source.
- nineteen999 4y agoWe just use Xrdp. It's not as fast as RDP into a Windows server, but it's still pretty decent for us.
- jcelerier 4y agossh -X works much faster than RDP and VNC here, and doesn't have horrible blurry compression artifacts
- frozenport 4y agoAnyDesk runs great Teamviewer runs great in Wine
- npteljes 4y agoTeamviewer has packages for Linux. Is there any reason to run it in Wine instead? https://www.teamviewer.com/en/download/linux/ https://www.teamviewer.com/en/download/linux/
- frozenport 4y agoIf I recall the Linux package was the Windows exe that shipped with wine.
- npteljes 4y agoI was curious, so I extracted the .deb package, and the TeamViewer executable seems to be an ELF binary. It looks to me that they actually compile for this platform.
- CIA-NIGGER 4y ago
- CIA-NIGGER 4y ago
- rcarmo 4y agoI’ve been using Xrdp (xorgxrdp) on Linux for years and thoroughly recommend it. It is stupendously efficient, and has evolved a lot beyond the ICA-based mapping of Windows primitives (current RDP streams owe more to video streaming than to any direct mapping of graphics calls). It has also become a very efficient protocol on the client side: only last week I set up a dedicated terminal using a 512MB Raspberry Pi 3A (https://taoofmac.com/space/blog/2022/08/14/2030 https://taoofmac.com/space/blog/2022/08/14/2030), and I can stream a Fedora desktop to it at 2560x1080 with audio (i.e., good enough to watch windowed video) and very low latency over Wi-Fi. On the Mac, there is no equivalent because Apple pretty much neglected anything to do with remote displays — Apple Remote Desktop is a variation of the VNC protocol with extra authentication but no real encoding improvements (and designed to manage Macs in classrooms or small businesses over a LAN), so it completely lacks any real ability to work over real-world remote connections. There have been a few attempts at jerry-rigging an RDP proxy on top of the built-in Mac VNC server, but I haven’t seen anything working in years. And NoMachine is just plain useless in most scenarios. (I’ve been using VNC, Citrix and RDP over the past couple of decades and am quite into all the details - I’ve also streamed desktops over H.264 and various multicast setups for electronic signage, so I’ve explored plenty of hacks)
- RantyDave 4y agoThere's an HP Remote Desktop thing that's "free" for HP workstations. I've used it before and it's good but absolutely chews through bandwidth. Surprisingly good over 5G.
- batmanturkey 4y agoLinux has a CLI culture and SSH works just fine. It’s more efficient to use a remote shell than to pipe a constant stream of screenshots at video rates, to say nothing about latencies and mousing. Draw commands would require a uniform windowing solution for all clients. I cannot speak for why Apple doesn’t make such a product.
- yjftsjthsd-h 4y ago> I cannot speak for why Apple doesn’t make such a product. I think they do; there are a lot of comments in this thread about MacOS having some sort of remote desktop built in, which sounds like a tweaked VNC implementation that actually works well when you're just connecting from one Mac to another.
- oaf357 4y agomacOS has Screen Sharing.app that works wonderfully across 8000 miles when screen sharing Mac to Mac. Mac to Windows is easy with RDP. But sharing a screen, Linux to Mac or vice versa... I wish you all the best. It's wild to me too.
- rlkf 4y agoBut there is! With xrdp on the server and xfreerdp on the client, using RFX codec, I can have a remote login across town with 4K resolution through a Wireguard tunnel over a residential DOCSIS broadband.
- hackpert 4y agox2go works quite well actually. Its definitely not like local but it does the job.
- mike_hearn 4y agoYou might want to try https://drovio.com/ https://drovio.com/ - it's not free, but I searched a few years ago for the best screen sharing software and so far never found one that beats it. Key features: 1. Extremely fast and smooth screen sharing. I've used RDP, I've used VNC, I've used Chrome, I've used Apple's screen sharing. None beat it. 2. Multiple mouse cursors! You can see where your co-workers mouse is, and they can click and interact with your desktop just like you do (if allowed of course). So far this has been the best way to do interactive code review sessions and even some pair programming. 3. Smooth animations. I originally started using it (back when it was called USE Together) because I wanted to do a presentation remotely that would show smooth 60fps animations from an app I was working on. It was the only one that could do it. I never used it on Linux however.
- JustinGarrison 4y agoThere’s lots of solutions in this space but they’re not commonly used in non-business settings - Teradici is the best I’ve used (hardware and software options) - HP remote graphics licenses come with some Linux workstations - Amazon NICE DCV is used in AWS Workspaces (disclaimer I work for AWS) - Thinlinc is high performance but no GPU acceleration or audio the last time I used it There are others but those are the ones I’ve used the most and recommend
- Cyder 4y agoAnydesk and nomachine work good for me... windows to linux, linux to linux.