Troubleshooting

Proxmox Web Interface Not Working: Diagnosis and Fixes

Troubleshoot Proxmox VE web interface issues including pveproxy failures, port 8006 problems, certificate errors, firewall blocks, and browser console debugging.

ProxmoxR app icon

Managing Proxmox? Try ProxmoxR

Monitor and control your VMs & containers from your phone.

Try Free

The Proxmox VE web interface is your primary management tool, and losing access to it can be stressful — especially if you are not comfortable with the command line. The good news is that the web UI issues almost always come down to a handful of causes: the pveproxy service, port 8006 connectivity, SSL certificates, or firewall rules. This guide walks through each one systematically.

Step 1: Verify You Can Reach the Host

Before troubleshooting the web interface, confirm basic network connectivity to the Proxmox node. From another machine on the same network:

# Ping the Proxmox host
ping -c 4 192.168.1.100

# Check if port 8006 is open
nc -zv 192.168.1.100 8006

# Or using curl (expect a certificate warning, that's normal)
curl -k https://192.168.1.100:8006

If ping works but port 8006 is unreachable, the issue is either the pveproxy service or a firewall rule. If ping also fails, you have a network-level problem to solve first.

Step 2: Check the pveproxy Service

The web interface is served by the pveproxy daemon. SSH into your Proxmox node (or use a local console) and check its status:

# Check if pveproxy is running
systemctl status pveproxy

# Look for errors in the logs
journalctl -u pveproxy --no-pager -n 50

# Restart the service
systemctl restart pveproxy

# If restart fails, check which port it's trying to bind
ss -tlnp | grep 8006

Common pveproxy failures include another process occupying port 8006, or corrupt SSL certificate files that prevent the daemon from starting.

Step 3: Check SSL Certificates

Proxmox uses self-signed SSL certificates by default, stored in /etc/pve/. If these files are missing or corrupted, pveproxy cannot start.

# Verify certificate files exist
ls -la /etc/pve/local/pve-ssl.pem
ls -la /etc/pve/local/pve-ssl.key
ls -la /etc/pve/pve-root-ca.pem

# Check certificate validity
openssl x509 -in /etc/pve/local/pve-ssl.pem -noout -dates

# Regenerate certificates if needed
pvecm updatecerts --force

# Restart pveproxy after regenerating
systemctl restart pveproxy

If your certificates have expired, pvecm updatecerts --force will regenerate them. After regeneration, you may need to clear your browser cache or accept the new certificate.

Step 4: Check the Proxmox Firewall

Proxmox has its own firewall layer that is separate from iptables/nftables rules. If you enabled the Proxmox firewall without allowing port 8006, you have locked yourself out.

# Check if the Proxmox firewall is enabled
cat /etc/pve/firewall/cluster.fw | grep enable

# Check the node-level firewall
cat /etc/pve/nodes/$(hostname)/host.fw

# List active iptables rules
iptables -L -n | grep 8006

# If the firewall is blocking 8006, add a rule
# Edit /etc/pve/firewall/cluster.fw and add:
# [RULES]
# IN ACCEPT -p tcp -dport 8006 -log nolog

If you accidentally locked yourself out with the Proxmox firewall, you can disable it from the command line:

# Emergency: disable the Proxmox firewall entirely
pve-firewall stop

# Or set enable to 0 in the cluster firewall config
sed -i 's/enable: 1/enable: 0/' /etc/pve/firewall/cluster.fw

Step 5: Browser-Side Issues

Sometimes the Proxmox host is fine but the browser is the problem. Common browser-side issues include:

  • Cached old certificate — Clear browser cache or try an incognito/private window
  • HSTS conflict — If you previously used a custom certificate, the browser may refuse the self-signed cert. Clear HSTS settings for the domain.
  • JavaScript errors — Open the browser developer console (F12) and check for errors. A failed JavaScript load can leave the UI blank.
  • Proxy or VPN interference — Corporate proxies sometimes block WebSocket connections that the noVNC console depends on
# Test the API directly to rule out browser issues
curl -k -s https://192.168.1.100:8006/api2/json/version | python3 -m json.tool

# Expected output:
# {
#     "data": {
#         "version": "8.x.x",
#         "release": "x",
#         ...
#     }
# }

If the API responds but the web UI is blank, the issue is purely client-side — try a different browser.

Step 6: Check System Resources

A Proxmox node that is severely resource-starved may not be able to serve the web UI:

# Check available memory
free -h

# Check disk space (pveproxy needs /tmp and /var)
df -h / /tmp /var

# Check system load
uptime

# Check if OOM killer hit pveproxy
dmesg | grep -i "out of memory"

Quick Recovery Checklist

  1. SSH in or use local console — confirm you have host access
  2. Run systemctl restart pveproxy — fixes most transient issues
  3. Check ss -tlnp | grep 8006 — confirm the port is listening
  4. Check firewall — both Proxmox firewall and host-level iptables
  5. Regenerate certs with pvecm updatecerts --force if needed
  6. Try a different browser or incognito window

For ongoing peace of mind, consider using ProxmoxR as a mobile management interface. When the web UI goes down, having an alternative way to check node status and restart services from your phone can save critical time during an outage.

Take Proxmox management mobile

All the features discussed in this guide — accessible from your phone with ProxmoxR. Real-time monitoring, power control, firewall management, and more.

ProxmoxR

Manage Proxmox from your phone

Monitor, control, and manage your clusters on the go.

Free 7-day trial · No credit card required