从“80/443无法访问”到标准机房架构:我的 4 公网 IP + PVE + RG-NBR6120-E 实战记录

最近折腾了一套自己的“小型机房”环境,设备并不算特别豪华,但已经属于标准企业级结构:

  • 电信企业公网专线

  • 4 个公网 IPv4

  • 锐捷 RG-NBR6120-E 企业路由器

  • RG-ES224GC 千兆交换机

  • Dell R730(88vCPU / 256GB RAM)

  • PVE(Proxmox VE)虚拟化平台

原本只是想简单跑:

  • Web ×2

  • Minecraft Server ×1

结果在部署过程中,遇到了一个非常经典的问题:

为什么 Web 用 80 / 443 / 8080 不通,但 9099 / 9080 这种高端口却完全正常?

这篇文章就详细记录一下整个问题、原因分析以及最终的标准机房架构方案。


一、当前网络结构

整体架构如下:

公网 IP 一共 4 个。


二、最开始的配置方式

最开始我是这样做的:

公网IP

服务

IP1

Web1

IP2

Web2

IP3

MC Server

IP4

管理

然后在 RG-NBR6120-E 上:

  • 配置 WAN 静态 IP

  • 添加 IP Alias(多个公网IP)

  • 使用 NAT 1:1 映射

例如:

理论上应该没有问题。


三、奇怪的问题出现了

结果发现:

端口

状态

80

不通

443

不通

8080

部分异常

9099

正常

9080

正常

也就是说:

“乱七八糟的高端口正常,标准 Web 端口却死活不行。”

最开始我还以为:

  • 是运营商封端口

  • 或者是 PVE 有问题

  • 又或者是 nginx 配置错了

但后来发现,问题其实是多层叠加的。


四、真正原因分析

1. 企业路由器对 80/443 的特殊处理

RG-NBR6120-E 属于企业网关。

很多企业路由默认会:

  • 对 HTTP/HTTPS 做安全策略

  • 对 Web 管理做保留

  • 对 80/443 做应用识别

导致:

80/443 不一定会像普通端口一样直接 NAT

而 9099、9080 这种端口:

  • 不属于标准业务端口

  • 没有系统策略

  • 不会被特殊处理

所以它们反而最稳定。


2. NAT 规则优先级问题

企业路由不像家用路由。

在 RG 系列里:

  • 80/443 可能会被系统规则优先匹配

  • 你的 NAT 规则并不是最高优先级

于是:

请求到达路由器后
→ 被系统规则截获
→ 根本没转发到 VM

3. PVE 内部服务占用

PVE 本身也会占用:

8006(HTTPS)

部分情况下:

  • Docker

  • nginx

  • apache

也可能已经监听了 80 / 443。

最终就会导致:

公网请求根本没到目标 VM

五、最终解决方案

后来我放弃了“每个网站直接暴露80/443”的方式。

改成了:

核心方案:统一反向代理入口


六、最终标准机房架构

现在的结构:

IP

用途

IP1

Nginx反向代理入口

IP2

Web2直连备用

IP3

Minecraft Server

IP4

管理 / VPN / SSH


七、Nginx 统一反向代理

新增一个 VM:

10.0.0.10

专门用于:

  • 80

  • 443

  • SSL证书

  • 多站点分流

结构变成:


八、这样做的好处

1. 所有网站统一管理

不用每个 VM 都暴露 443。


2. SSL 证书更简单

直接:

  • Let's Encrypt

  • 或 Cloudflare

统一管理。


3. Web 服务完全内网化

Web VM:

只开放内网

安全性直接提升。


4. 80/443 不再冲突

因为:

只有反代服务器使用80/443

其他服务全部高端口。


九、Minecraft 独立公网IP

MC Server 最终单独使用:

IP3
25565 TCP/UDP

原因很简单:

Minecraft:

  • 长连接

  • 高并发

  • 容易被攻击

不适合和 Web 共用入口。


十、PVE 网络规划

最终网络:

VLAN

用途

VLAN10

Web

VLAN20

Minecraft

VLAN99

管理

PVE 使用:

vmbr0 → 业务
vmbr1 → 管理

十一、为什么不用“4个全部1:1 NAT”

一开始我也想:

4个IP全部1:1 NAT

后来发现不合理。

原因:

1. IP 浪费

Web 完全可以走反向代理。


2. 管理入口不安全

PVE 不应该直接暴露。


3. 后期扩展困难

未来:

  • API

  • Docker

  • 面板

  • VPN

都需要端口资源。


十二、最终推荐方案

最终我采用:

IP

类型

IP1

反向代理入口

IP2

Web直连/备用

IP3

MC独立

IP4

管理/VPN

这是目前最稳定的结构。


十三、关于 PVE 宿主机

R730 现在配置:

  • 88 vCPU

  • 256GB RAM

目前运行:

  • Web

  • Minecraft

  • Nginx

  • 管理节点

资源占用其实还很低。

后续还准备:

  • Redis

  • 数据库

  • Docker

  • Grafana

  • Zabbix

甚至还能继续扩 VM。


十四、总结

这次最大的收获其实是:

企业机房环境和家用路由完全不是一个逻辑。

很多时候:

  • 80/443 不通

  • NAT异常

  • 端口正常却访问失败

并不是服务问题。

而是:

企业路由器本身的安全策略 / NAT优先级 / Web策略

导致的。

最终的最佳实践其实很明确:

推荐:

  • Web → Nginx统一反代

  • MC → 独立公网IP

  • PVE → 独立管理IP

  • 80/443 → 只留给反代层

这样才是真正适合长期运行的“小型IDC架构”。