Firefox 访问 Bing 提示 PR_END_OF_FILE_ERROR 的解决方法(Ubuntu)

问题描述

在 Ubuntu 系统下使用 Firefox 浏览器时,出现以下异常:

- 可以正常访问百度等国内网站;
- 但访问 Bing(包括 `bing.com` 或 `it.bing.com`)时,Firefox 报错:
  ```
  建立安全连接失败
  连接到 it.bing.com 时发生错误。 PR_END_OF_FILE_ERROR
  错误代码:PR_END_OF_FILE_ERROR
  ```
- 该错误仅在 Firefox 中出现,其他浏览器(如 Chrome、Edge)可正常打开 Bing。
- 网络环境为仅使用 Wi-Fi,未连接有线网卡。

环境信息

- 操作系统:Ubuntu 20.04 / 22.04(或其他 Linux 发行版)
- 浏览器:Mozilla Firefox(最新稳定版)
- 网络连接:Wi-Fi 上网,无有线网络接入

排查过程

1. 查看系统网络连接

通过 `nmcli` 命令检查当前网络连接状态:

```bash
nmcli connection show
```

输出示例:

```
NAME               UUID                                  TYPE      DEVICE    
602                3c5264e9-07f4-43d2-bc2e-eeb7bd62927b  wifi      wlp0s20f3 
Meta               db42c5d3-1f37-452a-918d-191ca7b31ad2  tun       Meta      
docker0            ace0d78b-623d-440f-8d44-5fc1a120d681  bridge    docker0   
...
```

发现存在一个名为 `Meta` 的连接,类型为 `tun`,设备也为 `Meta`。`tun` 设备通常由 VPN 或代理软件创建,用于接管系统网络流量。

2. 临时禁用可疑连接

尝试禁用该连接:

```bash
sudo nmcli connection down Meta
```

再次用 Firefox 访问 Bing,问题消失,页面正常加载。重新启用该连接后,故障复现。由此确认 `Meta` 虚拟网卡是导致 Firefox 连接失败的根源。

原因分析

`PR_END_OF_FILE_ERROR` 是 Firefox 特有的错误码,表示在 TLS/SSL 握手过程中,服务器端意外关闭了连接。可能的原因包括:

- **VPN/代理干扰**:某些 VPN 或代理软件(特别是透明代理、中间人代理)会尝试解密或修改 HTTPS 流量。如果配置不当,可能导致 TLS 握手信息被破坏,服务器无法正常响应,从而直接断开连接。
- **路由冲突**:虚拟网卡(tun)与物理网卡(Wi-Fi)同时存在时,可能造成路由表混乱,数据包无法正确到达目标服务器。
- **MTU 问题**:tun 设备的 MTU 值设置过小,导致大数据包被丢弃,影响握手过程。

在本案例中,用户并未使用有线网络,因此排除了双网络冲突的可能性。根本原因在于 VPN 软件创建的虚拟网卡持续干扰 Firefox 的网络通信。值得注意的是,该问题仅在 Firefox 中出现,说明 Firefox 的 TLS 实现或网络栈对这类干扰更为敏感。

解决方案

临时解决方法

当遇到 Firefox 无法访问某些 HTTPS 网站时,可以先查看系统网络连接,临时禁用可疑的 VPN/代理连接:

```bash
sudo nmcli connection down <连接名称>
```

`<连接名称>` 可通过 `nmcli connection show` 查看,通常为 `tun` 类型的连接,如 `Meta`、`vpn`、`tun0` 等。

长期解决方案

1. **彻底删除无用连接**  
   如果确认某个 VPN 连接不再需要,可以将其从系统中删除:

   ```bash
   sudo nmcli connection delete <连接名称>
   ```

2. **调整 VPN/代理软件配置**  
   - 检查 VPN 或代理软件的运行模式,避免使用“全局代理”或“解密 HTTPS”功能,建议改为“规则模式”或“直连模式”。
   - 更新软件至最新版本,以兼容新版 Firefox 的 TLS 实现。

3. **设置网络优先级**  
   如果必须同时使用 VPN 和 Wi-Fi,可以通过调整路由表或修改连接的 `never-default` 属性,避免 VPN 成为默认路由,从而减少干扰。

