Category Archives: x86_64 / amd64

Intel- / AMD-based CPUs (64-bit)

RustDesk plus Tailscale

RustDesk in combination with Tailscale/Headscale offers a near-perfect and completely free Remote Access solution for homelab enthusiasts.

This is so far the best tool I’ve found to remotely connect to ARM-based Linux desktops (e.g. Oracle Free Tier Ampère Instances with up to 4vCores and 24GB RAM or any of Apple’s M1/M2/M3/M4/… systems). For Intel-/AMD-based Linux desktops, however, I still prefer Cendio’s ThinLinc (on high resolution displays with the following workaround). For a matrix of client/server matches that worked best for me, see: overview of my favourite RDP client<->server combinations.

In combination with Tailscale (and if self-hosting is preferred/important Headscale) it offers secure and easy GUI access to computer and virtualised desktops in a homelab (plus cloud) setup:

No server is needed for direct peer-to-peer connections (e.g. with tailscale full domain names or with internal IPs in homelab):


NB: Don’t forget to enable 2-Factor-Authentication.

Related external posts/reviews/tutorials:

Remote Desktop Access – Overview of my favourite client-server combinations 2025

The following combinations have worked best for me:

Remote
 Desktops
Windows DesktopMac DesktopLinux Desktop Intel-/AMD-basedLinux Desktop
ARM64 / aarch64
Clients
Windows ClientWindows RDP (builtin)RustDeskThinLinc*RustDesk
Mac ClientWindows AppRustDeskThinLinc*RustDesk
Linux ClientRustDeskRustDeskThinLinc*RustDesk
iOS/iPad ClientWindows AppRustDeskRustDeskRustDesk
Android Client
(untested)
Remote Desktop AppRustDeskRustDeskRustDesk

* on high-resolution/Retina displays: use this workaround

If you’d like to enable external access to resources in your homelab or in your cloud environment, please don’t forget to choose a reasonably secure setup:

Crisp Cendio Thinlinc sessions on high resolution displays (e.g. 4K)

For month I’ve been trying to get this to work and I finally found a solution, which is a lot easier than I initially thought it would be.

Problem: If you want to connect remotely to a Linux desktop (running ThinLinc server) via ThinLinc* client, it has often been impossible to get the remote desktop working at the native resolution of a 4K display (3840×2160). In my case the highest possible resolution to choose from in the remote systems’ display settings was 1920×1080, resulting in a blurred linux desktop. While ThinLinc still offered a superior remote desktop experience to all tools tested, the blurred display kept bugging me. My aim was to get the sharpest and most responsive Cendio ThinLinc sessions on high-resolution displays possible.

NB. The following workaround also helped me solve display resolution problems with other remote desktop clients (e.g. NoMachine, VNC variants).

[Update 19/02/2025]: The best alternative to ThinLinc for connections to ARM-based linux and macOS remote desktops (e.g. RasperyPI, Oracle Free Tier Ampère Instances, Apple’s M1/M2/M3/M4) is RustDesk, which is available for all platforms and allows peer-to-peer connections (ip<->ip) without the need for a server if used in small homelab situations. Unfortunately, thinlinc server is only available for Intel-/AMD-based systems.

RustDesk does offer superior handling of display resolutions, however, for remote desktops on Intel-/AMD-based platforms thinlinc is by far the best solution for connections to Linux desktops. In these cases, I prefer to use the following workaround (also see overview of my favourite RDP client<->server combinations)


Solution on Windows 11 and macOS with 4K external display and Mac retina display

(might also work on other high-resolution displays)


Step 1 – Set display scaling of the display(s) you want to use for your remote connection to 100% prior to initiating the remote connection

On Windows:

Right-click on Windows-Desktop and choose: “Display settings”. Scroll down to scaling and make sure that your system does not use “custom scaling”. Choose 100% from the drop-down menu. Alternatively, you can navigate to Windows Settings > System > Display settings to find the same menu.

(Screenshots are from a German version of Windows 11)

NB: If you are using more than one display, make sure to adjust scaling to 100% on all screens you intend to use for your remote connection. Also make sure that there is no “custom scaling” enabled.


On macOS:

On macOS, display scaling can be set under: System Preferences/Displays:

Choose the setting labelled “More Space” for native retina display’s resolution.

NB: If you are using more than one display, make sure to adjust scaling to 100% on all screens you intend to use for your remote connection.


Step 2 – Now, start thinlinc client and connect to your remote linux desktop:

(Don’t be discouraged by the tiny icons and font size, you can switch back to your normal scaling as soon as your thinlinc session is over.)


Step 3 – On the remote system, you now have the opportunity to choose your native display resolution and adjust scaling to a more convenient factor:

Related external posts:

Configure Cendio ThinLinc Server on Pop_OS!

In order to run ThinLinc Server on Pop_OS! An additional profile needs to be created

$ sudo nano /opt/thinlinc/etc/conf.d/profiles.hconf
default=pop
order=unity ubuntu gnome gnome-classic kde xfce cinnamon mate lxde pop  <-------
[... rest of file ...]
[/profiles/pop]
xdg_session=pop
name=Pop
description=The Pop_OS Gnome desktop environment
screenshot=
cmdline=
testcmd=
description_from_testcmd=false

For details see: