Skip to content

How to Configure the Proxmox Network Bridge vmbr0

Understand and configure vmbr0, the Proxmox Linux bridge: how it works, editing /etc/network/interfaces, attaching VMs, adding a second bridge, and fixing no-internet issues.

SDSysadmin Desk June 22, 2026 8 min read
Diagram-style cover showing a physical NIC connected to the vmbr0 Linux bridge, with several VMs plugged into the bridge like a virtual switch

Every Proxmox install ends up with an interface called vmbr0, and every new user eventually has to understand it. It’s the reason your VMs can talk to the network — or the reason they can’t, when something’s misconfigured. Getting comfortable with it removes most Proxmox networking headaches.

This guide explains what vmbr0 actually is, how the config file works, how to attach VMs to it, how to add a second bridge for isolated or NAT networks, and the handful of mistakes that leave VMs with no internet. The examples target Proxmox VE 8.x, which uses ifupdown2 so you can apply network changes without rebooting.

What vmbr0 actually is

vmbr0 is a Linux bridge, and the cleanest way to picture it is a network switch that lives inside your server. A physical switch has ports; you plug devices in and they all share the same network. A Linux bridge does the same thing in software.

Here’s how the pieces connect on a default install:

  • Your physical NIC (something like enp3s0 or eno1) is plugged into the bridge as a bridge port. It’s the uplink — the cable to the outside world.
  • vmbr0 is the bridge itself. The host’s management IP usually sits here.
  • Each VM gets a virtual network card that’s also plugged into vmbr0.

Because everything shares the bridge, your VMs appear on the physical network as if they were separate machines plugged into your real switch. They get IPs from the same DHCP server (or you set static ones), and they’re reachable from other devices on the LAN.

Reading /etc/network/interfaces

Proxmox stores its network config in /etc/network/interfaces, plain text in Debian’s ifupdown format. A standard single-NIC install looks like this:

auto lo
iface lo inet loopback

iface enp3s0 inet manual

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.50/24
    gateway 192.168.1.1
    bridge-ports enp3s0
    bridge-stp off
    bridge-fd 0

Read it line by line and the design is clear:

What each line does

iface enp3s0 inet manual The physical NIC. manual means no IP — it's just a bridge member.
auto vmbr0 Bring the bridge up automatically at boot.
address 192.168.1.50/24 The host's management IP and subnet, on the bridge.
gateway 192.168.1.1 Default route — your router/firewall.
bridge-ports enp3s0 Which physical NIC is the bridge's uplink. This is the link to the real network.
bridge-stp off Spanning Tree Protocol off — fine for a simple single-uplink setup.
bridge-fd 0 Forwarding delay zero, so ports start passing traffic immediately.

The bridge-ports line is the one people get wrong. It names the physical NIC that connects the bridge to your real network. If it’s blank or points at the wrong interface, the bridge exists but has no way out, and every VM on it goes dark.

Attaching a VM to the bridge

When you create or edit a VM, its network device points at a bridge. In the VM’s Hardware → Network Device, the Bridge dropdown is where you choose vmbr0.

That’s usually all it takes. The VM gets a virtual NIC on the bridge, behaves like a physical machine on your LAN, and pulls an IP from DHCP or uses a static one you set inside the guest.

If your network uses VLANs, set the VLAN Tag on the VM’s network device and make sure vmbr0 is created VLAN-aware (a checkbox on the bridge in the GUI, or bridge-vlan-aware yes in the config). A VLAN-aware bridge tags the VM’s traffic so it lands on the right VLAN without needing a separate bridge per VLAN.

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.50/24
    gateway 192.168.1.1
    bridge-ports enp3s0
    bridge-stp off
    bridge-fd 0
    bridge-vlan-aware yes
    bridge-vids 2-4094

Adding a second bridge

One bridge covers most setups, but a second is useful when you want an isolated network — say a DMZ, a lab segment, or an internal-only network where VMs talk to each other but not the LAN.

If you have a second physical NIC, bridge it the same way as the first:

auto vmbr1
iface vmbr1 inet manual
    bridge-ports enp4s0
    bridge-stp off
    bridge-fd 0

Notice there’s no address line here — this bridge is just for VMs, so the host doesn’t need an IP on it. Assign VMs to vmbr1 exactly as you did with vmbr0.

For an internal-only bridge with no physical uplink (VMs can reach each other and the host, but not the outside world unless you set up routing), leave bridge-ports empty:

auto vmbr1
iface vmbr1 inet manual
    bridge-ports none
    bridge-stp off
    bridge-fd 0

To give that internal network internet access, you’d put an IP on the host side of vmbr1 and add NAT rules with iptables or nftables — a routed setup that’s the standard answer when the host only has Wi-Fi or a single public IP.

Applying changes without a reboot

