2025年9月

补充

虚拟机使用 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 使用无线网卡连接 Wi-Fi 步骤 - 文档共建 - LINUX DO
使用无线网卡管理PVE 8.2并通过NAT访问虚拟机 - 开发调优 - LINUX DO
WiFi无网线笔记本安装Proxmox VE记录 - 开发调优 - LINUX DO

主要参照 最简单 PVE 使用无线网卡连接 Wi-Fi 步骤 - 文档共建 - LINUX DO 这里的内容,利用 AI 进行辅助。


输入 ip a 查看无线网卡设备名。

我的设备是 wlp4s0,需要改为你自己的,下面所有命令里都需要注意修改网卡名称。

安装 Wi-Fi 软件包:

apt install -y wpasupplicant iw wireless-tools

不想暴露明文密码?用 wpa-passphrase 生成并存文件,然后写到 /etc/wpa_supplicant/wpa_supplicant-wlp4s0.conf 这个配置文件:

wpa_passphrase YOUR_SSID YOUR_PASSWORD | sudo tee /etc/wpa_supplicant/wpa_supplicant-wlp4s0.conf

YOUR_SSID YOUR_PASSWORD 这两个填写你需要连接的 WiFi 名称和密码,名称最好不要有中文字符。

编辑 /etc/network/interfaces 这个配置:

nano /etc/network/interfaces

修改 Wi-Fi 网卡部分的配置,注意其中的设备名换成你自己的,这里是静态地址:

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

假如用 DHCP 分配地址,修改为:

allow-hotplug wlp4s0
iface wlp4s0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant-wlp4s0.conf

启动

ifup wlp4s0

此时输入 ip a 查看 Wi-Fi 网卡是否正常联网。

打开系统转发的功能

1、创建任意名字的文件(按数字先后加载,数字越大优先级越高,这里用简短名):

sudo nano /etc/sysctl.d/99-ipv4-ipv6-forwarding.conf

2、文件内容填入:

打开 IPv4 转发
net.ipv4.ip_forward=1

打开 IPv6 转发
net.ipv6.conf.all.forwarding=1

3、立即加载新的 sysctl 值,无需重启:

sudo sysctl --system

修改 /etc/network/interfaces 添加 vmbr0 的 NAT 规则

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 iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o wlp4s0 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o wlp4s0 -j MASQUERADE

    post-up ip6tables -t nat -A POSTROUTING -o wlp4s0 -j MASQUERADE
    post-down ip6tables -t nat -D POSTROUTING -o wlp4s0 -j MASQUERADE
iface vmbr0 inet6 auto

重启网络

systemctl restart networking

重启系统即可正常使用 Wi-Fi

在配置 PVE9 无线连接时遇到的问题。


[[解决方案] 更新到Debian 13后网络转发等功能异常?并非错误而是管理机制变更 – 蓝点网](https://www.landiannews.com/archives/110164.html)


在 Debian 13(“Trixie”,开发代号)上,如果想让系统把 IPv4 或 IPv6 数据包从一块网卡转发到另一块网卡(即充当路由器),只需要把内核的 ip_forward 参数打开即可。

Debian 13 已经走的 systemd 路径,最干净的办法是写成 sysctl.d 小配置。

1、创建任意名字的文件(按数字先后加载,数字越大优先级越高,这里用简短名):

sudo nano /etc/sysctl.d/99-ipv4-ipv6-forwarding.conf

2、文件内容填入:

打开 IPv4 转发
net.ipv4.ip_forward=1

打开 IPv6 转发
net.ipv6.conf.all.forwarding=1

3、立即加载新的 sysctl 值,无需重启:

sudo sysctl --system