背景#

家里淘汰的联想小新2021pro 笔记本,cpu 是amd r5 5600h16GB内存,512GB nvme硬盘。准备安装 proxmox 作为 homelab 的一个节点。

proxmox 使用的最新版本Proxmox VE 9.0, 对应的 os 为 Debian13 - Trixie

安装过程比较顺利,系统也能正常启动。但是发现只有无线网卡可用,默认不启用 wifi,需要自己手工配置 wifi 连接。

解决方法#

我想要连接网络安装wpasupplicant,但是 proxmox 默认没有安装这个包。需要先连接有线网络,更新 apt 源,然后安装wpasupplicant

没有有线网络的情况下,可以通过手机 usb 共享网络连接。

通过手机 usb 共享网络连接#

手机连接 laptop 的 type-c 接口,然后打开手机的tethering选项。

在 proxmox 中,可以通过ip a命令查看到 usb 网络接口,一般是enx...开头的。

如果想使用ifconfig命令,需要先安装net-tools包。现代的 linux 发行版推荐使用ip命令。

启用 usb 网络接口:

ip link set dev enx... up

这里如果使用ifup命令,可能会报错dhclient not found,因为 proxmox 默认没有安装isc-dhcp-client包。

通过 dhcp 获取 ip 地址:

dhcpcd enx...

默认没有安装dhclient,所以使用dhcpcd命令。

这时候,可以通过ip a命令查看到 usb 网络接口已经获取到 ip 地址(类似inet 192.168.x.x/...)。

测试网络连接:

ping google.com

安装 wpasupplicant#

更新 apt 源:

apt update

安装wpasupplicant包:

apt install wpasupplicant

配置 wifi 连接#

wpa_passphrase "Your_SSID" "Your_Password" | sudo tee /etc/wpa_supplicant.conf

作为服务器,我需要固定 ip,所以修改/etc/network/interfaces文件,添加如下内容:

auto wlp1s0
iface wlp1s0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4
    wpa-conf /etc/wpa_supplicant.conf

启动 wpa_supplicant 来连接 wifi:

sudo ip link set wlp1s0 up
# 让 wpa_supplicant 自动选择驱动
# 这个命令只负责 Wi-Fi 连接和认证,不会自动获取 IP 地址!
wpa_supplicant -B -i wlp1s0 -c /etc/wpa_supplicant.conf
# 通过 dhcpcd 获取 IP 地址
dhcpcd wlp1s0

验证 wifi 连接状态:

ip link show wlp1s0

测试无线网卡的网络连接:

# 目前有线和无线网卡都连接上了,可以指定使用无线网卡测试网络连接
ping -I wlp1s0 8.8.8.8

Rfkill 问题#

ip link set wlp1s0 up报错RTNETLINK answers: Operation not possible due to RF-Kill,说明无线网卡被rfkill禁用了。

proxmox 默认没有安装rfkill包,需要先安装:

apt install rfkill

查看无线网卡的 rfkill 状态:

rfkill list

我看到的无线网卡状态是Soft blocked: yes,说明是软件禁用的。直接通过命令解禁无线网卡即可。

解禁无线网卡:

rfkill unblock wifi

总结#

虽然 proxmox 默认网络配置是只支持有线网络的, 但通过手机 usb 共享网络连接,可以临时为 proxmox 提供网络环境,从而安装wpasupplicant包。然后配置 wifi 连接,就可以让 proxmox 通过无线网卡连接网络。