You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在仅拥有1个公网IP的Hetzner专属服务器上,基于Proxmox与OpnSense配置两个独立内部VLAN

在仅拥有1个公网IP的Hetzner专属服务器上,基于Proxmox与OpnSense配置两个独立内部VLAN

嘿,我来帮你搞定这个配置!你的需求完全可以实现——不用额外IP、不用vSwitch,就能在现有架构下分出两个隔离的内部VLAN,把不安全内容和工作环境彻底隔开。下面一步步来:

一、Proxmox侧网络配置修改

首先咱们修改Proxmox的网络配置文件 /etc/network/interfaces,替换掉原来的vmbr99,改成两个绑定VLAN的内部桥:

auto lo
iface lo inet loopback

iface eno1 inet manual

# 公网桥(连接Hetzner公网,OpnSense的WAN口接这里)
auto vmbr0
iface vmbr0 inet manual
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        # 开启VLAN透传,允许VLAN1和VLAN2的流量通过
        bridge-vlan-aware yes
        bridge-vids 1 2

# VLAN1内部桥(对应工作子网10.1.1.0/24)
auto vmbr1
iface vmbr1 inet static
        address 10.1.1.1/24  # 可选:Proxmox在该VLAN的管理IP,方便内部访问Proxmox
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        # 绑定到VLAN1,确保该桥的流量都带VLAN1标签
        bridge-vlan-aware yes
        bridge-vids 1
        bridge-pvid 1

# VLAN2内部桥(对应不安全子网10.1.2.0/24)
auto vmbr2
iface vmbr2 inet static
        address 10.1.2.1/24  # 可选:Proxmox在该VLAN的管理IP
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        # 绑定到VLAN2,确保该桥的流量都带VLAN2标签
        bridge-vlan-aware yes
        bridge-vids 2
        bridge-pvid 2

修改完成后,重启Proxmox网络生效:

systemctl restart networking

二、OpnSense侧配置

接下来在OpnSense里配置VLAN接口、DHCP和防火墙规则,实现隔离和NAT转发:

1. 添加VLAN子接口

进入OpnSense的Web管理界面,按以下步骤操作:

  • 转到 Interfaces > Other Types > VLAN,点击Add
  • 创建第一个VLAN:
    • 父接口选择OpnSense连接到Proxmox vmbr0的那个接口(通常是vmx1或类似命名)
    • VLAN ID 设置为1
    • 点击Save,然后转到Interfaces > Assign,把这个新VLAN接口分配为LAN1(或自定义名称)
    • 编辑LAN1接口,设置IP地址为10.1.1.200/24,勾选Enable,保存并应用
  • 重复上述步骤创建VLAN2:
    • VLAN ID 设置为2,分配为LAN2,IP地址设为10.1.2.200/24

2. 配置DHCP(可选)

如果需要给虚拟机自动分配IP:

  • 转到 Services > DHCPv4,分别选择LAN1和LAN2接口
  • 开启DHCP服务,设置地址池(比如10.1.1.10-10.1.1.100和10.1.2.10-10.1.2.100),保存并应用

3. 设置防火墙隔离规则

关键一步,确保两个VLAN无法互相访问:

  • 转到 Firewall > Rules,选择LAN1接口:
    • 添加规则:允许所有流量出站到公网,但禁止访问10.1.2.0/24子网
  • 同样选择LAN2接口:
    • 添加规则:允许所有流量出站到公网,但禁止访问10.1.1.0/24子网
  • 检查Firewall > NAT > Outbound,确保自动生成的NAT规则覆盖了10.1.1.0/24和10.1.2.0/24子网(OpnSense默认会自动配置,若没有则手动添加)

4. 验证VLAN标签剥离

因为OpnSense的WAN接口直接连接到Proxmox的vmbr0(对应物理网卡eno1),且WAN接口未配置VLAN,所以所有内部VLAN的流量经过NAT后,都会以无VLAN标签的形式发送到Hetzner公网,完全符合你的需求。

三、虚拟机配置

在Proxmox的虚拟机设置里:

  • 把工作环境的虚拟机网络接口设置为vmbr1,网关设为10.1.1.200
  • 把不安全内容的虚拟机网络接口设置为vmbr2,网关设为10.1.2.200

四、测试配置

完成所有配置后,做以下验证:

  1. 分别在两个VLAN的虚拟机上测试能否访问公网
  2. 测试同VLAN内的设备能否互相ping通
  3. 尝试跨VLAN ping(比如VLAN1的虚拟机ping VLAN2的IP),应该无法连通,验证隔离效果
  4. 在Proxmox上执行tcpdump -i eno1,检查流出公网的数据包,确认没有带VLAN标签

备注:内容来源于stack exchange,提问作者monikan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 10:58:06