This episode puts GNOME Remote Desktop into practice: enabling RDP and VNC with grdctl, setting passwords, enabling view-only mode, and configuration via GNOME Settings plus preparation for a headless single-user RDP session.

Episode 17 introduced GNOME Remote Desktop as the bridge to the Wayland world. Episode 18 puts it into practice: you'll enable RDP and VNC, set passwords, restrict access to view-only mode, and configure everything both via the grdctl command-line tool and the GNOME Settings GUI.
GNOME Remote Desktop (package gnome-remote-desktop, tool grdctl) is a modern solution that runs natively in the GNOME compositor. Because it shares the running session — rather than creating a new session like xrdp — understanding the single-user model and headless session requirements is very important.
grdctl is the command-line interface for GNOME Remote Desktop. Make sure the service is installed and check its status:
grdctl statusThe grdctl status output shows the status of RDP and VNC, the ports used, and the view-only mode. If the command isn't found, install the package:
sudo apt install gnome-remote-desktopEvery command below can be explored with --help:
grdctl --help
grdctl rdp --helpRDP is enabled with a single command:
grdctl rdp enableTo turn it off, simply flip the keyword:
grdctl rdp disableBy default RDP runs on port 3389. The port can be changed as needed, and for TLS security a certificate can be set:
grdctl rdp set-port 3390
grdctl rdp set-tls-cert /path/ke/sertifikat.pemThe grdctl rdp set-port 3390 command moves the RDP service to a non-default port — one of the hardening practices from episode 16.
Now test from another machine with an RDP client:
xfreerdp /v:192.168.1.20:3390 /u:armanAfter authentication, the running GNOME session is displayed. Because this shares the active session, what you see is exactly the same screen the user in front of the machine sees.
GNOME Remote Desktop also provides a VNC backend. Set the password first:
grdctl vnc enable
grdctl vnc set-passwordgrdctl vnc set-password will ask for the password interactively. To restrict connections to viewing the screen only:
grdctl vnc enable-view-onlyIf you want to allow control again later, disable the mode:
grdctl vnc disable-view-onlyInfo
View-only mode is useful for presentation or monitoring sessions: other users can see the screen, but can't send input. This is equivalent to the -viewpasswd feature you met in episode 12.
All of the settings above are also available through the GUI. Open GNOME Settings, go to Sharing, then choose Remote Desktop. There you can:
Settings -> Sharing -> Remote Desktop -> on / off + passwordChanges made through the GUI are immediately reflected in grdctl status — both edit the same configuration.
Keep this in mind from the start: GNOME Remote Desktop shares the running session, not creating a new session like xrdp. This means it's single-user — there's only one desktop session being shared, and remote access displays that session.
For a headless server that you still want to access via GNOME Remote Desktop, make sure a GNOME session is actually running without a physical monitor. The key step:
sudo loginctl enable-linger armanThe sudo loginctl enable-linger arman command lets user arman have a session that persists even without a console login. This way the GNOME session keeps running and can be accessed remotely at any time. Also make sure the session runs on Wayland (not Xorg) so all native RDP features work:
loginctl list-sessionsThe loginctl list-sessions output shows the active sessions along with their type (Wayland or X11). For GNOME Remote Desktop, a Wayland session provides the most complete RDP experience.
Episode 18 practiced GNOME Remote Desktop end to end: checking status with grdctl status, enabling RDP and VNC along with passwords, view-only mode, configuration via GNOME Settings, and preparing a headless session with loginctl enable-linger.
Key takeaways:
grdctl is the command-line interface for GNOME Remote Desktop.grdctl rdp enable enables RDP; the port and certificate can be set.grdctl vnc enable then a password with set-password.enable-view-only restricts connections to viewing the screen.In the next episode, episode 19, we tune performance: performance and bandwidth optimization — choosing Tight versus Hextile encoding, setting JPEG quality and color depth, latency tuning, distinguishing LAN and WAN strategies, and caching with -ncache. See you there!