【运维✨】云服务器公网 IP 迷雾:为什么本机看不到那个地址?

适合第一次用云服务的新手,5 分钟看懂「弹性公网 EIP」和「端口映射」


故事开场

小 A 买了一台云服务器,厂商给他分配了公网 IP 203.0.113.47

他登录机器,输入 ip a,却怎么也找不到这个地址------只有一张私有网卡 192.168.0.12

更奇怪的是,浏览器访问 203.0.113.47:8080 能看到网页,访问 203.0.113.47:5000 却直接超时。

小 A 陷入迷茫:

「公网 IP 到底在哪?为什么有的端口能进,有的不能进?」


1 分钟原理:云厂商在幕后做了一次「搬家」

云服务厂商为了节省公网地址,会给每台云主机绑定一个 弹性公网 IP(Elastic IP,简称 EIP) ,然后在机房边缘做一次 1:1 NAT

方向 地址变化
公网→私网 203.0.113.47:端口192.168.0.12:端口
私网→公网 192.168.0.12 源地址 → 203.0.113.47 源地址

结果

  • 本机永远看不到 203.0.113.47,只能看到私网 192.168.0.12
  • 公网 IP 像「影子」一样挂在云端,只负责「收包→转发」

2 分钟实验:把「影子」拆开看

① 在本机查地址

bash 复制代码
$ ip a | grep inet
inet 192.168.0.12/24 brd 192.168.0.255 scope global eth0

→ 确实只有私网地址

② 从公网来敲门

bash 复制代码
# 能通(云控制台放行了 8080)
curl http://203.0.113.47:8080

# 超时(云控制台没放行 5000)
curl http://203.0.113.47:5000

→ 能否连通 取决于「安全组 / 防火墙」是否把对应端口映射进来


3 分钟选择:我要不要开放更多端口?

方案 怎么做 优点 缺点
A. 继续加端口映射 在云控制台再开 TCP 5000 入方向 最简单,公网直连 每开一个端口就多一个攻击面
B. 只用 Nginx 反向代理 只保留 80/443,/api/ 转发到 localhost:5000 端口少,易配 HTTPS、限流、WAF 多一次转发,延迟略增

生产环境推荐 方案 B ;快速调试可用 方案 A


4 分钟命令:把 5000 映射进来(方案 A 示例)

  1. 登录云控制台 → 安全组 → 入方向规则
  2. 添加 TCP 5000 允许源 0.0.0.0/0
  3. 立即再测
bash 复制代码
curl http://203.0.113.47:5000

→ 通!


5 分钟总结:一句话背下来

"公网 EIP 是云端的'影子',背后 NAT 到私网;想从公网连新端口,要么去控制台放行,要么让 Nginx 代理,别指望本机能'看到'那个公网地址!"

记住这张图,以后再也不会被「找不到公网 IP」困扰啦!


彩蛋小贴士

  • 如果只想内网用,安全组直接禁止 0.0.0.0,只留公司/校园网段, Shadow 就彻底隐身。
  • 换区域 / 换云厂商,原理一模一样,只是菜单名字不同。
相关推荐
齐齐大魔王11 小时前
linux-线程编程
java·linux·服务器
舒一笑11 小时前
为什么 MinIO 生产部署“默认就是 4 台起步”?
运维
吕司11 小时前
Linux动静态库
linux·运维·服务器
橙露12 小时前
Shell 脚本实战:自动化备份、监控、告警脚本模板
运维·自动化·github
风曦Kisaki12 小时前
#Linux进阶Day05:防火墙+VMware网络+sshd远程管理
linux·运维
wenlonglanying12 小时前
nginx 代理 redis
运维·redis·nginx
REDcker12 小时前
Nagle 算法与 TCP_NODELAY、TCP_CORK 详解
网络·tcp/ip·算法
❀͜͡傀儡师13 小时前
docker部署Antigravity-Manager
运维·docker·容器·antigravity
sg_knight13 小时前
Docker环境下的MinIO安装,以及如何正确配置数据持久化(避坑篇)
运维·docker·容器·minio·ftp·cos·oss
Agent产品评测局14 小时前
物流供应链自动化解决方案选型,全链路提效指南:从硬件集成到AI Agent的演进路径
运维·人工智能·ai·chatgpt·自动化