PVE 9 无线网络下,通过 PVE 的 SDN 使用 SNAT 功能,使虚拟机实现网络通信
不说 ·
补充
虚拟机使用 ssh 登录
端口转发:将 PVE 主机的 10022 端口转发到虚拟机的 SSH 端口(10022)
iptables -t nat -A PREROUTING -d 192.168.123.150 -p tcp --dport 10022 -j DNAT --to-destination 10.10.10.100:10022
iptables -A FORWARD -d 10.10.10.100 -p tcp --dport 10022 -j ACCEPT
补充了一下 SNAT 和 DNAT 的知识,了解到:
SNAT,即源网络地址转换,主要用于内部网络的主机访问外部网络时。
DNAT,即目标网络地址转换,主要用于外部网络的主机访问内部网络的服务时。
使用 SNAT 的方案
配置网络
编辑网络配置文件
nano /etc/network/interfaces
注释掉vmbr0连接,创建虚拟机使用 vnet1,如果不注释掉会无法联网:
auto wlp4s0
iface wlp4s0 inet static
address 192.168.123.150/24
gateway 192.168.123.1
dns-nameservers 192.168.123.1 8.8.8.8
wpa-conf /etc/wpa_supplicant/wpa_supplicant-wlp4s0.conf
#auto vmbr0
#iface vmbr0 inet static
# address 192.168.100.2/24
# gateway 192.168.100.1
# bridge-ports none
# bridge-stp off
# bridge-fd 0
source /etc/network/interfaces.d/*
配置 SDN
以上操作完成后应该可以访问Web控制台了,浏览器访问:http://192.168.123.XXX:8006 ,进入控制台,使用root登录,语言选择中文。
创建 SDN 配置:
通过 Web 界面:数据中心->SDN->区域:添加->Simple:
ID:Zone1
通过 Web 界面:数据中心->SDN->Vnets->创建:
名称:vnet1
区:Zone1
然后在右侧子网->创建:
子网:10.10.10.0/24
网关:10.10.10.1
SNAT: 需要通过主机访问外网,勾选此项
通过 Web 界面:数据中心 → SDN → 点击 "应用" 按钮
最后重启,简单粗暴:reboot
为虚拟机添加 vnet1 网络
在虚拟机的网络界面,将桥接选择为 vnet1 网络。
其他方案
- 方案一:端口转发(Port Forwarding)
使用无线网卡管理PVE 8.2并通过NAT访问虚拟机 - 开发调优 - LINUX DO
网络接口配置文件
## /etc/network/interfaces
auto lo
iface lo inet loopback
iface eno1 inet manual
iface enp3s0 inet manual
auto wlp4s0
iface wlp4s0 inet dhcp
wpa-ssid YourSSID
wpa-psk ***********
auto vmbr0
iface vmbr0 inet static
address 10.10.254.254/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up bash /root/iptables.config.sh
source /etc/network/interfaces.d
自定义 NAT 脚本
## /root/iptables.config.sh
iptables -t nat -A POSTROUTING -s '10.10.254.0/24' -o wlp4s0 -j MASQUERADE
iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
iptables -t nat -A PREROUTING -i wlp4s0 -p tcp --dport 3389 -j DNAT --to-destination 10.10.254.1:3389
ip route add default via 172.167.0.254 dev wlp4s0
ip route flush cache
- 方案二:不启用 SNAT,设置数据包转发 vnet1 网络
WiFi无网线笔记本安装Proxmox VE记录 - 开发调优 - LINUX DO
配置vnet1网络
nano /etc/network/interfaces.d/sdn
设置数据包转发
auto vnet1
iface vnet1
address 192.168.3.1/24
bridge_ports none
bridge_stp off
bridge_fd 0
ip-forward on
post-up iptables -A FORWARD -i wlp4s0 -j ACCEPT
post-up iptables -A FORWARD -o wlp4s0 -j ACCEPT
post-up iptables -A FORWARD -i vnet1 -j ACCEPT
post-up iptables -A FORWARD -o vnet1 -j ACCEPT