Promox VE(PVE) 如何聯網及使用wifi

pve一個管理虛擬機器和容器的平臺,由於是開源免費的,被很多小夥伴用來搭建自己的"all in one"主機。我也看過很多相關文章和教程,看著大家玩的不亦樂乎,再看著自己半退役的筆記本,一顆愛折騰的心躁動不已,開搞!

pve有線聯網

安裝pve系統(用的版本7.3-1)過程還算順利,和安裝普通的windows,ubuntu大同小異(用的是ventoy製作的啟動盤,強烈推薦)。順利進入系統,發現沒有網路,連上有線也不行,網上搜了下也沒有類似的問題,還是得看pve官方文件。其中,網路配置(Network Configuration)章節有如下描述

官方的這種騷操作一時間讓人不知道該怎麼吐槽,好在接著給出瞭解決方案,修改

/etc/network/interfaces檔案

auto lo iface lo inet loopback auto eno0 # 改成自己的網絡卡名稱,下同 iface eno0 inet static         address 198.51.100.5/29 #改成自己的內網ip, 例: 192.168.31.140/24         gateway 198.51.100.1 #改成自己的路由器閘道器,例: 192.168.31.1         post-up echo 1 > /proc/sys/net/ipv4/ip_forward         post-up echo 1 > /proc/sys/net/ipv4/conf/eno0/proxy_arp auto vmbr0 iface vmbr0 inet static         address  203.0.113.17/28         bridge-ports none # 這裡修改成none,不橋接         bridge-stp off         bridge-fd 0

修改儲存後,直接簡單粗暴reboot(如果想只是重啟網路,官方推薦的是ifupdown2),成功連線上有線網,IP就是配置檔案中設定的 192.168.31.140

pve無線聯網

到這裡,還沒無線網什麼事,不過有線網有了,搞wifi就方便多了。先檢視下各網絡卡的情況

   

查詢網絡卡資訊

我的筆記本無線網絡卡是不需要裝驅動的,所以列表中直接展示出了無線網絡卡名稱,如果你的網絡卡列表中沒有無線網絡卡的資訊,說明pve系統發現不了你的無線網絡卡,應該是缺少驅動(我的桌上型電腦 微星MAG B660M MORTAR WIFI 主機板自帶的無線網絡卡就無法被發現,必須裝驅動才可以)。

root@mypve:~# ifup wlp7s0                       //啟用無線網絡卡

連線wifi需要wpa-psk格式的金鑰,可以通過如下命令生成(如果找不到對應命令,就安裝下wpasupplicant)

root@mypve:~# wpa_passphrase "wifi名稱" "wifi密碼" //下面是輸出資訊 network={         ssid="wifi名稱"         #psk="wifi密碼"   //這句是註釋掉的         psk=2c************************76    //生成的psk }

再次編輯配置檔案

/etc/network/interfaces

auto lo iface lo inet loopback auto enp6s0 # 改成自己的網絡卡名稱,下同 iface enp6s0 inet manual #下面的無線網絡卡的配置一定要配置在虛擬網路 vmbr0的前面,否則,流量會先走vmbr0 auto wlp7s0  iface wlp7s0 inet static         wpa-ssid wifi名稱    # 這裡填wifi名稱         wpa-psk  psk    # 這裡改成上一步生成的 psk         address  192.168.31.252/24 # 改成自己的內網ip         gateway  192.168.31.1 # 改成自己的路由器閘道器          auto vmbr0 iface vmbr0 inet static         address  203.0.113.17/28         bridge-ports none # 這裡修改成none,不橋接         bridge-stp off         bridge-fd 0

修改儲存,再次reboot,進入系統,就可以看到無線網絡卡也有IP,此時就可以拔掉有線網了

虛擬機器通過NAT模式聯網

