绑定弹性公网 IP 后无法访问外网,通常不是 IP 本身的问题,而是安全组规则、路由表配置或操作系统防火墙拦截了流量,建议优先检查控制台安全组放行状态。
先说结论:大部分情况是安全组未放行出方向流量,或操作系统内部防火墙策略限制,需按网络层级逐一排查。
- 先确认控制台安全组规则是否放行出方向流量
- 检查操作系统内部防火墙配置(生产环境谨慎操作)
- 验证路由表指向及 DNS 解析是否正确
命令速用版
登录实例后,可通过以下命令快速检查网络连通性与配置:
ping 8.8.8.8 curl -I https://www.tencent.com ip addr show ip route show nslookup www.tencent.com
若 ping 不通但 IP 配置存在,重点查安全组;若 IP 配置缺失,查绑定状态;若 ping 通 IP 但域名不通,查 DNS。
为什么会这样
弹性公网 IP 是通过 NAT 方式映射到云服务器网卡上的,数据包流出需要经过云平台的安全组过滤、路由表转发,最后还要通过操作系统内部的防火墙。任何一个环节拦截了出方向流量,都会导致无法访问外网。此外,如果路由表没有默认路由指向网关,数据包也不知道该往哪里发送。
分步处理
1. 检查控制台安全组:登录腾讯云控制台,进入云服务器 CVM -> 实例,点击实例 ID 进入详情页,查看关联的安全组。检查“出方向”规则,确保有一条允许所有流量(0.0.0.0/0)或特定端口的规则。默认情况下出方向通常是放行的,但可能被人为修改。
2. 检查路由表:在控制台进入私有网络 VPC -> 路由表,查看该实例所属子网关联的路由表。确认是否存在目的端为 0.0.0.0/0 且下一跳类型为“公网网关”或“互联网网关”的路由条目。
3. 检查操作系统网络配置:登录系统执行 ip addr 确认内网 IP 配置是否正常。注意 EIP 通常为 NAT 映射,操作系统内看到的仍是内网 IP,无需看到 EIP 本身。执行 ip route show 确认默认路由指向正确网关。
4. 检查操作系统防火墙:临时关闭 firewalld 或 iptables 测试(生产环境请谨慎操作,建议仅在测试窗口期进行,验证后需恢复)。例如 CentOS 执行 systemctl stop firewalld,Ubuntu 执行 ufw disable。若关闭后恢复,则需调整防火墙规则而非长期关闭。
5. 检查 DNS 解析:若 ping 通 IP 但无法访问域名,执行 nslookup www.tencent.com 或 dig www.tencent.com。若无返回 IP,检查 /etc/resolv.conf 配置是否正确。
怎么验证是否生效
在实例内部执行 ping 114.114.114.114 测试 ICMP 连通性,执行 curl -I https://www.qq.com 测试 HTTP 连通性。若两者均成功,说明外网访问已恢复。同时可在本地电脑尝试 ping 该弹性公网 IP,确认入方向也正常(如需对外提供服务)。
常见坑
1. 安全组方向混淆:安全组分为入方向和出方向,访问外网主要看出方向规则,但部分用户误只配置了入方向。
2. 操作系统防火墙重启生效:临时关闭防火墙验证后,忘记重新开启或配置规则,导致重启后服务不可用或再次被拦截。
3. 弹性公网 IP 未真正绑定:在控制台看到有 IP 资源,但未点击“绑定”到具体实例,导致实例仍只有内网 IP。
4. 多网卡路由冲突:若实例挂载了多块网卡,默认路由可能指向了错误的网卡网关,导致流量无法从绑定 EIP 的网卡流出。