After editing the config, apply it. On Proxmox VE 7 and later (which use ifupdown2), you don’t need to reboot:

# apply all interface changes from /etc/network/interfaces
ifreload -a

If you made the change in the GUI, click Apply Configuration on the Network page instead. To check the result:

# list interfaces and their addresses
ip a

# show which ports belong to which bridge
brctl show 2>/dev/null || bridge link

Why VMs end up with no internet

This is the problem that brings most people to this page. When a Proxmox VM can’t reach the network, it’s almost always one of these, roughly in order of how often they happen:

Common 'VM has no internet' causes

VM on the wrong bridge The VM's network device points at the wrong vmbr, or none. Check Hardware > Network Device.
Bridge has no uplink bridge-ports is empty or names the wrong NIC, so the bridge can't reach the LAN.
Wrong gateway/DNS in guest The bridge is fine but the guest OS has a bad default gateway or no DNS server set.
IP on the NIC, not the bridge An address left on the physical NIC while it's bridged breaks routing.
Bridged a Wi-Fi adapter Linux bridges don't work over Wi-Fi. The bridge comes up but never passes traffic.
VLAN mismatch VM has a VLAN tag the switch/bridge isn't configured to carry.

Work through it from the outside in. First confirm the host itself has internet (ping 1.1.1.1 from the Proxmox shell). If the host is fine but the VM isn’t, the problem is between the VM and the bridge: check which bridge the VM is on, then check the network settings inside the guest OS.

Quick no-internet checklist

  • Host can reach the internet (ping 1.1.1.1 from the Proxmox shell)
  • VM's network device is attached to the correct bridge
  • bridge-ports names a real, connected wired NIC
  • No IP address sits on the physical NIC itself
  • Guest OS has a correct gateway and DNS server
  • You are not trying to bridge a Wi-Fi adapter

Putting it together

vmbr0 is just a virtual switch: a physical NIC as the uplink, the host’s IP on the bridge, and VMs plugged in alongside it. Once that model clicks, the config file reads naturally and most “no internet” problems become a quick checklist instead of a mystery.

If you’re setting up a host from scratch, the bare-metal install guide shows where vmbr0 first gets created, and the Proxmox VE vs VMware ESXi comparison covers how the platform fits overall. For more, browse the Proxmox guides.

Frequently asked questions

What is vmbr0 in Proxmox?

vmbr0 is the default Linux bridge the Proxmox installer creates. It acts like a virtual network switch inside the host: your physical network card plugs into it, and your VMs plug into it too, so they all share the same physical network. The host's own management IP usually lives on vmbr0 as well.

Should the IP address be on the physical NIC or on vmbr0?

On vmbr0. When you bridge a NIC, the physical interface (like enp3s0) should have no IP and just be listed as a bridge port. The IP, gateway, and netmask belong on the vmbr0 interface. Putting an address on the raw NIC while it's bridged is a common cause of lost connectivity.

Why do my Proxmox VMs have no internet?

The usual causes are: the VM isn't attached to the right bridge, the bridge has no working uplink (wrong bridge-ports), the gateway or DNS inside the guest is wrong, or you bridged a Wi-Fi adapter, which Linux bridges don't support. Check the VM's network device, then the bridge config in /etc/network/interfaces.

Can I bridge a Wi-Fi adapter in Proxmox?

Not directly. Linux bridges work with wired Ethernet, not wireless adapters, because of how 802.11 handles MAC addresses. If you only have Wi-Fi, you need routed/NAT networking instead of a plain bridge. For any real Proxmox host, use a wired connection.

How do I add a second bridge in Proxmox?

Define a new bridge such as vmbr1 in /etc/network/interfaces (or via Datacenter > Node > System > Network in the GUI), give it bridge-ports for a second NIC or leave it internal-only, then reload the network. Assign VMs to vmbr1 the same way you assign them to vmbr0.

Do I need to restart Proxmox after changing the network?

No full reboot needed. On Proxmox VE 7 and later, applying changes in the GUI or running 'ifreload -a' activates them. A reboot also works. Just be careful editing the bridge that holds your management IP remotely — a mistake can lock you out until you reach the console.

Sources & further reading

Official vendor documentation referenced while writing this guide.

SD

Sysadmin Desk

Infrastructure & Cloud

Hands-on guidance for infrastructure, virtualization, and containers — Hyper-V, VMware, Docker, and the day-to-day operations work that keeps environments running.

MCSA Guru provides independent, educational IT guidance. Microsoft, Windows, Windows Server, Microsoft 365, Exchange, and Microsoft Teams are trademarks of Microsoft Corporation; Docker is a trademark of Docker, Inc. MCSA Guru is not affiliated with or endorsed by Microsoft or Docker. Always test changes in a safe environment before applying them in production.

Related guides

Fixing something right now?

Jump straight into the guide library or search for the exact error or task you are dealing with.