Proxmox VE / Troubleshooting

Proxmox LXC Container Has No Internet: Diagnose Bridge, Gateway and Firewall

Separate container addressing, bridge attachment, gateway reachability, firewall scope, and upstream path when a running Proxmox LXC container cannot reach the external network.

A container that starts is not yet a container with working networking. Proxmox containers share the host kernel and are set up from the host for network, DNS, and storage, which means the container address, the bridge attachment, and the host path are separate observations that must each be confirmed.[1]

A Linux bridge interface, commonly vmbr0, acts as a virtual switch connecting guests to the physical network, and the default installation connects vmbr0 to the first Ethernet card. Bridged, routed, and masquerading setups are different designs: confirm which design this container is supposed to use before changing anything, and prefer the GUI for configuration changes because it protects against errors.[2]

Containers can use the same Proxmox VE firewall as virtual machines, and firewall policy exists at more than one level. A packet that leaves the container can therefore be stopped at the container, node, or datacenter scope even when addressing and the bridge look correct, so each scope must be inspected separately.[1][4]

Sections

Applicability

Products
Proxmox VE
Scope
For a Proxmox VE LXC container that starts and stays running but cannot reach the required external network or Internet, while the Proxmox host itself retains management networking. The container is expected to use a Linux bridge (commonly vmbr0) toward the LAN. This page does not cover containers that fail to start, host-wide network loss after an upgrade, QEMU/KVM VM networking, SDN or OVS redesign, bond redesign, or fresh-install networking.[1][2][3]
Last verified

Symptoms

  • The LXC container starts and remains running, but external destinations are unreachable from inside the container. The container may or may not have an address, and the LAN or host may or may not respond; each of these is a different observation.[1][2]
  • The Proxmox host itself retains management networking while the container has no external path. Host-wide loss after an upgrade belongs to the upgrade diagnosis, not this page.[3][2]

Quick diagnosis

Confirm the container runs first. A present address never proves the path is healthy.

Read-only

Confirm this page applies before diagnosing

Confirm the guest is an LXC container (not a QEMU/KVM VM), that it starts and stays running, and that the host retains management networking. If the container does not start, if the host itself is offline, or if the guest is a VM, stop and use the matching diagnosis instead.[1][3]

Read-only

Record the container address and expected design

Record the container network settings as configured (interface, address and prefix, gateway, DNS, bridge) and compare them with the intended design: bridged, routed, or masquerading. An address shown in configuration is a configured value, not proof that the interface is up or that traffic passes.[1][2]

Read-only

Capture current links, addresses, routes, and bridge state

Capture current links, addresses, routes, and bridge ports with display-only commands from the host and, where available, the container. Presence of an address never proves the gateway is reachable, and a bridge showing UP never proves external traffic passes; record observations without drawing conclusions yet.[5][6]

ip link show
ip addr show
ip route show
bridge link show

Interactive troubleshooter

Your answers stay in this browser tab. The tool does not connect to your systems or send diagnostic results.

Guided check / step 1

Is the LXC container running?

A container that does not stay running never reaches network-path diagnosis.[1]

