Ubuntu24.10禁用该源...+vmware无法复制黏贴“天坑闭环”——从 DNS 诡异解析到 Ubuntu EOL 引发的 apt 404排除折

原对话链接参考gemini对话 感谢哈基咪!

这是一篇折腾记,记录一次试图修复 Ubuntu24.10 虚拟机 apt 功能(无法安全使用更新、禁用该源、404等)的曲折经历。问题看似简单,实则是一个由 VMware Tools 损坏 (无法复制粘贴)、Clash Verge TUN 模式 fake-ip DNS 配置 (导致 ping 失灵和网络"假死")以及 Ubuntu 24.10 版本 EOL(导致源失效)共同构成的"天坑闭环"。

我们将一步步解开这个死循环,为所有遇到类似诡异问题的开发者提供一份终极排错指南。


一、 噩梦的开端:一个无法复制的"死亡循环"

故事开始于一台新安装的 Ubuntu 24.10 (Oracular) 虚拟机。

初始目标: 安装 net-tools (为了使用 ifconfig)。 初始问题: apt-get install net-tools 失败。 标准操作: 运行 apt-get update噩梦降临: 终端返回了满屏的 404 Not Found仓库不再有 Release 文件

"天坑闭环" 形成:

  1. VMware Tools 损坏: 虚拟机无法与主机(Windows/macOS)进行复制粘贴,头疼。
  2. 排错障碍: 我无法将 Gemini 提供的修复命令(通常很长)直接复制到虚拟机终端。
  3. 无奈的变通: 我只能让 Gemini 每次生成"分享链接",然后在虚拟机里的浏览器打开链接,才能复制到命令。
  4. 闭环关键点: 这意味着,虚拟机必须能访问互联网(才能打开 Gemini 分享链接)。
  5. 网络来源: 虚拟机的网络是通过宿主机(我的电脑)上的 Clash Verge 代理提供的。

此时,我还没意识到,这个赖以续命的 Clash Verge,也是我 apt 崩溃的原因之一

二、 排错第一阶段:fake-ip 陷阱与"失灵的 ping"

我首先怀疑是 Ubuntu 官方源(us.archive.ubuntu.com)访问不佳。搜索网络各种经验,在用了清华镜像得到同样的结果,决定切换到国内的阿里云镜像。

操作:

我通过gemini的"分享链接"复制了命令,修改了 /etc/apt/sources.list.d/ubuntu.sources 文件,将源替换为 mirrors.aliyun.com

结果:依然 404!

这就不对劲了。我决定 ping 一下阿里云的域名,此时发现了"灵异事件":

wtf???

思来想去,参考了apt-get update出错清华镜像参考以及Ubuntu系统update时提示源不安全被禁用等,一通操作下来又遇到了证书问题

bash 复制代码
错误:1 http://mirrors.aliyun.com/ubuntu bionic InRelease
  由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32
错误:2 http://mirrors.aliyun.com/ubuntu bionic-security InRelease
  由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32
错误:3 http://mirrors.aliyun.com/ubuntu bionic-updates InRelease
  由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32
错误:4 http://mirrors.aliyun.com/ubuntu bionic-proposed InRelease
  由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32
错误:5 http://mirrors.aliyun.com/ubuntu bionic-backports InRelease
  由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32
正在读取软件包列表... 完成
W: GPG 错误:http://mirrors.aliyun.com/ubuntu bionic InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32
E: 仓库 "http://mirrors.aliyun.com/ubuntu bionic InRelease" 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
W: GPG 错误:http://mirrors.aliyun.com/ubuntu bionic-security InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32
E: 仓库 "http://mirrors.aliyun.com/ubuntu bionic-security InRelease" 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
W: GPG 错误:http://mirrors.aliyun.com/ubuntu bionic-updates InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32

随后参考了GPG 错误由于没有公钥,无法验证下列签名

结果依然是失败的,感觉走远了...然而最让人头疼的是vmware依旧无法复制黏贴外部命令和代码,而参考vmware虚拟机与主机之间拷贝VMware虚拟机和主机间复制粘贴共享剪贴板 得出结论,必须还要先修复apt,完美闭环了!

再次分析

再次把希望寄托给Gemini老师(大token上下文太适合debug了)

诊断:fake-ip DNS 污染! 198.18.1.46!这不是一个随机的私有 IP,这是 Clash TUN 模式下 fake-ip DNS 的典型特征。

根本原因: 经过哈基米提醒,我立刻切回宿主机检查 Clash Verge。果不其然,我开启了 TUN 模式,并且 DNS 模式处于默认的 fake-ip

fake-ip 模式的工作原理:

  1. Clash 的 DNS 服务会劫持所有 DNS 请求。
  2. 不会 返回 mirrors.aliyun.com 的真实 IP。
  3. 相反,它返回一个 198.18.x.x 池中的**"假 IP"**,并自己默默记下"198.18.1.46 对应 mirrors.aliyun.com"。
  4. 当系统(如浏览器)访问这个"假 IP"时,TUN 模式的网卡会捕获这个流量,查询自己的记录,然后将流量转发到真正的 mirrors.aliyun.com

这为什么是"天坑"?

  • 对于浏览器: 完美运行。
  • 对于 pingapt 致命打击!ping 命令会天真地尝试向 198.18.1.46 这个根本不存在于 局域网的"假 IP"发送 ICMP 包,导致 ping 结果诡异(就像我看到的,能 ping 通,但延迟极低,因为它只是 TUN 网卡的本地回环)。而 apt 尝试连接这个假 IP 时,在 TCP 握手阶段就已失败。

