pve虚拟机使用wifi网卡
dlcy08
编辑于 2023年08月31日 17:46

主要分为三步

一、正常安装wifi网卡

  这一步正常参考linux系统安装wifi(无线)网卡。

    安装完成后使用  ifconfig   或者 ip a 或者 iwconfig 或者 iwlist能发现无线网卡(如wlp6s0之类)就为安装完成。

     一般需要 安装: wireless-tools wpasupplicant pve-firmware(或者firmware-**网卡驱动) 

              可选更新: pve-headers rfkill isc-dhcp-server

二、网卡安装后pve系统的设置。

        /etc/network/interfaces 配置文件修改

代码块
JavaScript
自动换行
复制代码
auto wlp6s0
iface wlp6s0 inet dhcp
        wpa-ssid "wifi名称"
        wpa-psk "密码"
复制成功

       ps设置后可能不能自己连接,需要网卡激活,激活时可能有SIOCSIFFLAGS: Operation not possible due to RF-kill提示。

          顺序执行如下命令

代码块
JavaScript
自动换行
复制代码
rfkill unblock all  #先把网卡什么的电给断了。
ifdown wlp6s0     #卸载无线网卡,有时不卸载,直接ifup,获取不到ipv4只能获取到ipv6。
ifup  wlp6s0     #启动网卡。
复制成功

此时理论上pve获取到ip可以上网了,但是ping -I wlp6s0 qq.com 不通,但是ping无线内网可以通。我的解决思路  用route查看 没有相关路由链表导致的,添加相关路由链表

代码块
JavaScript
自动换行
复制代码
route add -net 0.0.0.0/0 gw 192.168.1.1   #192.168.1.1为无线网络内网网关
#添加后一般会出现以下链路表
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default       192.168.1.1       0.0.0.0         UG    0      0       0  wlp6s0
复制成功

 至此pve可以正常上网了。 

三、pve下面的虚拟机使用无线网卡。

        /etc/network/interfaces 配置文件修改

代码块
JavaScript
自动换行
复制代码
auto wlp6s0
iface wlp6s0 inet dhcp
        wpa-ssid "wifi名称"
        wpa-psk "密码"
#--------------------------------------------------------------------------------
auto vmbr7                      #定义一个虚拟网络(vmbr7)用于WiFi转发
iface vmbr7 inet static
        address 192.168.66.1/24   #设置一个中间网络的ip段
        bridge-ports none
        bridge-stp off
        bridge-fd 0
#进行规则转发
post-up  iptables -t nat -A POSTROUTING -o wlp6s0 -j MASQUERADE; iptables -t nat -A POSTROUTING -d 192.168.66.0/24 -o vmbr7 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -o wlp6s0 -j MASQUERADE; iptables -t nat -D POSTROUTING -d 192.168.66.0/24 -o vmbr7 -j MASQUERADE
复制成功

打开系统转发的功能,修改/etc/sysctl.conf把其中net.ipv4.ip_forward=1的注释去掉,然后执行sysctl -p使配置生效。  #网上资料是这么说但是我感觉好像用处不大。

安装dhcp服务器这里选择 为例

代码块
JavaScript
自动换行
复制代码
cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak  #备份设置文件
复制成功

编辑文件/etc/dhcp/dhcpd.conf  这辅助需要把#注释删除,经过尝试带注释运行会报错

代码块
JavaScript
自动换行
复制代码
subnet 192.168.66.0 netmask 255.255.255.0 {   #网段vmbr7(你虚拟转发的网卡的)
  range 192.168.66.2 192.168.66.200;        #设置ip分配范围 
  option domain-name-servers 114.114.114.114, 8.8.8.8; #DNS服务器
  option routers 192.168.66.1;  #网关vmbr7(你虚拟转发的网卡的)
}
复制成功

编辑文件 /etc/default/isc-dhcp-serve  去掉#注释或者指定服务网卡的端口

代码块
JavaScript
自动换行
复制代码
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
DHCPDv4_PID=/var/run/dhcpd.pid
INTERFACESv4="vmbr7"
复制成功

service isc-dhcp-server restart   重启服务后。启动虚拟机。

但是到了虚拟机里面还是发现网络不通运行不了。如opwenwrt。在网络接口添加了eth4 新接口发现还是不能上网。防火墙设置了,后来关闭了发现还是不能上网。

ssh进去

经过route 发现系统没有路由表添加 route add -net 0.0.0.0/0 gw 192.168.66.1 

代码块
JavaScript
自动换行
复制代码
route add -net 0.0.0.0/0 gw 192.168.66.1   #192.168.66.1为vmbr7网络内网网关
#添加后一般会出现以下链路表
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default       192.168.66.1       0.0.0.0         UG    0      0      0  eth4
复制成功

因为我之前有eth0的有线上网口

至此ipv4可以网上了。ipv6还在研究中。

参考资料:1、https://www.jianshu.com/p/8c684d11baf0

                  2、http://www.taodudu.cc/news/show-5611758.html?action=onClick

                  3、https://www.jianshu.com/p/e7dda28dc2c7

                  4、网页链接​

                  5、网页链接​