Proxmox Network Not Working: Complete Troubleshooting Guide
Diagnose and fix Proxmox VE networking issues including bridge configuration, firewall problems, DHCP failures, DNS resolution, MTU mismatches, and packet capture debugging.
Networking issues in Proxmox VE can manifest in many ways: VMs with no connectivity, the host itself losing network access, or intermittent packet loss that is difficult to pin down. Because Proxmox uses Linux bridges, VLANs, and bonds under the hood, understanding the networking stack is essential for effective troubleshooting. This guide covers the most common causes and how to resolve them.
Step 1: Check the Bridge and Physical Links
Proxmox VMs connect to the network through Linux bridges (typically vmbr0). Start by verifying the bridge is up and the physical interface is attached:
# Show all bridges and their member ports
brctl show
# Check the status of all network interfaces
ip link show
# Verify vmbr0 has an IP address (for the host)
ip addr show vmbr0
# Check if the physical interface is linked
ethtool eno1 | grep "Link detected"
# View the current network configuration
cat /etc/network/interfaces
A healthy output shows vmbr0 with the physical NIC (e.g., eno1 or enp3s0) as a member port, both in state UP, and an IP address assigned to vmbr0.
Step 2: Verify the Network Configuration File
Proxmox manages networking through /etc/network/interfaces. A misconfigured file is the most common cause of network issues after changes:
# A correct basic configuration looks like:
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
Common mistakes include: putting the IP address on the physical interface instead of the bridge, typos in the interface name, missing bridge-ports, or a wrong subnet mask.
# Apply network changes without reboot
ifreload -a
# If ifreload fails, restart networking (will briefly disconnect!)
systemctl restart networking
# Validate the config file syntax before applying
ifup --no-act vmbr0
Step 3: Check the Proxmox Firewall
The Proxmox firewall operates at the VM and host level. If enabled without proper rules, it can silently block all traffic:
# Check if the datacenter-level firewall is enabled
cat /etc/pve/firewall/cluster.fw
# Check host-level firewall
pve-firewall status
# List active firewall rules for a specific VM
cat /etc/pve/firewall/100.fw
# Temporarily disable the firewall for testing
pve-firewall stop
# Check iptables rules that Proxmox firewall generates
iptables -L -n -v | head -50
If disabling the firewall restores connectivity, re-enable it and add the necessary allow rules. Do not leave the firewall disabled permanently.
Step 4: DHCP and DNS Issues
If your VMs use DHCP and are not getting addresses, the problem may be between the VM and the DHCP server:
# Inside the VM, request a DHCP lease manually
dhclient -v eth0
# Check if DHCP traffic reaches the bridge (run on Proxmox host)
tcpdump -i vmbr0 -n port 67 or port 68
# For DNS issues, test resolution from the host
nslookup google.com
dig google.com @8.8.8.8
# Check the host's DNS configuration
cat /etc/resolv.conf
# Test if the VM can reach the gateway
# (from inside the VM)
ping -c 4 192.168.1.1
Step 5: MTU Mismatches
MTU mismatches cause subtle issues: small packets work fine (ping succeeds) but large transfers fail or are extremely slow. This is especially common with VLANs and VPN tunnels.
# Check MTU on all relevant interfaces
ip link show | grep mtu
# Test with a specific packet size (1472 + 28 bytes header = 1500 MTU)
ping -c 4 -M do -s 1472 192.168.1.1
# If the above fails, try smaller sizes to find the working MTU
ping -c 4 -M do -s 1400 192.168.1.1
# Set MTU on the bridge (temporary, resets on reboot)
ip link set vmbr0 mtu 1500
# For permanent MTU changes, edit /etc/network/interfaces:
# auto vmbr0
# iface vmbr0 inet static
# ...
# mtu 9000 # for jumbo frames
Remember that all devices in the path must support the same MTU — the bridge, the physical switch, and the upstream router.
Step 6: Packet Capture with tcpdump
When you have exhausted the obvious checks, packet capture reveals exactly what is happening on the wire:
# Capture traffic on the bridge
tcpdump -i vmbr0 -n -c 100
# Filter for a specific VM's MAC address
tcpdump -i vmbr0 -n ether host AA:BB:CC:DD:EE:FF
# Capture ARP traffic (useful for IP conflict detection)
tcpdump -i vmbr0 -n arp
# Capture traffic for a specific IP
tcpdump -i vmbr0 -n host 192.168.1.150
# Save capture to a file for Wireshark analysis
tcpdump -i vmbr0 -w /tmp/capture.pcap -c 1000
Look for ARP requests without replies (suggests L2 isolation), TCP SYN without SYN-ACK (firewall blocking), or ICMP unreachable messages.
Quick Recovery Steps
- Verify physical link with
ethtoolandip link - Confirm bridge has the NIC attached with
brctl show - Check
/etc/network/interfacesfor typos - Disable Proxmox firewall temporarily to test
- Use
tcpdumpto see what traffic is actually flowing - Check MTU end-to-end
Networking issues can be time-consuming to debug, especially remotely. Having a secondary access method — such as IPMI, a management VLAN, or ProxmoxR on your phone — ensures you are never completely locked out when a network change goes wrong.
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.