游客发表
你点开一个收藏夹里的链接,浏览器转了两圈,网站然后甩出一句“无法访问此网站”。打不打开刷新三次,网站换浏览器,打不打开甚至重启路由器,网站结果都一样。打不打开这种时候,网站大多数人第一反应是打不打开“网站挂了”,但实际情况往往更复杂——网站可能活得好好的网站,只是打不打开你通往它的路被堵了。
去年我想查一个国外开源项目的网站文档,域名是打不打开 docs.example.dev。家里宽带打不开,网站手机4G却秒开。打不打开同一时间、同一设备,只是换了网络出口。这说明问题不在网站本身,而在你到它之间的某段链路。最常见的原因就那几类:DNS污染、IP被墙、或者网站自己配了地域限制。
先别急着找工具。打开终端,敲 ping docs.example.dev。如果返回的是 127.0.0.1 或者某个明显不对的IP(比如 0.0.0.0),那基本就是DNS被污染了。你的电脑问“这个域名对应哪个IP”,中间有人抢答了一个假地址。这时候换DNS服务器就行。国内可以用 223.5.5.5(阿里)或 119.29.29.29(腾讯),国外就是 1.1.1.1 或 8.8.8.8。改完刷新DNS缓存,Windows下敲 ipconfig /flushdns,Mac是 sudo killall -HUP mDNSResponder。
如果换了DNS还是打不开,但IP能ping通,那大概率是SNI阻断。你访问的是HTTPS网站,握手时浏览器会明文发送你要访问的域名,防火墙看到这个域名就直接掐断连接。表现就是:能ping通IP,但浏览器一直转圈直到超时。这种情况改DNS没用,因为问题出在TLS握手阶段。
我试过一个笨办法但很有效:用 curl -v https://docs.example.dev 看握手卡在哪一步。如果卡在 Client hello 之后没有 Server hello,那就是SNI阻断没跑了。解决办法要么用代理,要么用支持ESNI/ECH的浏览器(目前还不太普及),要么直接找该网站的IP,在hosts文件里写死,然后通过IP访问——但很多网站会拒绝这种访问方式,因为证书不匹配。
代理是最直接的。但别随便下那些来路不明的“免费加速器”。我见过有人为了打开一个技术博客,装了个小厂VPN,结果浏览器主页被劫持,搜索全跳广告。靠谱的做法是用开源工具自己搭,或者买口碑好的商业服务。Clash、V2Ray这些名字你应该不陌生,配置稍微有点门槛,但网上教程一抓一把。关键是别贪便宜,月付几块钱的那种,大概率在拿你的流量做别的事。
还有一类情况是网站自己限制。比如某些流媒体只允许特定国家IP访问,你挂了个美国节点,但它检测到你是数据中心IP,照样拒绝。这种时候得用住宅代理,贵,但没办法。我为了看一个日本电视台的直播,试了五个节点才找到一个能用的。不是技术问题,是对方的风控策略在升级。
最后说个容易被忽略的:本地hosts文件被改。有些破解软件或者流氓插件会往hosts里写一堆 0.0.0.0 的条目,把常见网站全指向本地。打开 C:\Windows\System32\drivers\etc\hosts(Windows)或 /etc/hosts(Mac/Linux),看看有没有奇怪的条目。有就删掉,保存,刷新DNS。
打不开的网站,原因千奇百怪,但排查思路就一条:先确定是域名解析问题、连接阻断问题,还是网站自身限制。ping和curl两个命令能帮你省下大量瞎折腾的时间。别一上来就重装系统,那没用。
```友情链接