π§ Architecture Overview
π· Block Diagram: Access Flow
βοΈ Part 1: Enable SSH on Ubuntu VM
Step 1: Access VM Console (Proxmox GUI)
Step 2: Install OpenSSH Server
Step 3: Verify SSH Service
Step 4: Configure Firewall (UFW)
Step 5: Get VM IP Address
Step 6: Connect from Your PC
β οΈ Proxmox Firewall Check
π₯οΈ Part 2: Enable Remote Desktop (RDP)
πΉ Option 1: GNOME Remote Desktop (Recommended)
Steps:
Open Firewall
πΉ Option 2: xRDP (Alternative)
Install:
β οΈ Important Rule
π§ Part 3: Enable QEMU Guest Agent (VERY IMPORTANT)
Install inside VM:
Enable in Proxmox:
π§ͺ Part 4: Verify Services
Check SSH:
Check RDP:
π οΈ Part 5: Fix Common Issues
β Error: SSH not found
β Error: RDP 0x204
Causes:
β
Fix 1: Disable Wayland
β
Fix 2: Disable GNOME Auth (User Mode)
β
Fix 3: Client Settings
β
Fix 4: Test Connectivity
β Issue: Port Conflict
β Issue: Proxmox Firewall Blocking
β Issue: No GUI Session
π§Ύ Final Checklist
β
SSH Setup
β
RDP Setup
β
Proxmox Integration
β
Network Validation
Pro Tip: Fix RDP Error Code 0x204 (Ubuntu 24.04 on Proxmox)
π§ 1. Fix GNOME Certificate Bug (Most Overlooked Fix)
Steps:
π₯ 2. Check Proxmox Firewall (Very Common Issue)
Steps:
π€ 3. Disable Ubuntu Power Saving
π 4. Relax Network Level Authentication (NLA)
Fix on Client (Windows/Mac):
π 5. Verify Network Reachability
Windows:
Mac/Linux:
β οΈ Bonus Insight
π§ Quick Diagnosis Flow
π― Key Takeaways Running Ubuntu inside Proxmox VE is powerful for homelabs, but accessing it efficiently (SSH + Remote Desktop) is essential. This guide walks you through: β Thatβs normal; just enable it. Best for Ubuntu 24.04 Desktop. Use if GNOME RDP fails. π NEVER run both at the same time Error code 0x204 usually means your RDP client cannot reach the Ubuntu VM over the network.
In Proxmox setups, this is commonly caused by: Ubuntu 24.04 has a known issue with RDP certificates. β
This bypasses certificate validation issues Even if Ubuntu allows RDP, Proxmox may still block it. RDP can fail if the VM βsleepsβ. Strict authentication can break RDP connection. Make sure your machine can actually reach the VM: π If you're connecting to: External IP β You need: This Pro Tip section fits perfectly under your Troubleshooting part and makes your blog much more practical. If you want, I can next: RDP issues in Ubuntu 24.04 are mostly: QEMU Guest Agent is critical for stability Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse
+----------------------+
| Your Laptop/PC |
| (SSH / RDP Client) |
+----------+-----------+ | | Network (LAN / WiFi) |
+----------v-----------+
| Proxmox Host |
| (Hypervisor Layer) |
+----------+-----------+ | | Virtual Network Bridge (vmbr0) |
+----------v-----------+
| Ubuntu 24.04 VM |
|----------------------|
| SSH Server (port 22) |
| RDP Server (3389) |
| UFW Firewall |
| QEMU Guest Agent |
+----------------------+
+----------------------+
| Your Laptop/PC |
| (SSH / RDP Client) |
+----------+-----------+ | | Network (LAN / WiFi) |
+----------v-----------+
| Proxmox Host |
| (Hypervisor Layer) |
+----------+-----------+ | | Virtual Network Bridge (vmbr0) |
+----------v-----------+
| Ubuntu 24.04 VM |
|----------------------|
| SSH Server (port 22) |
| RDP Server (3389) |
| UFW Firewall |
| QEMU Guest Agent |
+----------------------+
+----------------------+
| Your Laptop/PC |
| (SSH / RDP Client) |
+----------+-----------+ | | Network (LAN / WiFi) |
+----------v-----------+
| Proxmox Host |
| (Hypervisor Layer) |
+----------+-----------+ | | Virtual Network Bridge (vmbr0) |
+----------v-----------+
| Ubuntu 24.04 VM |
|----------------------|
| SSH Server (port 22) |
| RDP Server (3389) |
| UFW Firewall |
| QEMU Guest Agent |
+----------------------+
sudo apt update
sudo apt install openssh-server -y
sudo apt update
sudo apt install openssh-server -y
sudo apt update
sudo apt install openssh-server -y
sudo systemctl status ssh
sudo systemctl status ssh
sudo systemctl status ssh
sudo systemctl enable --now ssh
sudo systemctl enable --now ssh
sudo systemctl enable --now ssh
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
firewall not enabled (skipping reload)
firewall not enabled (skipping reload)
firewall not enabled (skipping reload)
ip addr show
ip addr show
ip addr show
ssh username@<vm_ip>
ssh username@<vm_ip>
ssh username@<vm_ip>
Settings β System β Remote Desktop
Settings β System β Remote Desktop
Settings β System β Remote Desktop
sudo ufw allow 3389/tcp
sudo ufw allow 3389/tcp
sudo ufw allow 3389/tcp
sudo apt update
sudo apt install xrdp -y
sudo systemctl enable --now xrdp
sudo adduser xrdp ssl-cert
sudo apt update
sudo apt install xrdp -y
sudo systemctl enable --now xrdp
sudo adduser xrdp ssl-cert
sudo apt update
sudo apt install xrdp -y
sudo systemctl enable --now xrdp
sudo adduser xrdp ssl-cert
sudo ss -tulpn | grep :3389
sudo ss -tulpn | grep :3389
sudo ss -tulpn | grep :3389
sudo apt install qemu-guest-agent -y
sudo systemctl enable --now qemu-guest-agent
sudo apt install qemu-guest-agent -y
sudo systemctl enable --now qemu-guest-agent
sudo apt install qemu-guest-agent -y
sudo systemctl enable --now qemu-guest-agent
systemctl status ssh
systemctl status ssh
systemctl status ssh
ss -tulpn | grep 3389
ss -tulpn | grep 3389
ss -tulpn | grep 3389
gnome-remote-desktop OR xrdp listening
gnome-remote-desktop OR xrdp listening
gnome-remote-desktop OR xrdp listening
ssh.service could not be found
ssh.service could not be found
ssh.service could not be found
sudo apt install openssh-server
sudo apt install openssh-server
sudo apt install openssh-server
sudo nano /etc/gdm3/custom.conf
sudo nano /etc/gdm3/custom.conf
sudo nano /etc/gdm3/custom.conf
WaylandEnable=false
WaylandEnable=false
WaylandEnable=false
sudo systemctl restart gdm3
sudo systemctl restart gdm3
sudo systemctl restart gdm3
grdctl rdp enable
grdctl rdp set-credentials USERNAME PASSWORD
grdctl rdp disable-view-only
systemctl --user restart gnome-remote-desktop
grdctl rdp enable
grdctl rdp set-credentials USERNAME PASSWORD
grdctl rdp disable-view-only
systemctl --user restart gnome-remote-desktop
grdctl rdp enable
grdctl rdp set-credentials USERNAME PASSWORD
grdctl rdp disable-view-only
systemctl --user restart gnome-remote-desktop
nc -zv <vm_ip> 3389
nc -zv <vm_ip> 3389
nc -zv <vm_ip> 3389
Test-NetConnection <vm_ip> -Port 3389
Test-NetConnection <vm_ip> -Port 3389
Test-NetConnection <vm_ip> -Port 3389
sudo apt remove xrdp -y
sudo apt remove xrdp -y
sudo apt remove xrdp -y
use redirection server name:i:0
use redirection server name:i:0
use redirection server name:i:0
use redirection server name:i:1
use redirection server name:i:1
use redirection server name:i:1
Test-NetConnection <vm_ip> -Port 3389
Test-NetConnection <vm_ip> -Port 3389
Test-NetConnection <vm_ip> -Port 3389
nc -zv <vm_ip> 3389
nc -zv <vm_ip> 3389
nc -zv <vm_ip> 3389
RDP Error 0x204 | v
Can you ping VM? | No ---> Network issue / AP isolation | Yes |
Is port 3389 open? | No ---> Firewall (Proxmox/UFW) | Yes |
Certificate / NLA / Wayland issue
RDP Error 0x204 | v
Can you ping VM? | No ---> Network issue / AP isolation | Yes |
Is port 3389 open? | No ---> Firewall (Proxmox/UFW) | Yes |
Certificate / NLA / Wayland issue
RDP Error 0x204 | v
Can you ping VM? | No ---> Network issue / AP isolation | Yes |
Is port 3389 open? | No ---> Firewall (Proxmox/UFW) | Yes |
Certificate / NLA / Wayland issue
Network β Firewall β Service β Client
Network β Firewall β Service β Client
Network β Firewall β Service β Client - β
Enabling SSH access
- β
Enabling Remote Desktop (RDP)
- β
Fixing common issues (like 0x204 error)
- β
Understanding architecture with diagrams
- β
Final checklist - Login to Proxmox
- Select VM β Console - Go to VM β Firewall
- Add rule: Direction: IN
Port: 22
Protocol: TCP
- Direction: IN
- Protocol: TCP - Direction: IN
- Protocol: TCP - β
Remote Desktop
- β Disable "Remote Login" (important!) - Username & Password - Proxmox communication - VM β Options
- Enable QEMU Guest Agent
- FULL shutdown β Start again - Firewall blocked
- Wrong service
- Wayland issue
- NLA mismatch - Disable NLA
- Set Security Layer β RDP
- Allow insecure connection - Protocol: TCP - User must be logged in on console - [ ] OpenSSH installed
- [ ] SSH service running
- [ ] UFW allows port 22
- [ ] Proxmox firewall allows port 22
- [ ] SSH connection works - [ ] GNOME Remote Desktop OR xRDP installed
- [ ] Port 3389 open
- [ ] No service conflict
- [ ] Wayland disabled (if needed)
- [ ] Credentials configured
- [ ] RDP connection works - [ ] QEMU Guest Agent installed
- [ ] Enabled in Proxmox
- [ ] IP visible in dashboard - [ ] VM reachable via ping
- [ ] Ports 22 & 3389 reachable
- [ ] Same subnet / no AP isolation - π Certificate mismatch (GNOME RDP bug in 24.04)
- π₯ Proxmox-level firewall blocking port 3389
- π€ VM power/suspend issues
- π Strict Network Level Authentication (NLA) - Open Microsoft Remote Desktop
- Right-click your Ubuntu connection β Export
- Open the .rdp file in a text editor - Save and re-import - Go to: VM β Firewall β Options
- Check if firewall is Enabled - Go to: Settings β Power
- Set: Screen Blank β Never Automatic Suspend β Off
- Screen Blank β Never
- Automatic Suspend β Off - Screen Blank β Never
- Automatic Suspend β Off - Open RDP settings β Advanced
- Set: βIf server authentication failsβ β
π Connect and donβt warn me
- βIf server authentication failsβ β
π Connect and donβt warn me - βIf server authentication failsβ β
π Connect and donβt warn me - 192.168.x.x β Local network (should work easily)
- External IP β You need: Port forwarding
Router config
Firewall rules
- Port forwarding
- Router config
- Firewall rules - Port forwarding
- Router config
- Firewall rules - Merge this into your full blog cleanly
- Or convert everything into a professional Medium/LinkedIn article format - SSH requires OpenSSH inside VM (not Proxmox-level)
- RDP issues in Ubuntu 24.04 are mostly: Wayland
Service conflicts
Firewall rules
- Service conflicts
- Firewall rules
- QEMU Guest Agent is critical for stability
- Always validate: - Service conflicts
- Firewall rules