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。

这为什么是"天坑"?

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

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

【解决方案一:排除干扰】 我意识到 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 联网哈基咪来复制命令。
  • 核心陷阱: Clash 的 TUN 模式 + fake-ip DNS 配置,污染了 DNS 解析,让 ping 和 apt 同时失灵,极大地误导了排错方向。
  • 障眼法: 修复网络后(关闭 Clash),apt 依然 404。
  • 连环坑: 网上搜索大多误导更换镜像源,而apt 配置冲突 (bionic vs oracular) 和 版本 EOL (archive vs old-releases) 两个问题叠加,导致了最终的 404。
  • 闭环终点: 修复 apt 后,才得以回头安装 VMware Tools,彻底解决问题。

问题最终完美解决下班

相关推荐
程序员-Benothing14 小时前
Vim编辑器从入门到精通:模式、快捷键、配置、插件
linux·运维·服务器
‎ദ്ദിᵔ.˛.ᵔ₎15 小时前
linux 进程信号 (上)
linux·服务器
15Moonlight15 小时前
Linux网络(02):Socket 编程 UDP
linux·网络·udp
wuminyu15 小时前
ForkJoinPool窃取线程在扫描其他WorkQueue时的随机采样算法与Phase线程挂起唤醒机制解析
java·linux·c语言·jvm·c++
liulilittle16 小时前
Linux 下 select 测试函数
linux·服务器·网络·数据库·c++·select·c
DongQiShanRen16 小时前
玄龙(上):TICK 主循环——意识心跳怎么跳
linux·jvm·数据库·人工智能·数据挖掘·rust
小此方16 小时前
Linux网络(二十一):深入理解 TCP 异常处理:网线断开、Keepalive 保活机制与 Linux 内核传输层协议源码剖析
linux·网络·tcp/ip
pride.li16 小时前
Python 安装
linux·python·ubuntu
笔墨登场说说16 小时前
centos 8 使用 kafka_2.13-4.3.1.tgz 安装kafka
linux·kafka·centos
luo_guibin16 小时前
Linux系统下OpenSSL升级全流程,新旧版本切换
linux·运维·服务器