Read the complete diagnostic tree without using the controls
  1. Is the LXC container running?

    A container that does not stay running never reaches network-path diagnosis.[1]

    • Yes, it runs but has no external pathDoes the container have a live address?
    • No, it does not stay runningThis is a container lifecycle problem, not a network path
    • I have not checkedCheck the container running state
  2. Check the container running state

    Record whether the container starts and stays running before any network observation.[1]

  3. What did the running-state check show?

    Only a running container continues on this page.[1]

    • It runs but has no external pathDoes the container have a live address?
    • It does not stay runningThis is a container lifecycle problem, not a network path
  4. This is a container lifecycle problem, not a network path

    A container that does not stay running needs lifecycle diagnosis (template, storage, resources, task log), not bridge or gateway checks. Preserve the state and log output and use the matching workflow.[1]

  5. Does the container have a live address?

    Compare container network settings with live address state. A present address continues to reachability checks; it never by itself declares the network healthy.[1][5]

    • Yes, an address is presentCan the container reach the LAN or host side?
    • No, no address is presentResolve address assignment before path checks
    • I have not checkedCompare configured and live addressing
  6. Compare configured and live addressing

    Record the configured container network settings and the live address state side by side.[1][5]

  7. What did the address comparison show?

    A configured address that is absent at runtime is an assignment gap, not an upstream outage.[1]

    • An address is presentCan the container reach the LAN or host side?
    • No address is presentResolve address assignment before path checks
  8. Resolve address assignment before path checks

    Without a live container address, gateway and external tests cannot localize the fault. Investigate container network settings and address assignment first; do not change bridge, firewall, or upstream configuration yet.[1]

  9. Can the container reach the LAN or host side?

    Test LAN-side reachability before external destinations. LAN success narrows the fault toward gateway, firewall, or upstream layers.[2]

    • Yes, LAN respondsDoes the intended gateway respond?
    • No, nothing local respondsStay in the container and bridge layers
    • I have not tested itRun the LAN reachability check
  10. Run the LAN reachability check

    Test a LAN-side destination from the container context and record which side was actually tested.[2]

  11. What did the LAN check show?

    Total local failure stays with addressing, bridge attachment, or host path.[2]

    • LAN respondsDoes the intended gateway respond?
    • Nothing local respondsStay in the container and bridge layers
  12. Stay in the container and bridge layers

    Check container addressing, bridge attachment, and host bridge state before gateway, firewall, or upstream changes. An untested external destination cannot explain a local failure.[2][6]

  13. Does the intended gateway respond?

    Confirm the gateway this container design intends. A responding gateway makes a fully broken local path less likely but never proves firewall or upstream behavior.[2]

    • Yes, the gateway respondsWhich network design does this container intend?
    • No, the gateway does not respondDistinguish design, bridge, and host path
    • I have not tested itTest the intended gateway
  14. Test the intended gateway

    Test the intended gateway from the container context using the design's expected interface.[2]

  15. What did the gateway test show?

    An unresponsive gateway keeps the investigation at design, bridge, or host-path layers.[2]

    • The gateway respondsWhich network design does this container intend?
    • The gateway does not respondDistinguish design, bridge, and host path
  16. Distinguish design, bridge, and host path

    Confirm the intended gateway for this bridged, routed, or masquerading design, then compare bridge attachment and host path state. Do not change firewall or upstream configuration before the gateway layer is classified.[2]

  17. Which network design does this container intend?

    Bridged, routed, and masquerading are different designs with different bridge expectations. The official routed and masquerading examples intentionally use a bridge with no physical member, so an absent member alone is never a fault there. Establish the intended design before any bridge verdict.[2]

    • Bridged, with an expected physical memberFor this bridged design, is the container on the expected path?
    • RoutedRouted design needs routing evidence, not a bridge member
    • Masquerading (NAT)Masquerading design needs forwarding evidence, not a bridge member
    • I do not know yetDetermine the intended design before any change
  18. Routed design needs routing evidence, not a bridge member

    For a routed design, a bridge with no physical member may be intentional and does not by itself establish a bridge failure. Continue into routing and forwarding design checks supported by the official documentation, and do not apply the bridged attachment fix. Record the documented design before any change.[2]

  19. Masquerading design needs forwarding evidence, not a bridge member

    For a masquerading design, a private bridge with no physical member may be intentional and does not by itself establish a bridge failure. Host forwarding and NAT belong to the documented design only where it requires them; do not invent route or NAT parameters and do not apply the bridged attachment fix. Record the documented design before any change.[2]

  20. Determine the intended design before any change

    Without a confirmed intended design, no bridge verdict and no network change is possible. Record the current container configuration and determine whether the design is bridged, routed, or masquerading first; do not guess whether a physical member should exist.[2]

  21. For this bridged design, is the container on the expected path?

    This branch applies only because the intended design is bridged with an expected physical member. Compare the configured bridge against live bridge port state. A configured bridge entry never proves the datapath forwards.[2][6]

    • Yes, attached to the expected bridgeWhat fails with addressing, gateway, and bridge confirmed?
    • No, wrong bridge or missing memberBridged discrepancy confirmed — use the bounded procedure
    • I have not checkedCompare configured bridge with live ports
  22. Compare configured bridge with live ports

    Record the configured container bridge and the live bridge ports and physical membership.[2][6]

  23. What did the bridge comparison show?

    A present configuration entry is not a working datapath.[2]

    • Attached to the expected bridgeWhat fails with addressing, gateway, and bridge confirmed?
    • Wrong bridge or missing memberBridged discrepancy confirmed — use the bounded procedure
  24. Bridged discrepancy confirmed — use the bounded procedure

    For this confirmed bridged design, the comparison shows the container is not on the expected bridge path with its expected member. Preserve the current configuration exactly as recorded. Apply only the bounded bridged network-change procedure in Next actions, and only with console or independent recovery access; host-wide bridge changes are out of scope here. Routed and masquerading designs never reach this outcome for an absent member alone.[2]

  25. What fails with addressing, gateway, and bridge confirmed?

    With container, gateway, and bridge layers confirmed, separate firewall scope from upstream behavior. A responding gateway never proves firewall or upstream correctness.[4][2]

    • Names fail or policy denies the pathInspect firewall scope and resolution separately
    • Comparable external IPs fail with no policy denial foundContinue at the upstream and design layer
    • I cannot tell yetRecord each layer before a change
  26. Inspect firewall scope and resolution separately

    Inspect Proxmox VE firewall state at container, node, and datacenter scope, and separate a failing hostname from a failing comparable IP connection. Do not disable the firewall as a test; request a scoped correction with the exact scope, rule, and direction.[4][1]

  27. Continue at the upstream and design layer

    With local path, gateway, bridge, and firewall scope confirmed, continue at outbound and upstream design: the intended bridged, routed, or masquerading model, the upstream router, and NAT where the design requires it. Do not convert designs as a probe.[2]

  28. Record each layer before a change

    Record container state, addressing, LAN result, gateway result, bridge comparison, and firewall scope. An unclassified layer is unknown, not a confirmed cause, and no change should precede classification.[2]

