12 ms·
FreeRDP: A remote desktop protocol implementation
- mercwear 3y agoAnother good, free option is chrome remote desktop: https://remotedesktop.google.com/ https://remotedesktop.google.com/
- tambourine_man 3y agoIs there a web client that doesn't require backend changes? I know MS has one, but requires things to be installed in the server
- jasonjayr 3y agoGuacamole? https://guacamole.apache.org/ https://guacamole.apache.org/
- rijoja 3y agoI was looking for something like this as well! Thank you very much!
- giancarlostoro 3y agoThe video demo is impressive.
- 0xbadcafebee 3y agoIt works great! I use it for RDP, VNC, and SSH sessions for business users. Can hook it up to LDAP, manage users and groups. If the user's profile only has one connection configured, it automatically dumps them into it when they log in, so there's no learning curve at all, save hotkeys if they want to do something fancy.
- nirav72 3y agoI use KASM. You can setup workspace that RDP's into remote server. In my case, I use it connect to couple of Windows VMs in proxmox. https://kasmweb.com/ https://kasmweb.com/
- l-albertovich 3y agoWow, this is amazing and I hadn't heard about it yet so thanks a lot for sharing it!
- cpach 3y agoDoes it really use RDP?
- greggsy 3y agoThey have web based VNC wrapper. The whole platform is built docker containers. You can skip the whole installation steps and just install their Remmina container from docker hub.
- xz18r 3y agoAwingu https://www.awingu.com/ https://www.awingu.com/
- greggsy 3y agoI went through all the major platforms, and settled with something less enterprise-ey. Windows Remote Desktop Services (RDS) gateway requires a lot of configuration across several services, but the overall experience is pretty good. I used Kasm for a bit, but the integration with AzureAD authentication was flaky. It’s a pretty god platform overall though. Guacamole is mature, but by Jove it’s a fickle thing to configure. Now I just use a Remmina docker container, which is maintained by Kasm. I have a separate container to route a reverse proxy through to CloudFlare, which uses Azure AD for authentication. Now just go to rep.domain.com, login with AAD creds, and i’m presented with a basic remmina jump host where I can log into whatever VM or host. It sounds janky, but it’s much more stable and much leas demanding from the administration side of things. It also works over HTTPS port 443, so it (usually) just works on guest wifi. CloudFlare can also render VNC in the browser, but I didn’t find the experience great, and it just seemed wrong.
- giancarlostoro 3y agoJust curious, how do all the different alternatives compare. I know VNC iirc uses raw screenshots, and some implementations will do their best to only send the differences over the network. How do others compare in approach? I almost always reach for VNC because I'm already familiar with it.
- q3k 3y agoRFB (the protocol used for VNC) implements at its base level rectangle-based updates which can be used to send over just rectangle-bound differences between frames. It's just that some shoddy server implementations send over the entire screen at once without damagerect tracking. There's also plenty of extensions, some proprietary some not, which allow for more advanced compression/optimization: https://en.wikipedia.org/wiki/RFB_protocol#Encoding_types https://en.wikipedia.org/wiki/RFB_protocol#Encoding_types
- Neil44 3y agoWindows RDP is a much better experience than basically everything else, it's not diffing a big jpeg of the screen like almost everything else does it sends more primitives to do more compositing on the client end. If the latency is low you often can't tell you're remote. You can actually work on it all day rather than just for doing odd bits of tech support. Plus it maps printers, audio etc.
- while_true_ 3y ago+1 for Windows RDP. One thing Windows RDP excels at is working over low bandwidth connections. My remote desktop is in a rural area with very poor internet service -- uploads under 1 Mb/sec. With Win RDP I set the "Experience" to "56k Modem" (not joking) and it eliminates eye candy stuff like font smoothing and window animations, which is fine, at least I have a steady connection that works. I've tried other RDP programs and they always say "connection lost" due to insufficient bandwidth.
- mook 3y agoFor VMs, I find RDP to be on par with SPICE (which is more of a qemu/libvirt thing). Both have support for device/drive mapping, I believe. That's both over ssh sessions (I know RDP has encryption, but I'd rather not trust it).
- ahmetsait 3y agoI recently tried to get remote desktop working on my KDE laptop with xrdp. Spent days trying to get it working properly with all the fixes and workarounds I've found online and yet it didn't even come close to how smooth it all works in Windows. In the end, I accepted defeat, depressed about the state of linux desktop even more.
- robertlagrant 3y agoI did it on a Gnome desktop recently and had the opposite experience - it was really simple! There was (of course) one issue regarding profiles, but it was very easy to fix and it auto logs in from my saved credentials in the MacOS Remote Desktop client.
- freedomben 3y agoSame, with Gnome it worked amazingly well for me. I didn't even have to install anything since it's built in to Gnome (under Sharing -> Remote Desktop)
- deleted 3y ago[deleted]
- supertron 3y agoLast time I played with RDP on Linux it really just seemed to be a wrapper around {the equivalent of} a VNC connection - so even when it worked, it was nothing like the streaming experience when RDP'ing into a Windows machine. Not sure if things have improved since, or FreeRDP does things differently. I had a quick glance through the FreeRDP site but didn't spot any immediate clues as to whether this is a true Windows-style optimised/streamed RDP implementation or a "we'll send you a constanst stream of compressed bitmap screenshots" VNC-style... RDP on Windows is one of the few things I really miss from the Windows ecosystem. There is nothing on Mac or Linux that I've seen to date which comes even close to the near-instantanous experience of using a Windows machine over RDP.
- Borg3 3y ago
- tekchip 3y agoI'm surprised to find no mention of RustDesk. https://rustdesk.com/ https://rustdesk.com/ I self host it and it works great everywhere I need it.
- karrot-kake 3y agoThanks for the suggestion. What do you use it for? Is it good for coding? Reading emails? I am in a position where I have to do student work from two computers and I would love to host this on my server and always work using it.
- Semaphor 3y agoJust wanted to mention that I thought their banner was cool, great for non-technical people: > WARNING: YOU MAY BE BEING SCAMMED! > If you are on the phone with someone you DON'T know AND TRUST who has asked you to install RustDesk, do not install and hang up immediately. > They are likely a scammer trying to steal your money or other private information.
- sneak 3y agoIt appears to not be free software; it is only open core.
- FuriouslyAdrift 3y agoThere's also the great MeshCentral https://github.com/Ylianst/MeshCentral https://github.com/Ylianst/MeshCentral
- x3haloed 3y agoI’m glad someone is working on this! We need it.
- hedora 3y agoRDP is definitely the better protocol (cached client side assets, hardware accelerated video compression), but I’ve always had trouble making it work. For Linux, FreeBSD and OpenBSD hosts, and Unix / MacOS clients, I use tigervnc (be sure to also use their client). It’s the fastest vnc implementation I have seen, and reasonably trouble-free. My main complaint is that the MacOS client hasn’t been updated for hidpi mode, so MacOS applies a gaussian blur to the session window. (Screen Sharing is the built in MacOS VNC client. It supports HiDPI, but the session immediately hangs when I use it.)
- npteljes 3y agoJust for funsies, I'll throw in the latest remote desktop that I have tried for Linux, the Sunshine server. It uses the Moonlight protocol, so you can use any NVIDIA GameStream client, like I have used Moonlight from f-droid to stream my PC to my Android phone. Clients exist for Windows and Linux too, and a lot of other platforms as well. Sharing the desktop works out of the box, just download the server, run it, very minimal config to set a password, pair it with a client, and then next time, you just need to run the server and connect with the pre-configured client. It works by converting screen or windows's content to video. It's low latency by design, bandwidth is up to you, and sound also works by default. https://github.com/LizardByte/Sunshine https://github.com/LizardByte/Sunshine https://f-droid.org/packages/com.limelight/ https://f-droid.org/packages/com.limelight/
- eikenberry 3y agoThese sort of client/server game streaming systems are great modern alternatives to something like RDP. They take advantage of hardware accelerated h264 encoding to get fast video/audio transmission with fast input mapping. To me these seem like more modern, simpler alternatives to older remote desktop protocols as they are designed around modern hardware and one of the most demanding use cases, gaming. Seems like an easy win to me. RDP does have more features, but they seem mostly for niche/side things.
- MenhirMike 3y ago> RDP does have more features, but they seem mostly for niche/side things. Being able to copy/paste (including files!) between the host and client is pretty useful though.
- donmcronald 3y agoThis is especially true for Hyper-V VMs without network connectivity. The enhanced session is RDP over a local socket (I think), so copying and pasting files via RDP becomes the best way to move files between your host and VM.
- sandreas 3y agoIf someone is looking for a working RDP config, that can be used without manually logging in at the machine and that works completely remote, I would recommend using xrdp. Problems I ran into: - Black screen after login - Permission issues / strange password prompts - Login does not work if not logged in / having a HDMI connected - Copy & Paste did not work - Shift key led to caps lock /wrong keymapping on Remmina I found the following fixes: Script containing various fixes for different problems: https://www.c-nergy.be/products.html https://www.c-nergy.be/products.html KDE config, that worked for me: https://pilabor.com/blog/2021/05/remote-desktop-with-xrdp-and-kubuntu/ https://pilabor.com/blog/2021/05/remote-desktop-with-xrdp-an... Remmina Shift-Key workaround: https://pilabor.com/blog/2023/09/fixing-remmina-typing-issues-by-remapping-keys/ https://pilabor.com/blog/2023/09/fixing-remmina-typing-issue...
- ckbishop 3y agoBlack screen after login is a GNOME problem, which is caused by trying to remote in as a user that is logged into the desktop already. I solved this by creating an additional user. It was intensely annoying.
- veidr 3y agoIt's not just a GNOME issue; it happens with KDE, and I think basically any common desktop environment (although my own experience over the past several years is mainly with those two). There are workarounds, but they are "not recommended" for reasons I forget. (I don't mean the workaround of creating a separate user; that is the recommended "solution" but it doesn't solve the problem of "I need to log into this user's active session" which is probably about half of the total use cases for remote desktop in general.) The "Permission issues / strange password prompts" is generally polkit (formerly PolicyKit), which annihilates the user experience when coming in over RDP; the famous c-energy script referenced in the parent solves a few of those issues, but not nearly all of them. You should expect errors when you try to adjust display properties, try to use any app that looks at disks/partitions, any app that does anything wrt Wi-Fi or Ethernet settings, any app that deals with VMs in any way, and like 357 other things. Each one can be solved by googling for 1-2 hours and then writing some arcane PolKit config file, but it ends up taking about as much time as designing and building a bear-proof suit of armor from scratch, and then testing it against several live bears.
- StillBored 3y agoAFAIK, FreeRDP is largely what is underneath most of the iOS/Android/etc RDP clients. Largely because rdesktop which preceded it is GPL licensed. Which focused a lot of commercial development to create an alternative, and hence freeRDP. Which also did a better job of not being as tightly integrated with X11 as rdesktop is/was because a lot of the windows GDI API has corresponding X11 functionality, so if the function is an Xored Blit operation, or a hatched pen fill, then rdesktop just offloadeds to X11 and presumably the graphics card rather than being software rendered.
- remram 3y agoIs that only a client? Or is there also a server that can run on Linux?
- aidenn0 3y agoIt includes a server as well, at least for shadowing an x11 desktop.
- jchw 3y agoNote that using FreeRDP (directly or via a client like Remmina) can be a great option for accessing a Windows virtual machine on KVM/libvirt, as it often performs a lot better than SPICE but supports much of the same features (remote audio, USB and serial port forwarding, etc.)
- Rapzid 3y agoWSLg(Windows Subsystem for Linux GUI) uses RDP and FreeRDP to work: https://github.com/microsoft/wslg https://github.com/microsoft/wslg I haven't tried it yet, but I'm hopeful the experience is better than last time I tried Hyper-V enhanced linux experience. I imagine this use case is getting FreeRDP way more attention. For years I've developed in a Linux VM on a Windows host via VirtualBox. The typing lag on this, particularly in IDEs like VSCode and Rider, finally got to me. So, I moved over to WSL and have to say; the experience is amazing. Edit: I should say that I haven't used the WSL GUI functionality yet. Been using VSCode's WSL support and it's been amazingly seamless so far. I get native Windows VSCode performance while my project and all its plugins are actually running in the Hyper-V backed WSL linux VM.
- billy99k 3y agoI just installed kali on WSL2 with GUI support. It's fantastic. Very fast. Much better than Vmware/Virtualbox.
- marmaduke 3y agoWSLg works really well, even for OpenGL 3/4, CUDA, and when connected via RDP as well.
- fb03 3y agoVSCode remote also works equally well via "remote SSH" to your VirtualBox Setup. I still use the virtualbox setup because I feel it has advantages compared to WSL: - I don't need to enable Hyper-V, which hijacks virtualization and disables other softwares (like VirtualBox) from using it. In fact, when you enable WSL/Hyper-V, your windows itself boots as a kind-of-VM from a Hyper-V root, so WSL is just an additional VM inside that cage. - Services run normally, since it's a normal linux box. No need to "service docker start" on every WSL boot. - Easier to image/snapshot/transfer to another box or even another operating system, as VirtualBox runs in other OSes. And you get the same native VSCode experience. Try it out (VSCode+Remote SSH to Vbox), you'll enjoy just the same as VSCode+WSL One tip that I have is: Set a secondary NIC in your VirtualBox VM to a 'host only network' and use 'virtio-net' instead of the default emulated Intel Pro1000 cards. Much better performance since it's essentially a virtual device with unbounded speed. With the virtio-net device, even remote X11 becomes a real possibility with windows apps like VcXsrv. I'm a Pycharm user (and Pycharm unfortunately has meager support for remote, where VSCode shines) and I use it graphically like this -- there's still some input lag tho, but it's quick enough for me.
- debarshri 3y agoIs there a universal remote desktop protocol, that works both for windows and linux?
- dang 3y agoRelated: Use a laptop as a 2nd display on Linux using FreeRDP - https://news.ycombinator.com/item?id=34010970 https://news.ycombinator.com/item?id=34010970 - Dec 2022 (137 comments) FreeRDP 2.0 – A Remote Desktop Protocol implementation - https://news.ycombinator.com/item?id=22834286 https://news.ycombinator.com/item?id=22834286 - April 2020 (122 comments)
- nqzero 3y agoassuming that you have a potentially compromised linux host (or VM) what level of client-side risk are you taking connecting a freeRDP client to that host ? (i'm not worried about the case of the client infecting the host) what is the most secure similar application ? i prefer a linux client, though would be willing to consider windows if there was a client that was significantly more secure
- hddqsb 3y agoI'm also curious about this; I don't know how secure the traditional native clients are (FreeRDP, Vinagre, Remmina, etc.). On the other hand, there are browser-based clients such as Apache Guacamole and noVNC, which are protected by the browser's security sandbox. They require a server component, but that can be run in a sandbox or on the untrusted server. There are some limitations to running in a browser (e.g. some keyboard shortcuts might not be forwarded).
- xp84 3y agoIt would be helpful if it was specified prominently anywhere whether this was a client, a server, or both. I've been looking at the screenshots to try to make an educated guess.
- polski-g 3y agoI use NoMachine for remote desktop across all 3 platforms (the client runs on Android too). Works out of the box with zero configuration needed. Even supports copy/paste.
- rapht 3y agoSame here. Smooth experience.
- anotherevan 3y agoWe've been using X2go for a couple of employees to access their work machines (Windows) from home, but it hasn't been a fun experience. Excessively fiddly to configure and often doesn't work and hard to trouble-shoot. Haven't been able to get new people configured and working. Recently found Mobixterm which allows you to setup RDP running through an SSH tunnel. This looks to be the winner for us. I'll probably still use X2go while it still works for me as I'm running Linux at home, but as soon as it get's too tricky I'm going to replace it with a script that fires up the SSH tunnel and uses Freerdp.
- hales 3y agoAm I the only person here that has found FreeRDP to be really good? I used to use it a lot in my previous job. I never had a compat issue, the distro-packaged version worked fine, performance was perfect, it even had less bugs than the Windows RDP client (like weird tray balloon z-order stuff). Perhaps you are all using some frontend to it and that adds issues? Not sure. I ran it on the commandline. My only serious complaint is lack of printer passthrough. That's it.
- fb03 3y agoHonestly, WSL has got nothing over a VirtualBox VM using a virtio-net network device on it. - Real VM you can snapshot and transfer to another computer running VirtualBox, even on another OS, as VBox supports other operating systems. - With VcXsrv or Xorg on Cygwin, you'll get graphical apps just the same, and with the virtio-net network card on the VM (instead of Virtualbox's default Intel Pro1000 - my protip :D) you'll get enough speed to watch youtube on google chrome -- e.g.: More than sufficient speed for using an IDE like PyCharm etc - With VSCode, you don't even need a X server. Just use "Remote - SSH" and connect to your VM and keep your local lower input lag - Works just the same as "Remote - WSL" as both essentially use the same mechanism - a remote connection to a Linux server. - Services run automatically, as it's just a normal Linux install. No need to 'service docker start' on every WSL run - Doesn't hijacks your Virtualization extensions, like with WSL, which need Hyper-V which actually boots your computer with a Hyper-V hypervisor and blocks nested virtualization, meaning, you can't use other virtualization technologies properly outside of Hyper-V if you use WSL* * Btw, you also get a (small, but non-zero) performance hit on your Windows box by using WSL, even when it is not running, since now Hyper-V is what boots your system as the ring-0 guy. Yes, your Windows install basically becomes a "VM" hosted by Hyper-V. Unpopular opinion: WSL is okay for getting work done quick, but there are better solutions with better tradeoffs in how you handle control of your PC's hardware if you do a good VirtualBox set up imo.
- chaychoong 3y agoOne nice thing about WSL: GPU "passthrough" (via GPU-PV) is handled out-of-the-box. There are some solutions (such as https://github.com/jamesstringerparsec/Easy-GPU-PV https://github.com/jamesstringerparsec/Easy-GPU-PV) that makes the process easy if you are using Hyper-V as the hypervisor, but it is not a straightforward task yet. Hopefully that will change in the future!
- fb03 3y agoI wasn't aware of that, thank you!
- nikau 3y ago> Real VM you can snapshot and transfer to another computer running VirtualBox, even on another OS, as VBox supports other operating systems wsl2 is just a disk image also, you can just shutdown wsl and copy the disk image to another machine.
- at_a_remove 3y agoI discovered something utterly bizarre with vanilla RDP the other week: connecting to a machine with an optical reader which also has a CD in it? More or less renders playback of that CD useless. And will until that machine is rebooted! Apparently, this is by design. Just in case you wanted to remote into some machine and listen to a CD on that machine. What the hell. Anyway, that sent me on a search for a replacement.
- whartung 3y agoAre any of the RDP style systems rootless? That’s one of the things I enjoy about X is simply firing up an app on a remote server and there it is like any other window without all the desktop that I mostly don’t care about.
- intel_brain 3y agoRecently, somebody had asked me to automate the build process of FreeRDP for Windows x64 via GitHub Actions. Spent almost 2 full days making it work. That guy seems to have ghosted me. Anybody wants it? mail: hello [at] amo [dot] fyi
- majkinetor 3y agoWhats wrong with their own night build ? Why not publish a repo with what you have done ?
- intel_brain 3y agoThey have a build on Jenkins, not GitHub Actions.
- majkinetor 3y agoI maintain a chocolatey package for Windows. I currently use their snapshot as a source which is not ideal. I could switch to GH actions. https://github.com/majkinetor/au-packages/tree/master/freerdp.portable https://github.com/majkinetor/au-packages/tree/master/freerd...