Technical

Proxmox container no internet: diagnose from host to CT

Proxmox container no internet: diagnose from host to CT

Proxmox container no internet? It’s almost never the host itself. Start from the bridge, then the CT config, then DNS — in that order. Here’s the sequence that finds it fast.

Networking cables plugged into a patch panel, showcasing data center connectivity.

Check the bridge on the host

First, is the host itself online? If yes, look at the bridge your CT is attached to. On the Proxmox host, run:

ip link show vmbr0

You want to see state UP. If it’s down, bring it up with ifup vmbr0. Also check that the bridge has an IP if you’re using a routed setup, or that it’s attached to a physical NIC if bridged.

If the bridge is fine, check the CT’s veth interface. List them with:

ip link show | grep veth

If you see the veth but it’s down, that’s a clue. The container might have networking disabled or a bad config.

Look inside the CT

Enter the container:

pct enter 100

Then check its interfaces:

ip addr

Does it have an IP? If not, check the CT config on the host:

cat /etc/pve/lxc/100.conf

Look for lines like net0: name=eth0,bridge=vmbr0,ip=dhcp. If it’s set to a static IP, make sure the gateway and subnet are right. A typo here is the most common cause.

System with various wires managing access to centralized resource of server in data center

DNS is the silent killer

If the CT has an IP but no internet, it’s probably DNS. Test with ping 8.8.8.8. If that works but ping google.com doesn’t, fix the DNS. On Debian-based CTs, edit /etc/resolv.conf and add a nameserver like nameserver 1.1.1.1. On Proxmox, you can also set DNS in the CT config with nameserver option.

This is annoying I know, but it’s almost always one of these three. And if you’re stuck on UID mapping issues with unprivileged containers, that’s a whole other rabbit hole — see how to handle unprivileged containers and large UIDs/GIDs.

If nothing works

Reboot the container. If that doesn’t fix it, restart the networking stack on the host with systemctl restart networking. Sometimes the bridge gets into a weird state after a host reboot.

Still no luck? Check the Proxmox firewall. If it’s enabled on the CT or the host, it might be blocking traffic. Disable it temporarily to test:

pct set 100 -firewall 0

And on the host, check /etc/pve/firewall/cluster.fw for any rules that might block.

That’s the whole flow. Start from the host, work inward, and don’t skip DNS. It’s usually something dumb.

Leave a comment

Comments are reviewed before they appear. Your email is never published.