服务器的出口IP和入口IP

在服务器网络中,入口 IP(Ingress IP)出口 IP(Egress IP) 是两个非常常见但容易混淆的概念。可以简单理解为:

  • 入口 IP:别人访问你服务器时看到的 IP
  • 出口 IP:你的服务器访问外部时使用的 IP

我用一个简单的网络流程帮你理解。


一、入口 IP(Ingress IP)

定义:
外部客户端访问服务器时,请求进入服务器所使用的 IP 地址。

场景举例:

用户在浏览器访问:

1
https://example.com

DNS 解析得到:

1
1.2.3.4

浏览器访问的就是 1.2.3.4,这个 IP 就是服务器的 入口 IP

数据流向:

1
2
用户浏览器  --->  服务器入口IP
(请求进入服务器)

常见情况

入口 IP 可能是:

  1. 服务器公网 IP
  2. 负载均衡 IP
  3. CDN 节点 IP
  4. 反向代理 IP

例如:

1
用户 -> CDN -> 负载均衡 -> 服务器

入口 IP 对服务器来说可能是:

  • CDN IP
  • LB IP
  • Nginx IP

二、出口 IP(Egress IP)

定义:
服务器主动访问外部网络时,对外表现出来的 IP 地址。

场景举例:

你的服务器调用第三方 API:

1
https://api.weixin.qq.com

微信服务器看到的请求来源 IP 就是:

1
你的服务器出口IP

数据流向:

1
2
服务器出口IP ---> 第三方服务
(请求离开服务器)

三、最常见的真实架构

很多云服务器都会出现:

1
2
公网IP:1.2.3.4
内网IP:10.0.0.5

例如在:

  • Alibaba Cloud
  • Huawei Cloud
  • Amazon Web Services

架构通常是:

1
2
3
4
5
6
7
8
9
10
11
用户

公网IP (入口IP)

ECS服务器

NAT网关

公网IP (出口IP)

第三方服务

因此:

类型 含义 示例
入口 IP 外部访问服务器的 IP 用户访问网站
出口 IP 服务器访问外部的 IP 调用第三方 API

四、入口 IP 和出口 IP 可能不同

例如:

服务器没有公网 IP,只能走 NAT 网关

1
2
服务器内网IP:10.0.0.5
NAT公网IP:47.100.10.20

情况:

访问服务器

1
用户 -> 47.100.10.10 (负载均衡)

服务器访问外部

1
服务器 -> NAT -> 47.100.10.20

所以:

类型 IP
入口IP 47.100.10.10
出口IP 47.100.10.20

五、为什么要区分入口 / 出口 IP

主要用于:

1 IP 白名单

很多第三方 API 要求:

1
只允许指定 IP 调用

你就要提供:

服务器出口 IP


2 防火墙策略

例如:

1
允许来源 IP

这个就是:

入口 IP 来源


3 安全审计

例如日志:

1
2
client_ip
source_ip

分析访问来源。


六、最简单的一句话理解

入口 IP:别人访问你用的 IP
出口 IP:你访问别人用的 IP