If your Remote Desktop Windows to Linux is not working, the most common reasons include: XRDP not installed, the XRDP service not running, firewall ports blocked, wrong desktop environment, or port conflicts with VNC or other services. In more cases, installing XRDP properly & opening port 3389 fixes the issue instantly. Now let’s explore this problem in depth and walk through complete troubleshooting methods to get your Windows-to-Linux remote connection working smoothly.
Understanding How Windows-to-Linux Remote Desktop Works
Windows uses the Remote Desktop Protocol (RDP) by default. However, Linux distributions do not ship with native RDP servers installed. Instead, Linux must use packages like:
- XRDP (most common, supports Windows RDP client)
- Vino (GNOME VNC server)
- TigerVNC (VNC)
- NoMachine
- TeamViewer
- AnyDesk
For RDP specifically, XRDP is the recommended option because it interacts directly with the Windows Remote Desktop Client.
When XRDP is missing, misconfigured, or blocked, Windows cannot connect — leading to the familiar error:
“Remote Desktop can’t connect to the remote computer.”
1. XRDP Is Not Installed – The Most General Reason
If XRDP is not installed, Windows simply has no RDP endpoint to connect to.
Fix
Install XRDP:
Ubuntu / Debian:
sudo apt update sudo apt install xrdp -y
CentOS / RHEL / Fedora:
sudo dnf install xrdp -y sudo systemctl enable --now xrdp
After installation, enable it:
sudo systemctl enable xrdp sudo systemctl start xrdp
Now try connecting again from Windows.
2. XRDP Service Not Running
Even if XRDP is installed, the service may not be running because of system updates, missing dependencies, or crashes.
Fix
Check service status:
systemctl status xrdp
If inactive:
sudo systemctl restart xrdp
If disabled:
sudo systemctl enable xrdp
3. Firewall Blocking Port 3389
RDP uses port 3389, which is blocked by default on most Linux distributions.
Fix
Ubuntu / Debian (ufw):
sudo ufw allow 3389/tcp sudo ufw reload
CentOS / RHEL (firewalld):
sudo firewall-cmd --add-port=3389/tcp --permanent sudo firewall-cmd --reload
Now try the Windows connection again.
4. Using the Wrong Desktop Environment
XRDP works best with lightweight desktop environments such as Xfce.
GNOME and KDE sometimes fail because of compatibility issues.
Fix
Install Xfce (recommended):
sudo apt install xfce4 -y
Then set XRDP to use Xfce:
echo xfce4-session >~/.xsession
Restart XRDP:
sudo systemctl restart xrdp
Now reconnect from Windows — this solves most black-screen issues.
5. Port 3389 Already in Use
If another service (like VNC) is using port 3389, XRDP cannot bind to it.
Check Port Usage
sudo netstat -tulpn | grep 3389
If another service is using it, stop or differentiate the conflicting service.
6. SELinux Blocking XRDP (CentOS/RHEL Issues)
On security-focused distributions, SELinux may prevent XRDP from accessing required resources.
Fix
Enable SELinux compatibility:
sudo dnf install policycoreutils-python-utils -y sudo semanage port -a -t rdp_port_t -p tcp 3389
Restart XRDP:
sudo systemctl restart xrdp
7. Login Loop or Authentication Failures
Sometimes users get redirected back to the login screen repeatedly.
Causes
- Using the same user session twice
- Wayland (Fedora / Ubuntu 22+) conflicts
Fix 1: Disable Wayland (Ubuntu 22+ / Fedora)
Edit:
sudo nano /etc/gdm3/custom.conf
Uncomment:
WaylandEnable=false
Save and reboot.
Fix 2: End Active User Sessions
loginctl terminate-user username
8. Using VNC Instead of RDP by Mistake
If Linux is running a VNC server instead of an RDP server, Windows’ normal RDP client cannot connect.
Fix
To use RDP, ensure XRDP is installed.
To use VNC, install a VNC viewer on Windows:
- RealVNC Viewer
- TightVNC
- TigerVNC Viewer
Use:
<Linux-IP>:5901
9. Windows Settings Blocking Remote Desktop
Sometimes the issue originates from Windows itself.
Fix
Ensure Remote Desktop is enabled in:
Settings → System → Remote Desktop
Also make sure:
- Firewall allows outbound RDP
- You are using the correct IP address
- VPN is not blocking local network connections
10. Linux System Using a Cloud Image Without GUI
Cloud servers (AWS, Azure, VPS providers) often use headless images without desktop environments.
XRDP cannot work without a GUI.
Fix
Install a full desktop environment:
For Ubuntu:
sudo apt install ubuntu-desktop -y
or lightweight:
sudo apt install xfce4 -y
Then reinstall XRDP:
sudo apt install --reinstall xrdp -y
11. Black Screen After Login – The Most Frustrating Error
This happens due to:
- Missing .xsession file
- Wayland
- GNOME instability
- Wrong permissions
Fix
Add:
echo xfce4-session > ~/.xsession
Set proper permissions:
chmod 700 ~ chmod 600 ~/.xsession
Restart XRDP.
Final Tips to Guarantee a Successful Windows-to-Linux RDP Connection
- Install XRDP
- Use Xfce for stability
- Open firewall port 3389
- Disable Wayland if necessary
- Ensure XRDP service is running
- Avoid using the same Linux user session twice
- Check IP, network, and Windows firewall
If you follow all the solutions in this guide, your Windows to Linux Remote Desktop should work flawlessly.
Conclusion
When Remote Desktop from Windows to Linux is not working, the root cause is almost always related to missing XRDP, blocked ports, incorrect desktop environments, or service conflicts. By systematically following the troubleshooting steps in this guide—installing XRDP, enabling Xfce, opening port 3389, disabling Wayland, and fixing login loops—you can restore a fully functional RDP experience.
With the right setup, connecting from Windows to Linux becomes seamless, allowing you to manage servers, workstations, and remote systems with ease.



