追随她的旅程

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 网络。


其他方案

网络接口配置文件
## /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
配置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

#PVE #Debain #NAT #网络