PVE 使用无线网卡

需求就是主机离路由器太远,不想用网线连接。本来我以为会很简单,但是配着配着发现真复杂,主要是无法桥接无线网卡,我劝你还是插网线。如果不听劝,那快乐地折腾起来吧。

配置网络环境的命令很多,为了避免复杂,这里所有的配置尽可能地通过修改/etc/network/interfaces来完成,这样可以清楚地看到我们改了什么,所以先备份一下/etc/network/interfaces
驱动网卡的过程需要网络,所以需要有线网卡支持,没有的话通过手机的usb共享网络分享一个,在使用手机的USB共享网络时,直接插电脑上是不会自动配置的,需要在/etc/network/interfaces中添加

auto usb0
iface usb0 inet dhcp

然后重启电脑。

去掉pve的企业软件源,mv /etc/apt/source.list.d/pve-enterprise.list /etc/apt/source.list.d/pve-enterprise.list.bak

在用上无线网卡之前,我们主要通过显示器和键鼠操作命令行界面。

一、驱动网卡

这里以两个网卡为例,其一是BCM943602CS,给黑苹果用的网卡,也是我这台机器上主要用的网卡;其二是RTL8812bu,这个是之前给R2S做无线AP买的USB网卡,型号是CF-812AC,这里只用做安装驱动测试。

开始之前先了解下怎么算驱动成功呢,一个 ip a命令就可以了,如果驱动的话会显示相应的网络接口,否则不显示。

编译之前需要添加pve的内核头文件

# 添加非订阅源
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
apt update
apt install pve-headers-`uname -r`

1.1 BCM4360

BCM4360的驱动有编译好的,添加non-free源,然后添加无线驱动软件

echo '' /etc/apt/source.list
apt update
apt install broadcom-sta-dkms
modprobe wl

重启下电脑然后使用ip a查看一下,是不是多了一个接口,我这里叫wlp5s0,这样就算驱动成功了。

1.2 RTL88x2bu

RTL88x2bu没有编译好的软件包,只能用源码自己编译了,

apt install git
git clone https://github.com/morrownr/88x2bu-20210702
cd 88x2bu-20210702
bash install-driver.sh
reboot

有的驱动源码中没有提供安装脚本的话,一般情况都是通过make && make install来编译和安装。重启后同样使用ip a确认一下是否驱动成功,我这里是wlx200db046cbe5

二、连接wifi

多数的wifi使用wpa/wpa2加密,想连接这种加密的wifi需要wpasupplicant支持

apt install wpasupplicant

然后修改/etc/network/interfaces文件,添加无线接口配置

auto wlp5s0
iface wlp5s0 inet dhcp
        wpa-ssid 你的wifi名称
        wpa-psk 你的wifi密码

如果成功连上wifi,可以删除/etc/network/interfaces文件中usb0配置了。也可以通过分配的ip地址访问pve的web界面了。

三、请求转发

目前为止,咱们的无线网卡已经可以让pve上网了,但是给虚拟机配置网络的时候只能用虚拟网卡,正常情况下我们将无线网卡的网络桥接给虚拟机就好了,但是桥接无线网卡好像需要网卡支持monitor模式,总之是如何都桥接不成功,那还有一个办法就是使用转发。

开始前,先介绍一下我现在的网络环境,路由器是OpenWRT,子网10.1.1.0/24,给pve分配的地址是10.1.1.3;在pve中新建了一个子网10.3.3.0/24,vmbr0是10.3.3.1,给虚拟机分配的地址是10.3.3.x。

首先,打开系统转发的功能,这相当于一个总开关,修改/etc/sysctl.conf把其中net.ipv4.ip_forward=1的注释去掉,然后执行sysctl -p使配置生效。

3.1 虚拟机访问外网

使用iptables命令添加转发规则,也可以在/etc/network/interfaces文件中配置,这里把所有的请求都通过无线网卡转发出去就可以了,直接附上我的/etc/network/interfaces文件。

auto lo
iface lo inet loopback

iface enp4s0 inet dhcp

auto wlp5s0
iface wlp5s0 inet dhcp
        wpa-ssid xxxx
        wpa-psk xxxxxxxx

auto vmbr0
iface vmbr0 inet static
        address 10.3.3.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0

post-up iptables -t nat -A POSTROUTING -o wlp5s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -o wlp5s0 -j MASQUERADE

重启电脑,目前,桥可以正常上网了,但是当桥和虚拟机连接时虚拟机还是不能上网,因为虚拟机并不知道目前所处网络的环境,必须手动设置ip才能正常上网,所以我们可以给虚拟桥接口配置一个dhcp服务器,这样所有的虚拟机就可以通过dhcp客户端自动获得ip地址了。

3.2 外网访问虚拟机

这就稍微麻烦了,首先,你的路由需要手动配置路由的功能,把所有目的地址是10.3.3.0/24的请求路由到10.1.1.3,然后,在pve中,把请求转发到虚拟网卡。
第一步中,我用的OpenWRT,在网络|路由|静态IPv4路由中添加一条规则,接口填LAN,目标10.3.3.0/24,网关10.1.1.3。这样当路由器下的设备访问10.3.3.0/24时,请求就会到10.1.1.3
第二步,添加一条iptables规则就好了,还是直接上/etc/network/interfaces文件:

auto lo
iface lo inet loopback

iface enp4s0 inet dhcp

auto wlp5s0
iface wlp5s0 inet dhcp
        wpa-ssid xxxx
        wpa-psk xxxxxxxx

auto vmbr0
iface vmbr0 inet static
        address 10.3.3.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0

post-up iptables -t nat -A POSTROUTING -o wlp5s0 -j MASQUERADE;iptables -t nat -A POSTROUTING -d 10.3.3.0/24 -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -o wlp5s0 -j MASQUERADE; iptables -t nat -D POSTROUTING -d 10.3.3.0/24 -o vmbr0 -j MASQUERADE

折腾半天突然发现,外网能ping通虚拟机,可以通过浏览器访问网络,但是远程桌面连不上,SSH连不上。。。

四、DHCP服务器

安装dhcp服务器,安装完会自动启动,会有些错误,请忽略,因为咱们还没配置呢。

# 安装dhcp服务器
apt install isc-dhcp-server
# 备份一下默认的配置
mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak

编辑/etc/dhcp/dhcpd.conf文件,填入以下内容新建一个子网,网段和虚拟网桥的网段;dns是我的主路由和一个公共dns;routers 是虚拟网桥的地址,注意虚拟网桥的地址设置为10.3.3.1/24而不是10.3.3.1/32,否则网络不能经过网桥转发。

subnet 10.3.3.0 netmask 255.255.255.0 {
  range 10.3.3.10 10.3.3.99;
  option domain-name-servers 10.1.1.1, 8.8.4.4;
  option routers 10.3.3.1;
}

给vmbr0指定dhcp服务,修改/etc/default/isc-dhcp-server文件如下,

INTERFACESv4=”vmbr0″

使用service isc-dhcp-server restart启动dhcp服务。

五、补充

参考

  1. https://unix.stackexchange.com/questions/175810/how-to-install-broadcom-bcm4360-on-debian-on-macbook-pro
  2. https://blog.csdn.net/lixifun/article/details/125452382
  3. https://cloud.tencent.com/developer/article/1374873

你可能感兴趣的:(PVE 使用无线网卡)