简介
由于我家的路由器与电脑离的远,拉网线又太丑了,所以想让 PVE 日常只使用无线网卡。由于遇到了很多坑,特此记录一下。
开搞
a. PVE 安装网络连接工具
💡 最好是先用有线网口联网,也可以选择不临时联网,就需要使用 USB 进行离线安装无线网络连接工具库了
在安装 PVE 之后,需要先临时联网,有尝试以下方案:
-
使用手机 USB 共享网络(经尝试未成功)
-
拉网线直接连接(成功)
有用到以下命令:
shell
ip addr # 查看当前网络信息
dhclient eno1 # 切换当前网卡,切换后会显示内网 ip 地址,其中 eno1 是本地网卡

网络通了之后就可以安装网络连接工具
shell
# 安装网络连接工具
apt install wireless-tools
apt install wpasupplicant
apt install net-tools
b. PVE 通过无线网卡连接 WiFi
扫描 WiFi
shell
iwlist wlp3s0 scanning #扫描 WiFi

生成密码配置
shell
wpa_passphrase YOUR_WIFI_SSID YOUR_WIFI_PASSWORD

更改网络配置并重启
shell
vim /etc/network/interfaces # 按照下图更改网络配置
ifdown vmbr0 # 关闭有线网卡,并拔出网线
ifup wlp3s0 # 开启无线网卡

坑 1:一个是在拔掉网线后没有禁用有线网卡,导致局域网内 arp 表错误无法找到正确的 mac 地址,关闭其他网卡后问题解决
坑2:在电脑重启后无法自动重启有线网卡,但是手动重启生效,经排查是在重启后无法立即识别无线网卡接口,在加上延迟一秒开启无线网卡后顺利解决,排查所使用命令如下:
shell
systemctl status networking.service # 查询网络服务是否启动
systemctl restart networking.service # 重启网络服务
arp -a # 查询路由表,看是否正确获取 mac 地址
arp -d 192.168.31.121 # 删除不正确的 mac 路由数据
c. PVE 虚拟机通过无线网卡联网
根据 《PVE WLAN》官方文档描述,其实是不建议使用 WLAN 的,主要有以下两个限制:
-
Wi-Fi适配器只能通过一些变通方法作为Linux桥接口使用,而且大多数接入点(AP)会拒绝源地址未经AP认证的帧。
-
根有线连接比起来,更有可能遇到延迟波动、带宽减少、连接不稳等问题
但是没办法电脑离路由器太远了,只能硬搞了,有以下方案:
方案一:网络地址转换(NAT)已跑通
- 编辑网络配置并重启
shell
vim /etc/network/interfaces # 见下图
systemctl restart networking.service

- 更改虚拟机的 ip 为 10.10.10.0/24 网段,网关配置为 10.10.10.1 即可
方案二:使用网络桥接过滤器 ebtables(Layer 2)未跑通
- 指定无线网卡进行桥接
shell
pre-up iwconfig wlan0 essid $YOUR_ESSID
bridge_hw $MAC_ADDRESS_OF_YOUR_WIRELESS_CARD
- 第一个规则我们要设置的是将所有发送给AP的帧的源MAC地址设置为桥接器的MAC地址。
shell
ebtables -t nat -A POSTROUTING -o wlan0 -j snat --to-src $MAC_OF_BRIDGE --snat-arp --snat-target ACCEPT
- 下一个规则要求您知道桥后每台机器的MAC地址和IP地址。将$MAC和$IP替换为实际的MAC地址和IP地址。
shell
ebtables -t nat -A PREROUTING -p IPv4 -i wlan0 --ip-dst $IP -j dnat --to-dst $MAC --dnat-target ACCEPT
ebtables -t nat -A PREROUTING -p ARP -i wlan0 --arp-ip-dst $IP -j dnat --to-dst $MAC --dnat-target ACCEPT
- 后面就卡在这里了,安装的虚拟机无法指定 wlan0 为网卡,后面虽添加的新的虚拟网卡,但是配置怎么都不正确
方案三:使用网络桥接过滤器 Proxy ARP(Layer 3)已跑通
- 安装代理 ARP 软件包 parprouted
shell
apt install parprouted
- 编辑网络配置重启
shell
vim /etc/network/interfaces # 见下图
systemctl restart networking.service

- 更改虚拟机的 ip 为 192.168.31.0/24 网段,网关配置为 192.168.31.1 即可
方案四:4 address mode (WDS),小米路由器不支持,略
Reference
换源、开通 SRIOV、iommu 等可以参考以下链接
https://blog.csdn.net/hivlt/article/details/134470130
Discussion
留言与讨论
想法、补充和不同意见都欢迎。