【运维✨】云服务器公网 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 就彻底隐身。
  • 换区域 / 换云厂商,原理一模一样,只是菜单名字不同。
相关推荐
阿里云大数据AI技术2 小时前
阿里云 EMR AI 助手正式发布:从问答工具到全栈智能运维助手
运维·人工智能
你好潘先生7 小时前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
SkyWalking中文站1 天前
认识 Horizon UI · 6/17:Trace 探索器
运维·监控·自动化运维
程序员老赵1 天前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
火车叼位1 天前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
vivo互联网技术1 天前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页
小猿姐2 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
SkyWalking中文站2 天前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维
SkyWalking中文站3 天前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控