Detailed diagnosis

Read-only

1. Establish that the container runs

A container that fails to start is a lifecycle problem, not a network-path problem. Confirm the running state first; only a running container continues on this page.[1]

Read-only

2. Separate configured addressing from live addressing

Compare the configured container network settings with the live address state. A configured address that is absent at runtime narrows the investigation to container startup and address assignment; a present address continues to reachability checks and never by itself declares the network healthy.[1][5]

ip addr show
Safe / low risk

3. Test LAN reachability before external destinations

Test whether the container can reach the local LAN or host side before testing external destinations. LAN reachability narrows the fault toward gateway, firewall, or upstream layers; total local failure stays with addressing, bridge attachment, or host path.[2][5]

Safe / low risk

4. Confirm the intended gateway responds

Confirm the intended gateway for this container design responds from the container context. A responding gateway makes a completely broken local path less likely but never proves the Internet path or firewall behavior is correct.[2]

Read-only

5. For a confirmed bridged design, verify bridge and member

For a confirmed bridged design, verify the container interface is attached to the expected Linux bridge and that the bridge has the expected physical member and state. Routed and masquerading designs may intentionally use a bridge with no physical member, so an absent member alone is never a fault there. A bridge entry in configuration never proves the datapath forwards; compare the configured bridge against live bridge port state.[2][6]

bridge link show
Read-only

6. Inspect firewall scope before upstream

Inspect Proxmox VE firewall state at container, node, and datacenter scope for this container and bridge. Containers share the host firewall framework with VMs, so a rule at any scope can stop container traffic while addressing and bridge state look correct. Do not disable the firewall as a test.[1][4]

Supported scenarios

These observations narrow the next investigation; they do not establish a unique cause.

The container does not stay running

A container that fails to start never reaches network diagnosis. Lifecycle, template, storage, or resource faults precede any path observation.[1]

How to check: Confirm the running state and recent task log before any network check.[1]

The container has no live address

Configured network settings without a live address indicate an assignment or startup gap rather than an upstream outage. The configured design and the live state must be compared explicitly.[1][5]

How to check: Compare container network settings against live address output.[1][5]

Local LAN reachability fails

Failure to reach the LAN or host side keeps the investigation at addressing, bridge attachment, or host path layers. External destinations cannot localize the fault while local reachability is unestablished.[2]

How to check: Test LAN-side reachability from the container before testing external destinations.[2]

The intended gateway does not respond

An unresponsive intended gateway is consistent with a wrong gateway design, a bridge or member fault, or host-path policy, and each must be distinguished. Bridged, routed, and masquerading designs use the gateway differently.[2]

