If you’ve been running Proxmox on your server for a while, you might reach a point where your onboard NIC just isn’t cutting it anymore. Maybe it’s causing stability issues, you want better throughput, or you’re adding a 10GbE card. Whatever the reason, figuring out how to switch from onboard NIC to PCI NIC in Proxmox without losing your network access can feel nerve-wracking — especially if it’s a production machine.
The good news? It’s very doable. You just need to plan carefully and follow the right steps. Let’s walk through the whole process together.
Why You Might Want to Switch NICs in Proxmox
Before diving into the steps, it helps to understand why people make this switch in the first place.
Onboard NICs are fine for basic setups, but they often share system resources, lack advanced features, and can be a bottleneck when you’re running multiple VMs or containers with heavy network traffic. A dedicated PCI or PCIe NIC, on the other hand, typically offers:
- Better throughput and lower latency
- Dedicated hardware offloading (like checksum and TSO)
- More reliable drivers, especially with Intel NICs
- The ability to pass the card directly to a VM via PCIe passthrough
If you’re building a serious home lab or a small production cluster, upgrading your NIC is a smart move.
What You Need Before You Start
Don’t skip the prep work. Rushing into this without a plan is how you end up locked out of your server at midnight.
Here’s what to gather first:
- Physical or iDRAC/IPMI access to the server (this is critical)
- The exact PCI NIC model and its Linux driver name
- A second machine or phone to access the Proxmox web UI or SSH
- A notepad for your current network config (IP, gateway, bridge names)
- A backup of your Proxmox configuration if possible
You should also check that Linux recognizes your new card. Plug it in, boot up, and run:
lspci | grep -i ethernet
You should see both your onboard NIC and the new PCI NIC listed. If the new card doesn’t show up, it may need a driver or it might not be seated properly.
How to Switch From Onboard NIC to PCI NIC in Proxmox
This is the core process. Take your time with each step.
Step 1 — Identify Your Current Network Configuration
SSH into your Proxmox host and run:
cat /etc/network/interfaces
```
Write down everything. Your output will look something like this:
```
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.1.50/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
Here, eno1 is the onboard NIC and vmbr0 is the Linux bridge your VMs use. You need to replace eno1 with your new PCI NIC’s interface name.
Step 2 — Find Your New NIC’s Interface Name
Run the following command to list all network interfaces:
ip link show
Or use:
ls /sys/class/net/
Your new PCI NIC will typically show up as something like enp3s0, enp6s0, or eth1, depending on your system and slot. If you’re not sure which is which, check the MAC address or use:
ethtool enp3s0
This tells you the link speed and connection status of that interface.
Step 3 — Edit the Network Interfaces File
Now, carefully edit /etc/network/interfaces. You’re going to swap out the old NIC name for the new one.
nano /etc/network/interfaces
```
Change this line inside the `vmbr0` block:
```
bridge-ports eno1
```
To:
```
bridge-ports enp3s0
```
Also update or remove the `auto eno1` and `iface eno1` lines, replacing them with your new interface:
```
auto enp3s0
iface enp3s0 inet manual
Save the file when you’re done.
Step 4 — Apply the New Configuration
Here’s where things get a little tense. Before you restart networking, make absolutely sure you have console access (iDRAC, IPMI, or a physical monitor and keyboard). If the new NIC doesn’t come up correctly, you’ll need it.
Apply the new config with:
systemctl restart networking
Or if you want to be more surgical:
ifdown vmbr0 && ifup vmbr0
After a few seconds, your Proxmox host should come back online using the new PCI NIC.
Step 5 — Verify the Connection
Ping your gateway to confirm everything is working:
ping -c 4 192.168.1.1
Also check that vmbr0 is properly bridged to your new NIC:
brctl show
You should see enp3s0 listed under vmbr0. If you do — great, you’re done with the hard part.
Pros and Cons of Switching to a PCI NIC in Proxmox
Like any infrastructure change, this move has trade-offs worth considering.
Pros:
- Improved network performance and stability
- Better driver support (especially Intel i350 or X550 cards)
- Enables PCIe passthrough for VMs that need direct NIC access
- Frees up onboard NIC for dedicated management traffic
- Often supports hardware offloading features
Cons:
- Requires physical server access during transition
- Risk of losing network access if misconfigured
- Additional cost for the NIC hardware
- May require driver installation for less common cards
- BIOS/UEFI settings sometimes need adjusting for slot priority
Common Mistakes to Avoid
A lot of people run into the same handful of problems when doing this. Here’s what to watch out for:
Not having console access ready. This is the number one mistake. If networking drops and you can’t reach the machine remotely, you’re stuck — unless you’ve got a backup access method.
Getting the interface name wrong. Double-check with ip link show before editing any config files. One typo and your bridge won’t come up.
Forgetting to update all references. If you use OVS (Open vSwitch) or have multiple bridges, make sure every reference to the old NIC name is updated.
Not disabling the onboard NIC in BIOS. If both NICs are active, you might get routing confusion. Once your PCI NIC is working, consider disabling the onboard one in your server’s BIOS/UEFI.
Skipping a reboot test. Always reboot after the change to make sure the new config persists correctly. A reboot is the real test.
Best Practices for a Smooth NIC Migration
Follow these habits and the switch becomes much less stressful:
- Always snapshot or back up your config first. Copy
/etc/network/interfacesto a safe location before touching it. - Do this during a maintenance window. Don’t change network config on a live production machine during business hours.
- Use IPMI or iDRAC as a fallback. Out-of-band management is worth its weight in gold for exactly these situations.
- Test the new NIC before cutting over. Bring it up temporarily as a secondary interface and ping through it before making it the primary.
- Label your NICs. Use
udevrules or interface aliases to give your NICs stable, meaningful names that won’t change across reboots.
Conclusion
Switching from an onboard NIC to a PCI NIC in Proxmox isn’t complicated, but it does require careful preparation. The biggest risk is losing remote access mid-migration, which is why having console access ready is non-negotiable. Follow the steps outlined here — identify your current config, find the new interface name, update /etc/network/interfaces, and verify the bridge — and you’ll have a smooth transition with minimal downtime.
Once you’re running on a proper PCIe NIC, you’ll likely notice better stability and performance, especially under heavy VM workloads. It’s a worthwhile upgrade for any serious Proxmox setup.
Frequently Asked Questions
1. Will switching NICs delete my VMs or storage in Proxmox?
No. Changing the network interface only affects connectivity. Your VMs, containers, and storage remain completely untouched.
2. What’s the best NIC for Proxmox?
Intel-based NICs are generally recommended because of their mature Linux driver support. The Intel i350-T4 and X550-T2 are popular choices in home labs and small servers.
3. Can I keep the onboard NIC active for management after switching?
Absolutely. Many admins dedicate the onboard NIC to management traffic (accessing the Proxmox UI) and use the PCI NIC purely for VM traffic. You’d just configure separate bridges for each.
4. Do I need to reinstall Proxmox after adding a new NIC?
No reinstall needed. Proxmox runs on Debian Linux, so it picks up new NICs automatically. You only need to configure the interface manually in /etc/network/interfaces.
5. What if my new NIC doesn’t have a driver in Proxmox?
Check the card’s chipset and search for the Linux driver name. You may need to install it via apt or compile it from source. Intel and Broadcom cards usually work out of the box, while some newer or budget cards may need extra steps.
