|
手机浏览器打开公司官网,同样页面秒开,网打开电脑打图文并茂。站手同一时刻,同样坐在电脑前的网打开电脑打同事却对着屏幕上的“无法访问此网站”干瞪眼。这不是站手个例,我上周就碰见三次。同样问题不在网站,网打开电脑打在于你用的站手网络和设备,更准确地说,同样是网打开电脑打DNS解析和HTTP协议版本在捣鬼。 手机走的站手是移动数据,电脑连的同样是办公室Wi-Fi。两个网络出口不同,网打开电脑打DNS服务器也不同。站手手机运营商的DNS缓存里,存的还是网站旧IP地址——那个服务器早换掉了,但缓存没刷新。电脑用的企业DNS却已经更新到新IP,结果它去访问新地址,偏偏新服务器防火墙只放行了IPv6,没配IPv4,电脑端默认走IPv4,自然撞墙。手机端恰好解析出IPv6地址,畅通无阻。 这事儿我亲自验证过。拿一台旧笔记本,关掉Wi-Fi,插手机热点,再访问那个网站——居然打开了。问题不在网站本身,在于办公网络到服务器之间的链路。后来查出来,是办公室路由器上有一条过期的静态路由,把发往该网站IP段的包全扔进了黑洞。手机走蜂窝网,绕开了这条烂路由,幸免于难。 还有种情况更隐蔽,牵扯到TLS握手。网站启用了HTTP/3,基于UDP的QUIC协议。手机浏览器和系统都支持,电脑上的Chrome却因为某个扩展或组策略禁用了QUIC。于是电脑尝试用TCP 443连接,而服务器那边UDP端口正常、TCP端口却响应超时——负载均衡配置错了。手机用UDP一路畅通,电脑用TCP卡在半路。 别急着怪网站管理员。有时候是你自己的电脑hosts文件里残留了旧记录。我见过一个案例,某员工几年前手动改过hosts指向测试服务器,后来测试服务器下线,那条记录没删。结果手机正常,电脑每次解析到不存在的内网IP,当然打不开。清掉那行字,立竿见影。 说句实在话,遇到“手机能开、电脑不能开”这种怪象,先别重启路由器,也别急着重装系统。拿手机开热点给电脑连,如果电脑能开,问题出在原有网络上——检查DNS、路由、防火墙。如果电脑连热点还是打不开,那就把矛头指向电脑本身——查hosts、查代理设置、查浏览器插件,甚至查系统时间是否错乱导致TLS证书验证失败。 我见过最离谱的一次,是电脑的“自动代理检测”开着,它去局域网里找PAC文件,找到个过期的配置,把所有外部请求都代理到一个已关停的服务器上。手机从不理睬这个PAC,所以一切正常。关掉那个开关,世界清净了。 网络这东西,玄学少,配置多。手机能开,至少证明网站活着,服务器没挂。剩下的,就是顺着链路一层层扒。别慌,也别瞎猜,拿排除法一步步来,多半十分钟内能揪出元凶。 |