Setting up an internet connection in Proxmox with Realtek 2.5 gig NICs

O Omar Al-Jumaili

[!SUMMARY] Table of contents

  • [[#Externally download libraries and drivers for both Wi-Fi and ethernet|Downloading the Wi-Fi drivers]]
  • [[#Load them on a USB Drive, In a drivers Folder in the root of the USB drive|Installing the Wi-Fi drivers]]
  • [[#Run the following to finally install the ethernet driver|Installing the ethernet driver]]
  • [[#Add Virtual Bridge|Adding the virtual bridge]]
  • [[#And Now you should be able to access the Web GUI for Proxmox!|Conclusion]]

This summer, I finally decided to upgrade my PC. I got a 9070XT and a 9700X, along with a motherboard and PSU. As for the old parts, I put them into another build that I wanted to turn into my homelab.

I built the homelab PC, installed Proxmox on it, punched in the address of the Proxmox GUI in my browser and…nothing.

I hooked up a monitor to my Proxmox node and it turns out I can’t ping anything, local or WAN. The node is completely disconnected from the network.

After a bunch of digging, I figured out that Proxmox doesn’t have the drivers needed for my motherboard’s NIC, an intel i225-v (a 2.5 gig NIC). I needed to install the drivers myself. Oh goodie.

I’m going to take you on the journey I had to go through to get an internet connection setup on my Proxmox node, but before that, a quick disclaimer:

[!Disclaimer] This guide is not “optimal”. The dependencies needed to install the i225-v directly are a lot, so I decided to set up Wi-Fi first to be able to install all the dependencies needed for the driver. I don’t uninstall the Wi-Fi drivers, but you’re free to do so.

Now, Let’s get started.


Externally download libraries and drivers for both Wi-Fi and ethernet

The first thing you will need to do is download all the packages and drivers needed to setup Wi-Fi. after we setup a Wi-Fi connection, we can then run apt update and install all the dependencies for the ethernet driver.

[!warning] Careful! The last driver, r8125, depends on your NIC model. Make sure to double check and download the appropriate Realtek driver for your NIC.

Here are the links to all the drivers you will need:

Drivers in order of install:

libnl-3-200_3.5.0-0.1_amd64

libnl-genl-3-200_3.5.0-0.1_amd64

libpcsclite1_1.9.5-3ubuntu1_amd64

libiw30_30~pre9-13.1ubuntu4_amd64

iw_5.16-1build1_amd64

wireless-tools_30~pre9-13.1ubuntu4_amd64

wpasupplicant_2%3a2.10-6ubuntu2.1_amd64

r8125-9.014.01


Load them on a USB Drive, In a drivers Folder in the root of the USB drive

That’s important, as the script below assumes that’s the location of the driver files.

Now that you have your USB stick with the drivers on it, plug it into the Proxmox node and log into the shell.

The first thing you need to do is mount the USB drive, and for that, you need to figure out what the USB stick is referenced as in the OS.

lsblk

You should be able to figure out which device is the USB stick from it’s size and other info. The ID will be in the format of /dev/<something>

Afterwards, We will make the folder to house the drivers, mount the USB stick and install the Wi-Fi Driver.

[!CAUTION] Pay attention to define the USB drive’s designation in the mnt command

mkdir -p /mnt/driversUSB
mkdir -p /opt/drivers
mount /dev/<USB_Drive_Designation> /mnt/driversUSB # CHANGE THE DRIVE DESIGNATION!
cd /mnt/driversUSB/drivers
cp -rf * /opt/drivers
cd /opt/drivers

dpkg -i libnl-3-200_3.5.0-0.1_amd64.deb
dpkg -i libnl-genl-3-200_3.5.0-0.1_amd64.deb
dpkg -i libpcsclite1_1.9.5-3ubuntu1_amd64.deb
dpkg -i libiw30_30~pre9-13.1ubuntu4_amd64.deb
dpkg -i iw_5.16-1build1_amd64.deb
dpkg -i wireless-tools_30~pre9-13.1ubuntu4_amd64.deb
dpkg -i wpasupplicant_2%3a2.10-6ubuntu2.1_amd64.deb

With that, you should be able to connect to Wi-Fi. Fill in the following scripts, but make sure to adjust the SSID, the password and the interface.

wpa_passphrase "<SSID>" '<PASSWORD>' | tee /etc/wpa_supplicant/wpa_supplicant.conf
wpa_supplicant -B -i <INTERFACE> -c /etc/wpa_supplicant/wpa_supplicant.conf
dhclient <INTERFACE>

Now, try to ping an address; 8.8.8.8, google.com or anything else. if it works, we can move on to the next step.

“But Omar, can’t i just stop here and use Wi-Fi?”

Unfortunately, to work with VMs and LXC containers in Proxmox, you need to make a virtual bridge for them to be able to talk with the internet, and Linux isn’t capable of creating bridges for wireless interfaces. you need to be connected via ethernet.

Run the following to finally install the ethernet driver:

apt update
apt install make build-essential pve-headers dkms

tar -xf r8125-9.014.01.tar.bz2
cd r8125-9.014.01
./autorun.sh
reboot now

After the reboot, check for the interfaces

 ip link show

Confirm both the Wi-Fi and Ethernet interfaces exist

just to make sure, try pinging again, you should be able to get a response.


Add Virtual Bridge

Now that your node is connected to the internet, we need to create the virtual bridge for your VMs and containers. to do so, type in the command nano /etc/network/interfaces, and edit the file as follows. Again, make sure to pay attention to the interface names and adjust according to your computer.

# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

auto lo
iface lo inet loopback

auto <INTERFACE>
iface <INTERFACE> inet manual

auto vmbr0
iface vmbr0 inet static
        address <THE IP ADDRESS YOU WANT>
        gateway <YOUR ROUTER GATEWAY>
        bridge-ports <INTERFACE>
        bridge-stp off
        bridge-fd 0

source /etc/network/interfaces.d/*

Lastly, make sure The Web GUI points to the correct IP that you set in /etc/network/interfaces. Run nano /etc/hosts and adjust the IP address.

And Now you should be able to access the Web GUI for Proxmox!

Congratulations! Hope this guide was helpful in getting you out of a bind. I have a lot of other guides regarding Proxmox, including GPU passthrough and mapping, as well as a bunch of bootstrap scripts for a whole bunch of self hosted applications. make sure to check them out!