
Learn how to install and configure XRDP on Ubuntu 24.04 LTS to enable secure remote desktop access from Windows, macOS, or Linux. Step‑by‑step setup with
Learn how to run Linux GUI applications remotely over SSH using X11 forwarding or Waypipe. Includes setup steps, CLI examples, performance tips, security advice, and comparison charts for choosing the right method.
Running graphical Linux applications on a remote server and displaying them on your local machine can be transformative for development, system administration, and secure workflows. Whether you want to launch Firefox on a server, use a remote GIMP instance, or manage a graphical database tool, SSH-based remote GUI forwarding is a powerful capability.
Two leading methods dominate the landscape:
|
|
This guide explains both in depth—how they work, how to set them up securely, and when to use one over the other. It includes practical examples, performance tips, security considerations, and a comparison chart to help you choose the right tool.
Remote GUI access offers several practical benefits:
|
|
|
|
|
These capabilities make SSH GUI forwarding ideal for developers, data scientists, administrators, and anyone working with remote Linux hosts.
▶️ X11 Forwarding |
X11 forwarding allows remote programs to render windows on your local machine using the X Window System. It is widely supported and works even when your local system runs Xwayland.
How it works:
|
|
|
▶️ Waypipe Forwarding |
Waypipe is a Wayland-specific tool that mirrors Wayland protocol traffic over SSH. Instead of legacy X11 drawing commands, it transmits high-level Wayland messages and buffer updates.
Why Waypipe exists:
|
|
|
Before configuring either method, ensure the following:
|
|
|
|
|
|
▶️ Step 1: Install Required Packages |
sudo apt update
sudo apt install xauth x11-apps
On Fedora/RHEL:
sudo dnf install xauth xorg-x11-apps
▶️ Step 2: Enable X11 Forwarding on the Server |
Open /etc/ssh/sshd_config:
sudo vim /etc/ssh/sshd_config
Ensure these lines are present and uncommented:
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
Restart SSH:
sudo systemctl restart sshd
▶️ Step 3: Connect with X11 Forwarding Enabled |
On your local machine:
ssh -X username@remote-host
For untrusted forwarding (more restrictive):
ssh -x username@remote-host
For trusted forwarding (full access—use with caution):
ssh -Y username@remote-host
▶️ Step 4: Test with a GUI Application |
xeyes &
Or
gedit &
If the application appears locally, X11 forwarding is working.
Photo by admingeek from Infotechys
As more distributions adopt Wayland by default, X11 forwarding becomes dependent on Xwayland compatibility layers. Waypipe offers a more future-proof approach.
▶️ Step 1: Install Waypipe |
On Debian/Ubuntu:
sudo apt install waypipe
On Fedora:
sudo dnf install waypipe
On Arch:
sudo pacman -S waypipe
▶️ Step 2: Confirm Wayland is Active (Local Machine) |
echo $WAYLAND_DISPLAY
If output isn’t empty, you’re on Wayland.
▶️ Step 3: Connect Using Waypipe |
To forward a single application:
waypipe ssh username@remote-host gedit
To open a full remote Wayland session:
waypipe ssh username@remote-host
Then launch apps as usual.
Photo by admingeek from Infotechys
🔄 Enabling Compression |
Waypipe supports multiple compression algorithms. Example using LZ4:
waypipe -c lz4 ssh username@remote-host gnome-calculator
The following comparison chart outlines typical differences:
| Feature / Behavior | X11 Forwarding | Waypipe |
|---|---|---|
| Protocol style | Legacy X11 drawing commands | Wayland protocol stream |
| Best for | Older apps, X11 desktops | Modern Wayland apps |
| Performance on high latency | Often poor | Usually better |
| Compression support | Built into SSH | Built into Waypipe |
| Transparency effects | Full support | Dependent on compositor |
| Setup complexity | Very simple | Moderate |
| Security | Lower-level access; trusted mode risky | Sandboxed protocol; more modern |
Remote GUI forwarding is secure when configured correctly, but there are important caveats:
🟢 X11 Security Notes |
|
|
|
|
🟢 Waypipe Security Notes |
|
|
|
🟢 Firewall Considerations |
Both methods work over SSH only—no extra TCP ports needed.
🟢 “X11 forwarding request failed” |
|
|
|
🟢 “Cannot open display” |
Verify the DISPLAY variable on the remote host:
echo $DISPLAY
If empty, X11 forwarding is not active.
🟢 Waypipe windows do not appear |
|
|
|
WAYLAND_DISPLAY=wayland-0 waypipe ssh user@host gnome-terminal
🟢 Poor performance |
Try SSH compression:
ssh -C -X username@remote-host
Or Waypipe’s compression:
waypipe -c zstd ssh username@remote-host app
Whether using X11 or Waypipe, several optimizations can dramatically improve usability.
🟢 Reduce Rendering Load |
For X11:
ssh -C -X username@remote-host
For Waypipe:
waypipe -c lz4 -t ssh username@remote-host app
🟢 Use Lower-Resource Themes |
Install lightweight themes for GTK or Qt.
🟢 Disable Animations |
For GNOME:
gsettings set org.gnome.desktop.interface enable-animations false
🟢 Prefer Applications That Are Not Graphically Intensive |
Terminal-based tools may be easier for slow connections.
Use X11 forwarding when:
|
|
|
|
Typical X11-friendly apps include:
|
|
|
|
Use Waypipe when:
|
|
|
|
🔔NOTE: Waypipe will increasingly be the default choice as the Linux ecosystem standardizes around Wayland. |
🟢 Forward a Single App Window (Waypipe) |
waypipe ssh dev@server code
🟢 Forward an Entire Desktop Session (X11) |
ssh -X server
gnome-session &
Although this works, it’s not ideal—Wayland or full remote-desktop protocols perform better for full sessions.
🟢 Forward Audio Alongside GUI |
SSH does not support audio forwarding directly, but you can combine Pulseaudio or PipeWire tools. PulseAudio example:
ssh -R 4713:localhost:4713 user@server
Then adjust PULSE_SERVER on the server.
🟢 Forward an Entire Desktop Session (X11) |
|
|
|
|
|
Running GUI applications remotely over SSH allows you to harness the resources of remote servers without leaving your local desktop environment. Whether you choose X11 forwarding for its simplicity and compatibility or Waypipe for its modern Wayland support and improved efficiency, both methods offer secure, flexible, and powerful workflows. As Linux increasingly moves toward Wayland, Waypipe is poised to become the go-to solution for remote GUI forwarding. Still, X11 remains profoundly universal and reliable.
By understanding both options—how they work, how to configure them, and when to use each—you can create a remote setup that fits your workstyle, network conditions, and security requirements.
Did you find this article helpful? Your feedback is invaluable to us! Feel free to share this post with those who may benefit, and let us know your thoughts in the comments section below.

Learn how to install and configure XRDP on Ubuntu 24.04 LTS to enable secure remote desktop access from Windows, macOS, or Linux. Step‑by‑step setup with

Discover the major differences between Wayland and Xorg Server in this comprehensive guide. Learn about their architecture, performance, security, compatibility, and more to make an

This article examines how to install NICE DCV on CentOS9 and it’s written to accommodate a virtual instance without an NVIDIA graphics card installed. Table
