Chrome访问网站概率出现err_connection_closed的解决方法

Chrome浏览器访问国内网站正常,打开境外网站出现err_connection_closed,几秒后恢复正常的解决方法。

出现症状

ERR_CONNECTION_CLOSED是一个常见的错误,有时在使用Chrome浏览器尝试访问网站时会发生。一般来讲当web服务器突然关闭连接时,会显示此错误消息。这可能有几个原因,包括网络问题或网站本身的问题。一般来讲刷新页面、清除浏览器缓存、禁用浏览器扩展、重新启动路由器或重置互联网连接都可以解决。在已经路由器翻墙的情况下,还是有一些墙外网站概率性的经常出现这个问题、国内网站却没问题,这让人受不了。其实这主要是DNS问题。

chrome访问网站出现err_connection_closed
chrome访问网站出现err_connection_closed

DNS相关基础知识

现在域名解析方式主要有以下三种。

传统的DNS解析服务使用udp来传输 DNS 协议,无加密,易被篡改,使用的端口是53 。

DoT 全称 DNS over TLS,它使用 TLS 来传输 DNS 协议。他使用的端口是853 。

DoH 全称 DNS over HTTPS,它使用 HTTPS 来传输 DNS 协议。他使用的端口是443。

DoT 和 DoH 都是加密 DNS 的一种方式,区别在于它们采用不同的协议和端口,两个都是域名解析安全扩展协议的一种。由于海外节点的特殊性,无论使用哪个dns查询端口都会遭到严重的干扰,包括返回虚假ip地址、无回应等。

为了解决dns的不可靠,Chrome 维护着一份已知支持 DNS-over-HTTPS 的 DNS 提供商列表。Chrome 使用此列表将用户当前的 DNS 服务提供商与该提供商的 DNS-over-HTTPS 服务相匹配(如果提供商提供的话)。通过保留用户选择的提供商,Chrome 可以保留 DNS 服务提供商提供的任何额外服务,例如家庭安全过滤,从而避免破坏用户的期望。此外,如果 DNS-over-HTTPS 连接出现任何问题,Chrome 将默认回退到用户当前提供商的常规 DNS 服务,以避免任何中断,同时定期重试以保护 DNS 通信。

可能原因

1、打开境外网站出现err_connection_closed,可能是ipv6的问题。只要电脑操作系统和路由器有ipv6连接,且有ipv6 dns查询地址,Chrome获取到了ipv6地址,并尝试连接,由于电脑可能不通ipv6或科学上网软件不知支持ipv6,出现了err_connection_closed。不能访问网站,如果Chrome又获取到了ipv4地址,Chrome会再和解析的ipv4地址连接,这时网站又可以访问了。

2、访问的网站实际并没有aaaa ipv6解析记录,还是出现了err_connection_closed。最大可能是域名目标IP被污染了,也就是说国内DNS服务器给出的是个脏IP ,又或是说GFW抢答了回应IP,域名网站ip被劫持了。虽然路由器段布置了科学上网软件,ssrp也代理了,但是由于是虚假ip不可访问,出现err_connection_closed。后路由器通过国外DNS解析了正确的目标ip,又可以访问。另外路由器如果缓存了脏IP,将TTL到期前都无法访问该网站。

域名解析被污染出现err_connection_closed
域名解析被污染出现err_connection_closed的原因图

3、PMTU (Path MTU Discovery) 黑洞问题,这一般是家庭网络中配置了IPV6网络。 PMTU是计算机网络中的一种标准化技术,用于确定两个 Internet 协议 (IP) 主机之间网络路径上的最大传输单元 (MTU)大小,通常目的是避免IP 数据包分片。在PMTU中,我们发现PMTU工作的核心机制在于主机能够收到中间某个节点发过来的ICMP不可达数据包,并包含了下一跳MTU值。许多网络安全设置如防火墙等会阻止一些 ICMP 消息以保证安全,不回应 ICMP Fragmentation Needed 包,这使得访问某些网站时如果某个包的大小超过了 PMTU,会被无声地丢弃,直到 TCP 协议发现超时丢包进行重传,这非常缓慢。遇到这种情况,我们可以说你和目标服务器的路径上存在 PMTU 黑洞。

此外,IPv6 不支持分片,换句话说可以理解为 IPv6 下所有的包都是带 DF 标记的。中间路由器在遇到包尺寸大于 MTU 的情况时,应该回应 ICMPv6 Packet Too Big 消息。同样的,由于种种原因,某些中间设备可能会直接丢包而不回应 ICMPv6 Packet Too Big 消息,直到 TCP 协议发现超时丢包进行重传。IPv4这个问题一般由于路由器WAN口开启了MSS钳制,使你感觉没这个问题。

解决方法

以下几种方法均可单独尝试,看看到底是何问题,以期解决。

1、在路由器端把该域名强制走代理,或GFWLIST表里增加该网站,强制让该网站走可信上游DNS解析ip。这样就能解决域名被污染的问题。也可以通过路由器配置DNS规则,可以通过SmartDNS、Mosdns等DNS工具配置上游dns,解析出可信目标IP 。我这里通过路由器合理配置SmartDNS,几天使用下来,已经99%的解决了该问题,基本不再出现err_connection_closed。

2、在Chrome浏览器里开启自定义安全DNS功能。让浏览器通过内置的安全DNS查询,高版本Chrome可写入自定义DOT协议的上游DNS查询目标ip。DOT是853端口,一般翻墙路由器不劫持到路由器解析。翻墙路由器劫持的是53端口。注意开启此项功能可能导致访问网站变慢,特别是访问国内网站可能被解析到国外。

打开Chrome设置,找到 隐私和安全性 ,再找到 安全 ,找到 使用安全DNS 选择开启

chrome 隐私及安全
chrome 隐私及安全

选择使用自定义,选择使用google等内置的安全dns。高版本chrome还可以写入自定义的dot服务器域名。

使用chrome内置安全dns
使用chrome内置安全dns

在梯子正常的情况下,访问墙外网站不再出现ERR_CONNECTION_CLOSED错误了。

3、禁用 PMTU 发现,请按照下列步骤操作:单击“开始”菜单,单击“运行”或搜索regedit,然后单击“确定”。进入注册表编辑器。

在注册表中找到下面的项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,在窗口右侧右击鼠标新建DWORD(32位)值,输入 EnablePMTUDiscovery,然后按 Enter回车。双击EnablePMTUDiscovery,在弹出的对话框中“数值数据”框中,输入 0,然后单击“确定”。然后退出注册表编辑器,然后重新启动计算机。

禁用PMTU发现
禁用PMTU发现

这样也可解决访问网站间隙性出现err_connection_closed的提示。

技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/web/1309.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)

  • Ben屋壁纸
    Ben屋壁纸 2024年1月13日 19:07

    一个获取苹果超清壁纸的小程序:Ben屋壁纸 壁纸全部免费下载