(注: 如果当时我用的是 redir-host 模式,Clash 会返回真实 IP,pingapt 都会正常。

【解决方案一:排除干扰】 我意识到 ping 测试已经不可信,apt 的失败是 fake-ip 模式的必然结果。为了得到一个干净的测试环境,我暂时彻底关闭了宿主机上的 Clash Verge

验证: 关闭代理后,ping mirrors.aliyun.com 终于返回了真实的公网 IP:111.51.89.60。网络劫持问题解决!

三、 排错第二阶段:版本冲突与 EOL 的"双重背刺"

我长舒一口气,以为解决了根本问题。我再次运行 apt-get update

结果:他喵的 还是 404!

这次的 404 是真实的 404。IP 地址 111.51.89.60 没错,但服务器说"文件不存在"。

排错升级:诊断配置文件 哈基咪怀疑 apt 的配置文件出了问题。

  1. cat /etc/apt/sources.list
    • 问题发现! 这个旧版配置文件里,竟然还残留着 bionic (Ubuntu 18.04) 的配置!
  2. cat /etc/apt/sources.list.d/ubuntu.sources
    • 这个新版配置文件里,是我们设置的 oracular (Ubuntu 24.10) 配置。

诊断:配置冲突。 apt 同时加载了两个不同时代的版本,不崩溃才怪。

【解决方案二:清理配置】 清空旧的、错误的配置文件,让系统只读取新版配置:

bash 复制代码
echo "" > /etc/apt/sources.list

排错升级:最后的 404 清理配置后,我换了清华源、又换回了官方源 archive.ubuntu.com。网络是通的,配置是纯净的。

结果:依然 404! IP: 91.189.91.83(这是官方服务器的正确IP)

最终诊断:系统版本 EOL (End-of-Life) 至此,我都已经彻底崩溃时,哈基咪激动的告诉我只剩一种可能:oracular (Ubuntu 24.10) 已经"过期"了, 并告知这次一定会成功!

bash 复制代码
Types: deb
URIs: http://old-releases.ubuntu.com/ubuntu/
Suites: oracular oracular-updates oracular-security oracular-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb-src
URIs: http://old-releases.ubuntu.com/ubuntu/
Suites: oracular oracular-updates oracular-security oracular-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Ubuntu 24.10 是一个非长期支持 (non-LTS) 版本,2024 年 10 月发布,支持周期仅 9 个月(约 2025 年 7 月到期)。

一旦版本 EOL,它的所有软件包会从主服务器 archive.ubuntu.com 被下架 ,并迁移到**"旧版本存档服务器"** old-releases.ubuntu.com

【解决方案三:切换 EOL 源】 编辑 /etc/apt/sources.list.d/ubuntu.sources,将所有 archive.ubuntu.com 替换为 old-releases.ubuntu.com

最终验证:

bash 复制代码
apt-get update

抱着试一试的态度,终端终于开始滚动下载......成功了!apt 终于被修复了!(过于激动没来得及截图

四、 打破闭环:修复 VMware Tools

apt 修复后,我们终于可以回头解决那个导致这一切如此痛苦的根源------无法复制粘贴。

原因: 未安装 VMware Tools 的桌面组件。

【解决方案四:安装 VM Tools】 使用刚刚浴火重生的 apt

bash 复制代码
apt-get install open-vm-tools-desktop

安装完成后,重启虚拟机

bash 复制代码
reboot

重启后,久违的丝滑感回来了。复制、粘贴、拖拽,全部恢复正常!这个"天坑闭环"终于被彻底打破。

总结

这次排错是"环环相扣、缺一不可"的经典案例:

  • 闭环起点: VMware Tools 损坏,导致无法复制粘贴。
  • 续命稻草: 必须用 Clash Verge 联网哈基咪来复制命令。
  • 核心陷阱: ClashTUN 模式 + fake-ip DNS 配置,污染了 DNS 解析,让 pingapt 同时失灵,极大地误导了排错方向。
  • 障眼法: 修复网络后(关闭 Clash),apt 依然 404。
  • 连环坑: 网上搜索大多误导更换镜像源,而apt 配置冲突 (bionic vs oracular) 和 版本 EOL (archive vs old-releases) 两个问题叠加,导致了最终的 404。
  • 闭环终点: 修复 apt 后,才得以回头安装 VMware Tools,彻底解决问题。

问题最终完美解决下班

相关推荐
企鹅侠客9 小时前
Linux性能调优使用strace来分析文件系统的性能问题
linux·运维·服务器
奔跑吧邓邓子11 小时前
CentOS 7性能飞升秘籍:实战系统优化与调优
linux·运维·centos·实战·系统优化·性能调优
qinyia11 小时前
WisdomSSH如何高效检查服务器状态并生成运维报告
linux·运维·服务器·数据库·人工智能·后端·ssh
laocooon52385788612 小时前
实现了一个新闻数据采集与分析系统python
linux·服务器·windows
海棠蚀omo12 小时前
解读Linux进程的“摩尔斯电码”:信号产生的原理与实践,掌控进程的生死时速
linux·操作系统
YouEmbedded18 小时前
解码UDP
linux·udp
w***488218 小时前
Linux安装redis
linux·运维·redis
python百炼成钢20 小时前
28.嵌入式 Linux LED 驱动开发实验
linux·运维·驱动开发
西风未眠1 天前
高效编辑之vi/vim常用快捷键汇总
linux·编辑器·vim
_Stellar1 天前
Linux 服务器管理 根目录文件夹权限设置 基于用户组实现安全共享
linux·服务器·安全