Introduction
When managing KVM or Xen VPS hosts with Virtualizor, you may encounter the following error when trying to start or restart a virtual machine:
The viifbr0 is not started. Please run systemctl start virtnetwork
This message indicates that the Linux bridge interface (viifbr0
) which ties your VPS network adapters to the host’s physical NIC is either missing or down. In this post, we’ll walk through how we diagnosed the problem, why the recommended “start” command failed, and how we ultimately fixed it.It means the bridge interface viifbr0 which connects your VPS network to the host’s NIC is missing or down.
Error Description
On the Virtualizor admin dashboard (or when creating/restarting a VPS), Virtualizor invokes its helper service, Virtnetwork, to bring up viifbr0
. If that bridge isn’t present, you’ll see:
The viifbr0 is not started. Please run systemctl start virtnetwork
By default, Virtnetwork expects the primary network interface to be labeled as eth0. If your system uses a different name (for example, eno1
), the service cannot bind the bridge and will exit without erroring out loudly.
Step 1: Follow the Official FAQ
Virtualizor’s documentation advises:
- Install the
bridge-utils
package. - In the Admin panel, navigate to Configuration → Slave Settings → Network Interface and verify that the appropriate network interface card (NIC) is chosen (typically eth0 by default).
- then go to the terminal as root and use below command.
service virtnetwork start
However, when your NIC isn’t eth0
, the start command won’t succeed or work.
Step 2: Initial “start” Attempt
On our host, we ran:
systemctl status virtnetwork
virtnetwork.service — active (exited)
…
bridge[2791]: Interface : eth0
bridge[2791]: Error: No IP address found.
Because our server’s actual interface was eno1
, Virtnetwork looked for eth0
, found nothing, and exited without bringing up viifbr0
.
Step 3: Correct the Network Interface in Virtualizor
Discover your host’s network interfaces
ip link show
This lists every interface on your node. Identify which one carries your public IP (e.g., eno1, ens3, etc.). For example:
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
Update the bridge mapping in Virtualizor
- Log in to the Virtualizor Admin panel.
- Navigate to Configuration → Slave Settings (select your server).
- Under Network Interface, For the node in question, replace the default
viifbr0
value with your actual interface name (e.g.,eno1
). - Click Save.
This aligns Virtnetwork with the host’s real NIC name.
Step 4: Restart the Virtnetwork Service
Rather than a simple “start,” issue a restart so the service picks up the new interface mapping:
systemctl restart virtnetwork
Jun 15 16:10:13 host bridge[54021]: Interface : eno1
Jun 15 16:10:13 host bridge[54021]: Bringing up viifbr0 - OK
Jun 15 16:10:13 host bridge[54021]: Internet connectivity check successful viifbr0 - OK
You’ll now see that viifbr0
has been created and brought up on top of eno1
.
Step 5: Verify and Relaunch Your VPS
Confirm the bridge is up:
ip addr show viifbr0
4: viifbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 …
inet 23.239.106.114/29 brd 23.239.106.119 scope global viifbr0
Finally, restart (or create) your VPS:
vzctl restart <VMID>
or via the Virtualizor UI. The “bridge not found” error should now be resolved.
Conclusion
If you see the viifbr0 not started
error in Virtualizor:
- Ensure
bridge-utils
is installed and the proper NIC is selected in Slave Settings. - Restart the
virtnetwork
service (not just start). - Verify the new bridge interface is up.
With these steps, Virtnetwork will correctly bind your physical NIC regardless of its name and your Virtualizor-managed VPS instances will start without issue.