- 我用这个包设置了一个服务器
apt-cacher-ng
。 - 我配置了一台电脑来使用这个缓存。我
/etc/apt/apt.conf.d/02proxy
用这一行创建了 :
Acquire::http::proxy "http://my-server:3142";
- 我安装了谷歌浏览器。即下载并安装
google-chrome-stable_current_amd64.deb
。
问:后来,我在检查软件更新时发现了一个问题。发生了什么?
在 Ubuntu 桌面 22.04 上,软件更新程序只是说“无法下载存储库信息。请检查您的互联网连接”。
或者在 Debian 11 (GNOME) 上,软件显示弹出错误:
无法下载更新:
E:https://dl.google.com/linux/chrome/deb稳定的 InRelease 尚不可用(来自代理的无效响应:HTTP/1.0 CONNECT 被拒绝(要求管理员启用 HTTPS 隧道)[IP:我的服务器 IP第3142章
apt update
在 Ubuntu 和 Debian 上运行都会显示完整的错误。
最后,如果你使用 Ubuntu 22.04,但切换到使用 GNOME软件应用程序(例如,为了避免卡顿),根本没有错误消息! Chrome 网络浏览器的安全更新似乎将被跳过,且没有任何警告。也许是因为它是旧版本的 GNOME 软件。
测试过的包版本
- 软件更新程序在 Ubuntu 桌面 22.04 上 - 更新管理器 1:22.04.10
- 软件在 Debian 11 (GNOME) 上 - gnome-software 3.38.1-1
- 软件在 Ubuntu 桌面 22.04 上 - gnome-software 3.38.1-1
- apt-cacher-ng 3.6.4-1
答案1
Google Chrome 更新使用加密连接 ( https://
)。该连接无法被拦截和缓存。
首先,我建议允许https://
包存储库绕过缓存。这可以避免您在任何时间内错过安全更新的风险。编辑您使用的 apt 配置文件,并添加第二行,如下所示:
Acquire::HTTP::proxy "http://my-server:3142";
Acquire::HTTPS::proxy "DIRECT";
手册第 8.3 节中解释了替代选项访问 SSL/TLS 远程 (HTTPS)。
如果您想缓存 Google Chrome 软件包
对于 Google Chrome,您应该首先重命名/etc/apt/sources.list.d/google-chrome.list
为local-google-chrome.list
.如果您编辑此文件而不移动它,Google 表示您的更改可能会被他们的 cron 作业或包脚本自动覆盖。
现在您可以编辑该文件。替换这一行:
deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main
有了这个:
deb [arch=amd64] http://HTTPS///dl.google.com/linux/chrome/deb/ stable main
请记住,如果禁用代理,则需要恢复此更改。