Free to locally connect, paid for service for remote access, but not painfully priced, that will let you connect to remote RPi’s via the desktop without needing to configure the local router to allow incoming connections.
https://www.realvnc.com/en/raspberrypi/
Setup on the RPi
RealVNC Server is included with Raspberry Pi OS (formerly Raspbian).
Start > Preferences > Raspberry Pi Configuration > Interfaces > VNC = On
You should then get the RealVNC server icon in your bar next to the Bluetooth bar. On the RPi sign into your RealVNC account, then select “Licencing” to add the RPi to the account for remote access
RPi5 special note – see below
Running on devices without a keyboard and mouse connected
You will need to install another entropy generator such as haveged, which you can install by running this command:
sudo apt install haveged
Running on devices with no monitor connected
You need to set a resolution that the RPi will use when there is no monitor connected:
sudo raspi-config
Display options > VNC resolution
RPi5 issue late 2023
There’s an issue with RealVNC support for the default Raspberry Pi OS currently, to be resolved mid 2024 – details here.
You must be running the 64bit OS (shown on the startup splash screen).
First ensure that VNC is turned off in Start > Preferences > Raspberry Pi Configuration > Interfaces
On the command line run
sudo raspi-config
Advanced Options > Wayland > Select X11 instead of the default Bookworm.
After your RPi reboots you will now be able to turn on VNC and see RealVNC run/appear.