浏览器
PR_END_OF_FILE_ERROR:Firefox 握手时连接被断开
PR_END_OF_FILE_ERRORPR_END_OF_FILE_ERROR 的意思是:TLS 握手还没完成,连接就被关掉了。 断开连接的通常是你电脑上的代理或安全软件,也可能是服务器本身。
先判断是网站的问题还是你电脑的问题
外部检测也失败,是服务器的问题;外部正常,问题在本机或本地网络。用 SSL 检测 从外部测:
curl ssl.sh/example.com
- 检测也握手失败:服务器或它的防火墙在断开连接,联系网站方。
- 检测正常,而且 Firefox 里别的网站也报:问题在本地。按下面的顺序检查 Firefox 的代理设置、安全软件和首选项。
- 检测正常,只有你访问这个网站失败:你所在的网络可能在拦截或干扰这个地址,换个网络试试。
原因
5 种原因里只有第 4 种在服务器一侧,其余都出在你的电脑上,最常见的是 Firefox 代理设置、安全软件或 VPN。
1. Firefox 的代理设置
Firefox 可以用自己的代理配置。手动填的代理已经不存在了,或者 PAC 文件加载失败,连接就会被切断。打开“设置 → 常规 → 网络设置”,改成“使用系统代理设置”或“不使用代理”测试。
2. 安全软件或 VPN 客户端
杀毒软件的 HTTPS 扫描、家长控制、上网管控客户端、VPN 和加速器都夹在 TLS 中间,出 bug 或服务断开时就会关掉连接。暂停 HTTPS 扫描或断开 VPN 测试,然后升级软件。见 杀毒软件 HTTPS 扫描。
3. TLS 首选项被改过
改过 security.tls.version.*,或者禁用了 security.ssl3.* 套件,Firefox 提供的东西服务器不接受,有的服务器会直接关闭连接。在 about:config 里把这些名字下加粗(已修改)的条目重置。
4. 服务器或防火墙关闭握手
有些服务器和负载均衡在协议或套件谈不拢、或者防火墙规则拦截客户端时,直接断开 TCP 连接,而不是发送正常的 TLS 告警。在服务器侧检查:
openssl s_client -connect example.com:443 -servername example.com -brief </dev/null
出现 unexpected eof 或 connection reset,就指向服务器或它所在的网络。
5. 配置文件损坏
损坏的配置文件也会导致 TLS 失败,但很少见。在 about:profiles 新建配置文件测试。
在各浏览器/系统上的样子
Chrome 系浏览器把同一个问题报成 ERR_SSL_PROTOCOL_ERROR 或 ERR_CONNECTION_CLOSED,Safari 报无法建立安全连接。
| 浏览器 | 显示内容 |
|---|---|
| Firefox | “建立安全连接失败”,连接到 example.com 时发生错误,代码 PR_END_OF_FILE_ERROR |
| Chrome / Edge / 360 / QQ 浏览器 | ERR_SSL_PROTOCOL_ERROR 或 ERR_CONNECTION_CLOSED |
| Safari | Safari 无法建立安全连接 |
| curl | unexpected eof while reading 或 Connection reset by peer |
站长怎么修
站长要让服务器能完成握手,并排除防火墙、WAF 和连接数上限主动断连。
1. 让服务器能完成握手。 开启 TLS 1.2 和 1.3 及现代套件,TLS 配置生成器 能给出经过测试的配置。
2. 检查防火墙、WAF 和限流规则。 云服务器的安全组、Web 应用防火墙、宝塔的防火墙插件,都可能按地区或频率重置某些客户端的连接。对照报错时间查看它们的日志。
3. 注意资源上限。 TLS 终止服务的 worker 数或连接数上限太低,高峰时新握手会被丢掉。
4. 从外部验证。 用 curl ssl.sh/example.com 并从多个网络测试。只有某一个客户网络失败,就收集它的 IP 段,对照防火墙规则排查。
常见问题
别的浏览器都正常,只有 Firefox 报 PR_END_OF_FILE_ERROR,为什么?
Firefox 有一套独立于系统的代理设置和 TLS 设置。残留的手动代理、卸载后没清理的代理扩展、被改过的 security.ssl3.* 条目,都只影响 Firefox。检查“设置 → 网络设置”,并重置被修改的首选项。
新建一个 Firefox 配置文件有用吗?
有用。新配置文件能正常打开,说明问题出在旧配置文件里的某个设置、扩展或损坏的文件。之后可以用“翻新 Firefox”保留书签和密码、重置其他内容。
VPN 或加速器软件会导致这个错误吗?
会。接管网络连接的 VPN、游戏加速器、网络过滤客户端,配置有误或服务断开时都可能丢弃 TLS 握手。临时断开测试一下,然后更新或重新配置这些软件。