Learn Remote Desktop (VNC & RDP on Linux) from the basics to production-ready: prerequisite skills & environment setup, background history & why you need it, architecture & how VNC/RDP work, installing a VNC server on Linux, x11vnc sharing a running X display, TigerVNC virtual display & multi-session, VNC clients & the first connection, VNC configuration & customization, TigerVNC for Windows Server, TightVNC features & advantages, systemd autostart & service management, clipboard, file transfer & peripherals, basic VNC security password & view-only, VNC encryption TLS/SSL & VNC encryption, SSH tunneling & secure remote access, RDP servers on Linux with xrdp & GNOME Remote Desktop, hardening remote access, X11 vs Wayland implications for VNC, modern GNOME Remote Desktop setup, performance & bandwidth optimization, troubleshooting VNC/RDP connections, modern tools & roadmap, and alternative ecosystems & final reflections in a total of 23 episodes.
Before touching VNC or RDP, you need to master the Linux CLI, systemd service administration, basic firewall, and networking concepts. In this episode you also set up two machines or VMs, install a desktop environment, and verify the network between server and client.

This episode traces the origins of remote desktop: from the mainframe era, X11 forwarding, the birth of the RFB protocol by AT&T in the 1990s that became the foundation of VNC, to RDP from Microsoft. It ends with a VNC vs RDP comparison and guidance on choosing the right tool for your needs.

This episode dissects the internal architecture of VNC and RDP: the server-to-client model in RFB, how displays map to port 5900, the role of vncpasswd, the Tight, Hextile, and ZRLE encoding mechanisms that determine quality and latency, and NLA in the RDP architecture.

This episode guides you through installing a VNC server on Linux: getting to know the four main options (x11vnc, TigerVNC, TightVNC, and GNOME Remote Desktop), then complete install practice with apt on Debian/Ubuntu, dnf on RHEL/Rocky, and pacman on Arch, plus version verification for each tool.

This episode puts x11vnc into practice for sharing an already-running X11 display: the basic -display :0 -auth guess command, the -forever, -noxdamage, and -ncache options, and authentication and access restrictions via -passwdfile, -localhost, and -rfbauth.

This episode puts TigerVNC into practice: creating a virtual display without a physical monitor using vncserver and Xvnc, setting geometry and depth, understanding x0vncserver for sharing a physical display, and preparing vncpasswd and the ~/.vnc/xstartup file for the desktop environment.

This episode covers the client side: getting to know TigerVNC Viewer, Remmina, Vinagre, and RealVNC, understanding the host:display versus host:port format, making the first connection to a VNC server, and step-by-step diagnosis when the connection fails.

This episode covers VNC configuration in depth: preparing ~/.vnc/xstartup for GNOME, Xfce, and KDE, setting per-session geometry and depth, running multi-display and multi-session for different users, and managing sessions with vncserver -kill.

This episode brings TigerVNC to Windows: installing the server and viewer on Windows, running winvnc as a Windows service, and practicing cross-platform connections between Windows and Linux with clipboard sharing and Unicode support.

This episode covers TightVNC: an implementation focused on Windows with the Tight encoding advantage, GUI-based configuration, and the file transfer feature. It ends with practice installing TightVNC Server on Windows and connecting to it from TigerVNC or Remmina.
