当前位置:首页 > 知识

域名绑定的ip ping不通

下午三点,域名我盯着终端里那行“Request timed out”,绑定心里骂了一句。域名域名解析正常,绑定ping 域名返回的域名 IP 地址也正确,可就是绑定不通。这不是域名第一次了,每次遇到这种问题,绑定我都得从头排查一遍,域名像拆一颗俄罗斯套娃。绑定

先说说最常见的域名坑——服务器防火墙。去年给客户部署一套系统,绑定域名解析到云主机,域名ping 死活不通。绑定远程连上服务器,域名iptables 规则一看,INPUT 链默认 DROP,只放行了 22 端口。ICMP 协议被拦在门外,ping 自然没反应。但诡异的是,网站居然能打开,因为 80 端口是放行的。这种“半通不通”的状态最迷惑人,你以为是网络问题,其实是安全策略在作祟。解决办法很简单,加一条规则允许 ICMP,或者干脆把默认策略改成 ACCEPT,再单独封禁危险端口。

还有一种情况,域名绑定的 IP 是公网 IP,但服务器在 NAT 后面。办公室内部搭建的邮件服务器,映射到公网 IP,域名也解析过去了。从外网 ping 不通,但邮件收发正常。原因在于路由器只做了 TCP 端口映射,没做 ICMP 转发。很多家用级路由器默认只转发 TCP/UDP,ping 的 ICMP 包到了路由器就被丢弃了。这种问题,除非你有路由器管理权限,否则只能接受“能访问但 ping 不通”的现实。也别太纠结,HTTP、SMTP 这些服务走 TCP,不影响使用。

再往深了挖,可能是 IP 被云服务商屏蔽了。腾讯云和阿里云都有安全组和云防火墙,默认可能禁 ping。今年三月份,我手头一台香港轻量服务器,新绑了个域名,ping 不通,但 SSH 能连上。检查了系统内防火墙,没问题。最后登录云控制台,发现安全组入站规则里没有放行 ICMP 协议。添加一条“允许所有 ICMP”的规则后,立刻通了。这类问题,你得先看云平台的控制面板,别一上来就折腾系统配置。

还有一种冷门原因——域名解析到 IP 的路径上,有运营商做了 ICMP 限速或屏蔽。我遇到过国内某小运营商,访问海外服务器时,ping 包全部丢失,但 TCP 连接正常。用 mtr 工具追踪路由,发现丢包发生在某个中间节点。这种情况基本无解,除非换线路或者用 TCP ping 工具测试。说实话,遇到这种问题,我一般直接放弃 ping,改用 `nc -vz IP 端口` 来测试连通性,反而更实用。

最后说个容易忽略的细节——本地网络环境。公司内网禁 ping 外网,或者路由器设置了禁止 ICMP 回显。我自己就犯过这毛病,笔记本连着公司 WiFi,回家后忘了断开 VPN,导致所有 ping 都超时。检查本地防火墙和路由表,往往能省下半小时排查时间。

说这么多,其实就想表达一个意思:ping 不通,不代表服务不可用。先确认端口通不通,再逐层排查防火墙、安全组、NAT 映射。别在 ping 上死磕,换个工具,换个思路,可能一分钟就解决了。如果以上都试过了还是不行,那就看看是不是域名解析出了问题——用 `dig` 或 `nslookup` 确认下返回的 IP 是不是你预期的那个。毕竟,域名绑错 IP 这种事,我也干过不止一回。

分享到: