判断阿里云服务器(ECS)的 IP 地址是公网地址还是私有地址,可以通过以下几种方法快速确认:
1. 通过阿里云控制台查看(最直观)
登录 阿里云 ECS 控制台,进入实例列表页面:
- 公网 IP:在“公网 IP"或“网络 IP"列会直接显示一个 IP 地址。如果该列显示为
-或空白,则说明该实例没有绑定公网 IP。 - 专有网络(VPC)下的私网 IP:在“内网 IP"或“私有 IP"列显示的通常是
10.x.x.x、172.16.x.x - 172.31.x.x或192.168.x.x段的地址。 - 经典网络(已逐步淘汰):如果是旧版经典网络,会有单独的“网络 IP”和“内网 IP”区分。
注意:如果实例绑定了弹性公网 IP(EIP),控制台的“公网 IP"列会显示 EIP 的地址;如果没有绑定 EIP 但开启了固定公网 IP,也会显示一个公网地址。
2. 通过命令行命令判断(Linux/Windows)
登录到服务器内部,使用以下命令查看本机 IP 配置:
Linux 系统
# 查看网卡信息(推荐)
ip addr show
# 或者使用传统命令
ifconfig
判断逻辑:
- 公网地址:通常不会出现在
eth0等网卡的本机 IP 列表中(除非做了 NAT 映射)。公网 IP 一般由云厂商的路由器网关分配,服务器内部看到的只是内网 IP。 - 私有地址:你会看到类似以下的地址段,这些就是内网(私有)IP:
10.0.0.0~10.255.255.255172.16.0.0~172.31.255.255192.168.0.0~192.168.255.255
关键点:如果你在服务器内部执行
curl ifconfig.me或curl cip.cc,返回的 IP 才是你的公网出口 IP。如果这个 IP 与你在ip addr中看到的内网 IP 不一致,说明存在公网访问能力(通过 NAT 转换)。
Windows 系统
ipconfig /all
同样观察输出中的 IPv4 地址,符合上述私有网段的即为内网 IP。
3. 通过 IP 地址段特征快速识别
如果你已经获取了一个 IP 地址,可以根据 RFC 1918 标准直接判断是否为私有地址:
| IP 段范围 | 类型 | 是否可在互联网路由 |
|---|---|---|
10.0.0.0 – 10.255.255.255 |
私有地址 | ❌ 否 |
172.16.0.0 – 172.31.255.255 |
私有地址 | ❌ 否 |
192.168.0.0 – 192.168.255.255 |
私有地址 | ❌ 否 |
100.64.0.0 – 100.127.255.255 |
运营商级 NAT (CGNAT) | ❌ 否 (部分云厂商用于特殊场景) |
| 其他所有地址 | 公网地址 | ✅ 是 |
例外情况:
- 如果你的服务器位于经典网络(非 VPC),且购买了公网 IP,那么其内网 IP 可能是
100.x.x.x以外的特定保留段,但这种情况现在较少见。 - 某些云服务商可能会分配特殊的公网 IP 段,但绝大多数情况下,只要不在上述三个私有段内,且能直接被外部 ping 通,即为公网 IP。
总结
- 最简单的方法:登录阿里云控制台,看是否有“公网 IP"列的数据。
- 最准确的方法:在服务器内运行
curl cip.cc,返回的 IP 即为当前对外暴露的公网地址;对比ip addr看到的本地 IP,两者不同则说明有公网映射。 - 特征法:以
10.、172.16-31.、192.168.开头的几乎肯定是私有地址。
PHPWP博客