OCI 专属网络拓扑图
- 你的实例在 VCN 里
- 实例挂在 Subnet 里
- 实例通过 VNIC 接入网络
- 实例有 Private IP
- 这个 Private IP 绑定了一个 Public IP
- 通过 Internet Gateway 对公网通信
- Route Table / Security List / NSG 共同参与访问控制
flowchart LR
User["你的电脑 / 公网用户"]
subgraph OCI["OCI(按你当前场景)"]
subgraph VCN["VCN 10.0.0.0/16<br/>你的虚拟云网络"]
IGW["Internet Gateway<br/>公网入口 / 出口"]
RT["Route Table<br/>0.0.0.0/0 -> IGW"]
SL["Security List<br/>子网级安全规则"]
subgraph Subnet["Public Subnet 10.0.0.0/24<br/>注意:子网仍然是私网网段"]
SubnetCfg["Subnet 私网地址池"]
VNIC["Primary VNIC<br/>实例主网卡"]
PrivIP["Private IP<br/>10.0.0.103"]
VM["OCI Instance<br/>你的云服务器"]
OSFW["实例防火墙<br/>iptables / firewalld"]
APP["SSH / Nginx / App"]
SubnetCfg --> VNIC --> PrivIP --> VM --> OSFW --> APP
end
NSG["NSG<br/>VNIC级安全规则"]
end
end
PIP["Public IP<br/>147.224.x.x"]
User -->|访问 147.224.x.x:22/80/443| IGW
PIP -.绑定到.-> PrivIP
RT -.关联到.-> SubnetCfg
SL -.关联到.-> SubnetCfg
NSG -.绑定到.-> VNIC
IGW -->|入站流量| SL
SL -->|规则检查| NSG
NSG -->|规则检查| VNIC
APP -.响应流量.-> VNIC
VNIC -.按默认路由返回.-> RT
RT -.-> IGW
IGW -.-> User
1 VCN 是什么
图里最外层的:
- VCN 10.0.0.0/16
它表示:
这是你在 OCI 里创建的一整张虚拟私有网络
不是 Oracle 的全网。
2 Subnet 是什么
VCN 里面的:
- Public Subnet 10.0.0.0/24
它表示:
这是 VCN 里的一段子网
而且要特别记住:
即使叫 Public Subnet,它通常也仍然是私网 CIDR。
也就是说:
10.0.0.0/24是私网- 不是公网地址段
3 实例真正通过谁接入网络
不是实例直接接到 Subnet。
而是:
实例通过 VNIC 接入 Subnet
所以图里是:
- Subnet
- VNIC
- Private IP
- Instance
4 Public IP 到底属于谁
图里我专门画了这一条:
Public IP -.绑定到.-> Private IP这就是你前面最困惑的点。
意思是:
Public IP 不是 Subnet 自己的地址段,而是绑定在这个 VNIC 的 Private IP 上的对外地址。
所以实例仍然在私网里,只是多了一个公网入口。
5 公网访问为什么能进来
路径是:
公网用户
-> Internet Gateway
-> Security List / NSG 检查
-> VNIC
-> 实例
-> 实例防火墙
-> 应用也就是:
- 有公网 IP 还不够
- 还要有 IGW
- 还要有 安全规则
- 还要有 系统防火墙
- 还要应用本身在监听端口
6 Route Table 在哪一步起作用
很多人会误解成:
入站流量每一步都在“走路由表”
更准确地说:
Route Table 对“回包”和“出站”特别关键。
所以图里我把回包路径画成了:
应用响应
-> VNIC
-> Route Table
-> Internet Gateway
-> 公网用户如果没有:
0.0.0.0/0 -> Internet Gateway就可能出现:
- 请求进来了
- 但回包回不去
- 于是你感觉“连不上”
7 你的公网访问路径图(更直观版)
如果你想看“访问过程”,这张更容易理解:
sequenceDiagram
participant U as 你的电脑
participant IGW as Internet Gateway
participant SEC as Security List / NSG
participant V as VNIC
participant VM as OCI Instance
participant F as OS 防火墙 / 应用
U->>IGW: 访问 Public IP:22/80/443
IGW->>SEC: 进入 VCN 后进行规则检查
SEC->>V: 允许后送到对应 VNIC
V->>VM: 进入实例
VM->>F: 检查系统防火墙和服务监听
F-->>U: 正常响应
Note over VM,IGW: 回包依赖 Route Table:0.0.0.0/0 -> Internet Gateway
你现在可以把整套关系记成一句话
实例实际在 VCN 的私网 Subnet 中,通过 VNIC 拥有 Private IP;Public IP 绑定在这个 Private IP 上;公网流量通过 Internet Gateway 进入 VCN,经 Security List / NSG 检查后到达 VNIC,再进入实例;而实例回包则依赖 Route Table 通过 IGW 返回公网。