macOS RDP mystery: FreeRDP connects to some servers but not others
I've been losing my mind over this for months.
The setup: we manage hundreds of VMs on Azure. I connect from macOS using RoyalTSX - a connection manager built on FreeRDP, because Microsoft's Windows App (Previously "Remote Desktop") has genuinely terrible UX when you're managing lots of machines.
The problem: some servers connected fine in RoyalTSX. Others just hung forever. Same credentials, same configuration pattern, same Windows Server on the other end. But Microsoft's Windows App? Connected to every single one without issues.
The rabbit hole
I spent hours comparing server configurations side by side - working vs broken. TLS, NLA, certificates, IIS bindings, patch levels. Everything was identical. Every difference I found turned out to be a red herring.
The answer
It wasn't a server-side issue at all.
Our company uses a corporate VPN client that routes certain traffic through a secure tunnel. Under the hood, it does this by configuring a local proxy on macOS - but as a user you don't see or manage this. Some of our servers are only reachable through this tunnel.
Microsoft's Windows App respects these system-level network settings automatically. Traffic goes through the tunnel. Connection works.
RoyalTSX (FreeRDP) ignores them entirely. It opens a direct TCP connection. If the server is reachable directly - it works. If it requires the tunnel - timeout.
That's it. That's the whole mystery.
The fix
In RoyalTSX: connection properties -> Proxy Settings -> set HTTP proxy to the localhost address and port your VPN client listens on. One setting. Months of frustration.
TLDR
FreeRDP on macOS does not use system proxy settings. The symptom - "some servers work, others don't, Microsoft's client works on all" - looks like a server-side issue but isn't.
If you're using any FreeRDP-based client (RoyalTSX, Devolutions Remote Desktop Manager, etc.) on a machine with a corporate proxy like Zscaler, Palo Alto GlobalProtect, or similar - and some RDP connections fail while Microsoft's client works - configure the proxy manually in your RDP client's connection settings.
Published on