RDP on a bandwidth budget

I have limited bandwidth at home: one ADSL connection, shared among several computers, phones, tablets and other devices. Here's the FreeRDP command I use to connect my Linux PC at home to my Windows box at work:

xfreerdp /u:UUU /d:DDD /v:MMM /clipboard /workarea /bpp:8 /dynamic-resolution -wallpaper +fonts -themes +bitmap-cache +glyph-cache +offscreen-cache /rfx /compression /compression-level:2 /codec-cache:rfx /codec-cache:nsc /codec-cache:jpeg -decorations /gfx:RFX /gfx-progressive

Replace – UUU with your username – DDD with your Windows domain name – MMM with the name or IP address of the remote machine

I find that this gives me a display that looks good enough for coding or email, but my session is responsive and doesn't use much bandwidth, even with two 2560x1440 monitors.

In my experience, you don't need much bandwidth to use RDP like this: what you need is low latency (low ping times). You can achieve that by placing a little Linux box between your router and your network, and using Linux's excellent network traffic shaping. (I get excellent results from the Cake sheduler, but you can get really fancy and prioritise some traffic over other traffic if you use another scheduler and configure it carefully enough.)

It's also important to use Pi-Hole, uBlock Origin, Blokada and perhaps other content filters to ensure that your scarce bandwidth is being used for your RDP session and not for creepy surveillance and advertising.