背景#

家里淘汰的联想小新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通过无线网卡连接网络。