Proxmox GUI not opening but CLI does? That’s pveproxy or pvedaemon most of the time. Could be a cert issue or firewall blocking port 8006. Here’s the order I’d check things, from the shell.

Is pveproxy even running?
The GUI is served by pveproxy. If it’s dead, no web page. Check status and try restarting:
systemctl status pveproxy
systemctl restart pveproxy
Also check pvedaemon, the backend daemon. Sometimes it’s up but wedged:
systemctl status pvedaemon
systemctl restart pvedaemon
And look at the logs right after a restart. They’ll tell you if it’s a cert or binding issue:
journalctl -u pveproxy -n 50
journalctl -u pvedaemon -n 50
Certificates
If pveproxy is running but the page won’t load, check the certs. Proxmox uses self-signed certs in /etc/pve/local/pve-ssl.pem and pve-ssl.key. If they’re expired or have wrong permissions, the GUI dies. Regenerate them:
pvecm updatecerts --force
systemctl restart pveproxy
I’ve seen cert ownership issues break pveproxy too. Make sure the files are owned by root:www-data and not world-readable.

Firewall
If the GUI works from the host itself but not from your workstation, it’s the firewall. Proxmox’s own firewall can block port 8006. Check with:
iptables -L -n | grep 8006
Or disable the firewall temporarily to test:
pve-firewall stop
Don’t forget your router or cloud security group. Port 8006 needs to be open for TCP.
What if it’s still down?
Check if the web service is listening:
ss -tlnp | grep 8006
Nothing there? pveproxy isn’t binding. Look for errors in the journal. Could be a bad hostname in /etc/hosts or a full disk. Also check pve-cluster service—if it’s not running, the whole web stack can fail.
If you’re still stuck, the fast GUI fix post has a few more tricks, like checking the browser cache or trying a different browser.