PVE拔掉网线,无线网络接管

综合全网大神们的思路,通过无线网卡转发流量到虚拟ip端口,再以NAT模式连接虚拟机。
一、首先在PVE系统创建一个端口转发的sh文件,名字随便,如iptablesNat.sh:
root@pve:~# touch /root/iptablesNat.sh //创建iptablesNat.sh文件,放在root目录下
root@pve:~# nano /root/iptablesNat.sh //编辑iptablesNat.sh文件,写入如下内容:

#!/usr/bin/env bash //以下wip2s0换成自己的无线网卡
iptables -t nat -A PREROUTING -i wlp2s0 -p tcp --dport 12222 -j DNAT --to 10.10.10.3:22
//将wlp2s0的流量通过12222端口转到ip为10.10.10.3的22端口,再以NAT模式传给虚拟机
iptables -t nat -A PREROUTING -i wlp2s0 -p tcp --dport 6666 -j DNAT --to 10.10.10.3:178
//如需转发多个端口,可以类似添加多个转发语句

Ctrl+X,Y,保存退出。

二、激活无线网卡:
root@pve:~# ifup wlp2s0 //换成自己的无线网卡

三、生成PSK预共享密钥:
root@pve:~# wpa_passphrase "TP-LINK_KT" "@j198521" //连接WiFi的SSID和密码
输出内容如下:

network={
ssid="TP-LINK_KT"
#psk="@j198521"
psk=bc9c8e29a7*************************95ff5 //生成的PSK复制备用
}


四、配置/etc/network/interfaces:
root@pve:~# nano /etc/network/interfaces //编辑/etc/network/interfaces,修改如下:

source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto wlp2s0
iface wlp2s0 inet static //设置无线网卡wlp2s0静态ip
wpa-ssid "TP-LINK_KT"
wpa-psk "bc9c8e29a7e37*************************95ff5"
address 192.168.0.105/24 //改成自己的无线网网段ip
gateway 192.168.0.1 //改成自己无线网网关(可在其他无线网连接设备查看)
auto vmbr0
iface vmbr0 inet static //设置虚拟网卡静态ip
address 10.10.10.1/24 //与iptablesNat.sh文件中转发ip同一网段
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 //第一步创建的iptablesNat.sh文件
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o wlp2s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o wlp2s0 -j MASQUERADE

Ctrl+X,Y,保存退出。

五、reboot,虚拟机网卡设置为静态ip 10.10.10.x,网关 10.10.10.1

如有纰漏,敬请指点;一键三连,下期再见👋