接著用另一臺在同一網段(和pve電腦連線的同一路由,IP是192.168.31.*)的電腦通過pve自帶的後臺管理UI連線到pve後臺管理服務(
   https://192.168.31.252:8006),先安裝一個ubuntu測試下網路連線是否正常

注意:必須是https協議的,不要直接輸IP,敲回車,會預設http連線,導致連線失敗

下載好以後,點選左上角的 “create CT” 按鈕

建立完成後,通過UI控制檯進入虛擬機器ubuntu系統,此時是無法連線網路的,vmbr0網絡卡既沒有橋接,也沒有NAT,這是必然的,由於橋接方式一開始就行不通,這次我們需要把vmbr0配置成NAT方式,官網推薦配置如下

我們照葫蘆畫瓢,把pve系統的(注意不是Ubuntu虛擬的)網路配置檔案

/etc/network/interfaces

修改成下面這樣

auto lo iface lo inet loopback auto enp6s0          # 有線網絡卡沒有網線,可以不用管了                                                                                                                                          ifup on the      iface enp6s0 inet dhcp auto wlp7s0 iface wlp7s0 inet static         wpa-ssid wifi名稱 # wifi名稱         wpa-psk  psk # 之前生成的psk         address 192.168.31.252/24         gateway 192.168.31.1 auto vmbr0 iface vmbr0 inet static         address 10.10.10.1/24         bridge-ports none         bridge-stp off         bridge-fd 0         post-up echo 1 > /proc/sys/net/ipv4/ip_forward            # 下面兩句記得把網絡卡名稱wlp7s0改成自己的         post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o wlp7s0 -j MASQUERADE         post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o wlp7s0 -j MASQUERADE

修改儲存成功後,直接reboot

通過埠轉發直連虛擬機器

ubuntu虛擬機器可以上網後,又發現一個問題,與pve電腦同一網段的電腦無法直連。這真是一個大問題,看了官方文件也沒找到這塊,只能網上找大神了。這裡要再次感謝B站“嘉哥_來了”幾個通宵的研究,幫我解決了直接虛擬機器的問題。廢話不多說,接著搞!

整體思路就是通過網絡卡埠轉發的方式直連虛擬機器,首先在pve系統(注意不是Ubuntu虛擬機器)建立一個新檔案,名字隨便取

/root/iptablesNat.sh

#!/usr/bin/env bash # 這句話的作用就是通過網絡卡wlp7s0把通過12222埠訪問的流量轉到IP為10.10.10.3的22埠 # 這樣我們通過 ssh -p 12222 [email protected] 連線時,就能連線到Ubuntu虛擬機器了 # 注意修改成自己的網絡卡名 iptables -t nat -A PREROUTING -i wlp7s0 -p tcp --dport 12222 -j DNAT --to 10.10.10.3:22 # 想轉發幾個埠就寫幾個轉發語句 192.168.31.252:6666 -> 10.10.10.3:178 iptables -t nat -A PREROUTING -i wlp7s0 -p tcp --dport 6666 -j DNAT --to 10.10.10.3:178

儲存後,接著修改pve系統的配置檔案

/etc/network/interfaces

auto lo auto lo iface lo inet loopback auto enp6s0                                                                                                                                                ifup on the      iface enp6s0 inet dhcp auto wlp7s0 iface wlp7s0 inet static         wpa-ssid wifi名稱 # wifi名稱         wpa-psk  psk # 之前生成的psk         address 192.168.31.252/24         gateway 192.168.31.1 auto vmbr0 iface vmbr0 inet static         address 10.10.10.1/24         bridge-ports none         bridge-stp off         bridge-fd 0         post-up echo 1 > /proc/sys/net/ipv4/ip_forward         post-up bash /root/iptablesNat.sh  # 新增這句,檔案就是上面新建立的檔案,改成自己的            # 下面兩句記得把網絡卡名稱wlp7s0改成自己的         post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o wlp7s0 -j MASQUERADE         post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o wlp7s0 -j MASQUERADE

修改儲存後,直接reboot,就可以愉快的連線Ubuntu虛擬機器了

參考資料:

【Proxmox VE Administration Guide】

https://pve.proxmox.com/pve-docs/pve-admin-guide.html

【Proxmox(pve)使用無線網絡卡WIFI6-AX210教程-嗶哩嗶哩】

https://b23.tv/K4Xqecx