公网网卡和私网网卡

公网网卡和私网网卡

什么是网卡?公网网卡和私网网卡有什么区别?

在云服务器、企业网络架构中,经常会看到:

  • 网卡(NIC)
  • 公网网卡
  • 私网网卡
  • ENI(弹性网卡)
  • 内网 IP
  • 公网 IP

很多人容易混淆。

先记一句话:

网卡是服务器连接网络的接口,公网网卡负责连接互联网,私网网卡负责连接内部网络。


一、什么是网卡(NIC)?

网卡:

Network Interface Card(网络接口卡)

简单理解:

网卡就是服务器的“网络插座”。

电脑想联网,需要网卡。

例如:

服务器 CPU / 内存 / 硬盘 │ 网卡 │ 网络

网卡负责:

  • 发送数据
  • 接收数据
  • MAC 地址管理
  • 网络通信

一个服务器可以有多个网卡吗?

可以。

例如:

普通电脑:

网卡1 ↓ WiFi

服务器:

网卡1 ↓ 公网 网卡2 ↓ 内网

甚至:

服务器 ├── eth0 公网网卡 ├── eth1 私网网卡 └── eth2 管理网卡

二、公网网卡是什么?

公网网卡:

顾名思义:

连接互联网的网卡。

例如:

服务器:

公网 IP: 120.55.xxx.xxx

用户:

浏览器 | | Internet | | 服务器公网网卡

用途:

  • 网站访问
  • API 服务
  • SSH 登录
  • 对外提供服务

例如:

你的 App 请求:

https://api.xxx.com

最终:

手机 | 公网 | 服务器公网网卡 | 后端服务

三、私网网卡是什么?

私网网卡:

也叫:

  • 内网网卡
  • 内部网络接口

只用于内部通信。

例如:

企业内部:

服务器A 10.0.1.10 服务器B 10.0.1.20

它们之间:

A <----> B

不经过互联网。


四、公网网卡 vs 私网网卡

公网网卡私网网卡
连接Internet内部网络
IP公网 IP私有 IP
是否暴露外网
速度受公网影响内网高速
安全较低较高
用途用户访问服务通信

五、为什么服务器需要两个网卡?

典型生产环境:

用户 | | Internet | | 公网网卡 | Web服务器 | 私网网卡 | ---------------- | | Redis MySQL

原因:

1. 安全隔离

数据库:

不应该:

公网 | MySQL

否则:

攻击者可能扫描数据库端口。

正确:

公网 ↓ Web服务器 ↓ 内网 ↓ 数据库

2. 性能更好

公网:

可能经过:

  • ISP
  • 路由
  • 防火墙

内网:

通常:

服务器A ↓ 交换机 ↓ 服务器B

延迟更低。


六、云服务器里的网卡是什么?

以云服务器为例。

例如阿里云 ECS:

一台机器:

ECS ├── 主网卡 │ ├── 私网 IP │ └── 公网 IP(映射)

很多时候:

公网 IP 不一定真正绑定在网卡上。

可能是:

公网IP ↓ NAT映射 ↓ 私网网卡

例如:

用户访问: 8.8.8.8 云平台转换: 8.8.8.8 ↓ 10.0.1.10

七、ENI(弹性网卡)是什么?

云厂商经常提:

ENI:

Elastic Network Interface

本质:

可以动态挂载到云服务器的网卡。

例如:

服务器:

ECS1 网卡A 10.0.1.10

后来:

需要增加:

网卡B 10.0.2.20

不用换机器。

直接挂载。

用途:

  • 多 IP
  • 网络隔离
  • 高可用
  • 多业务绑定

八、实际互联网公司架构

一个常见架构:

用户 | Internet | | 公网网卡 | SLB | ECS | 私网网卡 | ---------------- | | Redis RDS

解释:

公网网卡:

负责:

用户 -> 网站

私网网卡:

负责:

服务 -> 数据库 服务 -> Redis 服务 -> MQ

九、和前面几个概念串起来

你前面问过:

  • WAF
  • SLB
  • 前置机
  • 堡垒机
  • 网闸

整个链路可能是:

用户 | | 公网 | CDN | WAF | SLB | 公网网卡 | Web服务器 | 私网网卡 | 数据库 / Redis

运维:

管理员 | 堡垒机 | 管理网卡 | 服务器

总结

记住这几个概念:

名称理解
网卡服务器连接网络的接口
公网网卡对外提供服务,连接互联网
私网网卡内部服务通信,不暴露公网
ENI云上的可插拔网卡
公网 IP外部访问地址
私网 IP内部通信地址

一句话:

公网网卡负责“别人找到你”,私网网卡负责“你的系统之间互相通信”。生产环境通常让公网只接触 Web 层,而数据库、缓存等核心服务全部走私网。