4. **更换浏览器**  
   若短期内无法解决,可暂时使用 Chrome 或 Edge 作为替代,但这不是根本解决之道。

总结

Firefox 的 `PR_END_OF_FILE_ERROR` 错误通常与网络环境中的 VPN、代理或安全软件有关。通过 `nmcli` 命令快速查看系统网络连接,禁用可疑的虚拟网卡,往往能迅速定位问题。本文介绍的方法已在 Ubuntu 系统中验证有效,希望对遇到类似问题的用户有所帮助。

Read more

WebGIS视角:体感温度实证,哪座“火炉”火力全开?

WebGIS视角:体感温度实证,哪座“火炉”火力全开?

目录 前言 一、火炉城市空间分布及特点 1、空间分布 2、气候特点 二、数据来源及技术实现 1、数据来源介绍 2、技术路线简介 三、WebGIS系统实现 1、后端设计与实现 2、前端程序实现 四、成果展示 1、整体展示 2、蒸烤模式城市 3、舒适城市 五、总结 前言         “火炉城市”是中国对夏季天气酷热的城市的夸张称呼。这一说法最早出现在民国时期,当时媒体有“三大火炉”之说,即重庆、武汉和南京,都是长江沿线的著名大城市,分别居于长江的上、中、下游,因夏季气温炎热,被媒体夸张地称为“火炉”。新中国成立后,又有了“四大火炉”之说,

By Ne0inhk
vue-router(vue 路由)基本使用指南(二)

vue-router(vue 路由)基本使用指南(二)

文章目录 * 深入使用 * 导航守卫 * 重定向与别名 * history 配置:指定历史模式 * 路由元信息(meta) * 拓展 * 状态管理(Pinia / Vuex) * Pinia / Vuex 介绍 * Vuex vs Pinia * Pinia 基本使用 * Pinia 使用 Cookies 存储 深入使用 导航守卫 导航守卫用于在路由跳转前、跳转后或解析过程中,添加自定义的逻辑处理,例如权限验证。 * to 和 from 是即将进入的目标路由和当前导航正要离开的路由 * next 是一个函数,该函数用于控制路由的跳转。 * next():继续执行路由。 * next(false):中断当前路由,如果浏览器的 URL 改变了,那么 URL 会回到 from

By Ne0inhk
前端HTML、CSS、JS、VUE 汇总

前端HTML、CSS、JS、VUE 汇总

前言 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 使用VS Code运行前端代码 在VS Code上安装前端插件 正在更新中~ ✨ 文章目录 * 前言 * HTML+CSS * JS * Vue2 * Vue3 提示:这里可以添加本文要记录的大概内容: HTML+CSS 学习 https://developer.mozilla.org/zh-CN/docs/Learn/CSS 学习路线知识定位HTML基础标签、表格、表单、按钮、div、单元格合并CSS基础基本语法、选择器、使用方式、优先级、层叠样式、继承特性CSS常用样式字体样式、文本样式、列表样式、背景样式、鼠标样式、伪类样式、设置透明度CSS 内容盒子与边框盒子边框、内边距与外边距CSS+HTML实现元素定位相对定位、绝对定位、

By Ne0inhk
从传统Web到API驱动:使用Django REST Framework重构智能合同审查系统

从传统Web到API驱动:使用Django REST Framework重构智能合同审查系统

目录 1. 我们面临的三个核心问题 2. 场景实战:合同列表展示 2.1 传统 Django 模版系统实现 2.2 解耦后的 Django + DRF + 前端分离实现 3. 进阶技术实践 3.1 认证升级:集成 JWT 与自定义响应 3.2 复杂业务逻辑处理:APIView 的灵活性 4. 遇到的挑战与解决方案 挑战一:跨域资源共享 (CORS) 挑战二:文件上传与静态资源管理 5. 总结 在智能合同审查系统的开发演进过程中,我们经历了一次重要的架构转型:从传统的 Django 模版系统(MVT)迁移到了前后端分离的 API 驱动架构(Django REST

By Ne0inhk