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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容