How to check: Confirm which gateway this container design intends and whether it responds from the container context.[2]

The container is not on the expected bridged path

For a bridged design that is documented to use a physical member, a container attached to the wrong bridge, a missing expected member, or a down bridge device breaks that intended path. Routed and masquerading designs may intentionally use a bridge with no physical member, so an absent member alone establishes nothing there. Configuration entries alone do not establish that the datapath forwards.[2][6]

How to check: For a bridged design, compare the configured bridge against live bridge port state and physical membership. For routed or masquerading designs, compare against the documented design instead of assuming a member should exist.[2][6]

Firewall policy stops the container path

Proxmox VE firewall policy at container, node, or datacenter scope can stop container traffic while addressing, gateway, and bridge observations look correct. Each scope is an independent prerequisite.[1][4]

How to check: Inspect firewall state and rules at each scope for this container before changing policy.[4]

Local path works but external destinations fail

Working LAN and gateway observations with failing external destinations narrow the investigation to name resolution, outbound policy, or the upstream router and NAT design. A responding gateway never proves external forwarding.[2]

How to check: Separate a failing hostname from a failing comparable IP connection, then check outbound policy and the upstream design.[2]

Next actions and procedure boundaries

Potentially disruptive

Attach the container to the verified bridge

Before changing anything

Risk
Changing the container network attachment can remove the container external path and, if host bridge configuration is touched, can affect every guest on the host.[2]
Safer check
First confirm the intended bridged design and the exact container interface, and ensure console or independent recovery access exists before changing anything.[1][2]
Expected result
The container interface shows the intended address on the verified bridge, live bridge ports include the container interface, and the previously failing reachability check from the same context succeeds without changing other guests.[5][6][2]
Backup / recovery access
Record the full current container network settings, including interface, address and prefix, gateway, DNS, and bridge, before the change.[1]
Rollback
If connectivity worsens, restore the exact recorded container network settings and re-verify; do not alter host-wide bridge configuration as rollback.[1][2]

Use this procedure only after the diagnostic tree confirms intended design = bridged with a known expected bridge and the actual container attachment differs. After confirming the intended bridged design and recording the current container network settings, change only the confirmed container interface to the verified bridge with the intended address, gateway, and DNS, using the GUI where possible. Do not change host-wide bridge configuration without separate evidence. Re-verify live bridge port state afterward; configuration alone is not confirmation.[1][2]

Read-only

Request a scoped firewall correction

If firewall state confirms a denial for this container at a specific scope, record the exact scope, rule, and direction and provide those observations to the firewall owner. Request review of only the required container, direction, and service. This is a planning handoff, not an instruction to disable the firewall, and never a blanket allow rule.[4]

Read-only

Escalate a design mismatch with evidence

When observations show the container design does not match the site design (bridged versus routed versus masquerading, wrong gateway, or wrong upstream), keep the container configuration intact, record configured versus live state, bridge membership, gateway behavior, and firewall scope, and escalate to the network owner. Do not convert one design into another as a probe.[2][1]

Warnings and boundaries

Do not disable the Proxmox VE firewall or replace policy with a broad allow rule as a generic test. Inspect container, node, and datacenter scope first.[4]
Do not apply or reload host networking, edit /etc/network/interfaces blindly, delete vmbr0, or reboot the host as a first response to one container losing external access. Host changes affect every guest.[2]
Do not convert a bridged container to routed or masquerading (or the reverse) as a probe. Each design has different gateway and upstream requirements.[2]
A gateway that responds is a single observation. Do not treat it as proof that firewall policy or the upstream path is correct.[2]

Sources

Links were reviewed on 2026-09-10. Reachability and automated validation do not replace editorial verification of each claim.

  1. Proxmox Container Toolkit
    Proxmox Server Solutions · Tier A · accessed 2026-09-10
  2. Network Configuration
    Proxmox Server Solutions · Tier A · accessed 2026-09-10
  3. Host System Administration
    Proxmox Server Solutions · Tier A · accessed 2026-09-05
  4. Proxmox VE Firewall
    Proxmox Server Solutions · Tier A · accessed 2026-09-05
  5. ip(8) in Debian Trixie
    Debian project · Tier A · accessed 2026-09-08
  6. bridge(8) in Debian Trixie
    Debian project · Tier A · accessed 2026-09-08

Still troubleshooting?