Connecting Proxmox 8 to Wi‑Fi: configuring wpa_supplicant, wireless-tools, and a network bridge

Hi everyone! I decided to create separate themed topics for the tasks I’m facing and share how I solve them. In this article we’ll figure out how to connect a Proxmox 8 server to a Wi-Fi network using the wpa_supplicant and wireless-tools packages.

Right now I have the server connected by a cable run through half an apartment — otherwise there’s no way to access or configure it. And given that I bought a Wi-Fi adapter in a PCIe slot, it would be silly not to use it. So, let’s set up Wi‑Fi on Proxmox 8 — it’s not hard.

Installing packages for working with Wi‑Fi

First of all, we need to install two packages.

Package wpasupplicant

The wpasupplicant package is a tool for connecting to secured Wi‑Fi networks using the WPA/WPA2 protocol. It provides commands and utilities that allow your device to automatically authenticate and establish a secure connection with a Wi‑Fi access point that uses WPA or WPA2 encryption.

When you install the wpasupplicant package, you gain access to the following capabilities:

  1. Connecting to secured Wi‑Fi networks. The package offers commands such as wpa_supplicant that allow you to connect to a Wi‑Fi network that requires WPA/WPA2 authentication. You can configure connection parameters such as SSID (network name), password, and encryption type.

  2. Managing Wi‑Fi settings. The package also provides utilities that let you manage Wi‑Fi settings: scan available networks, disconnect and connect to a specific network, etc. This is useful if you want to set up automatic connection to a particular network or change your connection settings.

In short, installing the wpasupplicant package is necessary if you plan to connect to secured Wi‑Fi networks with WPA/WPA2 encryption. Install:

apt-get install -y wpasupplicant

Package wireless-tools

The wireless-tools package provides various utilities for managing wireless networks in Linux. When you install this package, you gain access to the following capabilities:

  1. Managing wireless interfaces. Wireless-tools provides the iwconfig utility, which lets you view and configure wireless interface parameters such as signal strength, frequency, transmitter power, and more.

  2. Scanning wireless networks. Using the iwlist utility, you can scan available wireless networks, getting information about the network — SSID, signal strength, encryption type, etc. This is useful if you want to find available networks or check signal quality.

  3. Configuring wireless networks. Wireless-tools also provides the iwpriv utility, which lets you configure additional wireless network parameters such as operation mode, MAC address filtering, and others.

  4. Managing connections. The iwconfig utility lets you establish and manage a Wi‑Fi connection: connect to a network, disconnect, and configure connection parameters.

Overall, installing wireless-tools is useful if you plan to work with wireless networks in Linux. It provides convenient tools for managing wireless interfaces, scanning networks, and configuring connection parameters. Install:

apt-get install wireless-tools

Determining the Wi‑Fi interface

We’ll learn the network configuration — for this, run:

iwconfig

We’ll get a result like this:

Full output of the iwconfig command
root@openode:~# iwconfig
lo        no wireless extensions.

enp8s0    no wireless extensions.

enp9s0    no wireless extensions.

enp12s0   no wireless extensions.

wls6      IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=-2147483648 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

vmbr0     no wireless extensions.

tap100i0  no wireless extensions.

docker0   no wireless extensions.

br-49e5b2a6e981  no wireless extensions.

veth990e3c3  no wireless extensions.

vethad03e47  no wireless extensions.

br-ba8c03b9be06  no wireless extensions.

veth1b7e029  no wireless extensions.

From this we understand that we’re interested in the network interface wls6 (in my case).

Configuring network interfaces

Next, edit the file /etc/network/interfaces:

nano /etc/network/interfaces

Mine looks like this:

We see that there’s nothing about wls6 here. Let’s fix it: append the text below and comment out the unnecessary (modified) line:

auto wls6 
iface wls6 inet dhcp
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Setting up wpa_supplicant

Now edit the connection parameters file /etc/wpa_supplicant/wpa_supplicant.conf:

nano /etc/wpa_supplicant/wpa_supplicant.conf

Paste the following content, replacing the network name and password with yours:

country=RU
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="your ssid"
psk="your wifi password"
scan_ssid=1
}

Save the file, exit, and restart the service:

sudo systemctl restart networking

Checking the connection

Throw the command in the console: ip a and see that we managed to connect to Wi‑Fi:

Excellent!

Setting up automatic service startup

Enable the service to start automatically on reboot:

systemctl enable wpa_supplicant.service

You also need to run dhclient during startup to obtain a private IP address from your DHCP server. This can be achieved by creating a systemd service unit for dhclient:

nano /etc/systemd/system/dhclient.service

Paste the following code, making sure to replace the interface:

/etc/systemd/system/dhclient.service *                                                                                         
[Unit]
Description= DHCP Client
Before=network.target
After=wpa_supplicant.service
[Service]
Type=forking
ExecStart=/sbin/dhclient wls6 -v
ExecStop=/sbin/dhclient wls6 -r
Restart=always
 
[Install]
WantedBy=multi-user.target

Now restart the service:

systemctl restart wpa_supplicant.service

And restart the network again:

systemctl restart networking

Now the web interface is accessible at: 192.168.1.162:8006.

Configuring the network bridge

But that’s not all yet. For all settings to be correct, we need to go into the network settings:

And specify in the network bridge ports the interface wls6.

To apply the changes, you need to reboot our node, i.e., the server. The node is called a single machine because we can assemble several servers in one network into a cluster.

The required button is at the top when the node is active:

Reboot node button in the Proxmox top bar

An unresolved issue

But now, if you disconnect the wired network, you lose access… It seems the Wi‑Fi network doesn’t stay connected. I haven’t been able to solve this yet :disappointed_face: Even though I reconfigured the bridge and left only the gateways for Wi‑Fi…

If someone has faced something similar — please share :slightly_smiling_face:

UPD: the probable cause is the lack of drivers for my network card TP-Link T5E: Linux support is missing :disappointed_face:


The article was first published on 11.07.2023 on openode.xyz; migrated and updated on 04.08.2026.