Kali Linux更新出错(VMware网络设置错误)(换源后的更新出错)(签名报错)(软件源无法正常定位)
本文旨在解决kali Linux更新出错问题,常见的基础配置问题,及一些基础的命令应用(如vim下对文件的编辑)详情请参阅:kali Linux下载安装及配置(VMware虚拟机)保姆级图文教程_kali linux安装-CSDN博客
希望对您有所帮助
目录
更新日志:
2025年7月18日 发布
2026年6月5日 添加问题定位树,并在软件源无法正常定位项给出使用代理建议
## 快速定位你的问题
执行 `sudo apt update` 后遇到报错,请根据下方流程图快速定位到对应章节:
```text
执行 sudo apt update
│
▼
┌───────────────────────────────────────┐
│ 报错内容是什么? │
└───────────────────────────────────────┘
│
├─── “无法连接” / “Connection failed”
│ │
│ ▼
│ └──→ 【一、网络错误】
│
├─── “数字签名” / “NO_PUBKEY” / “GPG error”
│ │
│ ▼
│ └──→ 【三、签名报错】
│
├─── “404 Not Found” / “无法定位软件包”
│ │
│ ▼
│ └──→ 【二、更新软件源后报错】
│ (或 【四、软件源无法正常定位】)
│
├─── “Temporary failure resolving” / 域名解析失败
│ │
│ ▼
│ └──→ 【一、网络错误】→ DNS配置部分
│
└─── 其他未知报错
│
▼
└──→ 先执行【三、签名报错】中的验证修复,
若无效再查看【四、软件源无法正常定位】
一、网络错误
1、虚机网络设置
在VMware虚拟机环境中这是一个常见报错,一般是因为VMware的网络设置问题,只要关闭虚拟机(若不关闭也可更改可以直接进行,更改后稍候10秒左右生效),然后在[虚拟机] [设置] [网络适配器]中将选项改为“桥接模式”“复制物理连接状态”,或者换“NAT模式”问题基本可以解决。

2、网络配置错误
查看DNS配置
sudo vim /etc/resolv.conf
添加以下内容
nameserver 8.8.8.8
nameserver 1.1.1.1
options edns0 single-request-reopen
扩展方案
或者有条件有需求的可以购买USB无线网卡,可选购支持监听模式的USB网卡(如RTL8812AU芯片型号),第三方电商平台参考价:40-60元


二、更新软件源后报错
一般是软件源更新时间原因与系统本身文件版本不兼容,或者软件源不兼容,比如阿里源就经常报错,建议是更改回官方源或使用稳定的源如清华源或是中科源,但在没有特殊情况下还是建议使用官方源
# 官方源
deb http://http.kali.org/kali/ kali-rolling main non-free contrib
deb http://security.kali.org/kali-security/ kali-rolling/updates main contrib non-free
国内源:
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#浙大
deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
#东软大学
deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
#重庆大学
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb-src http://http.kali.org/kali kali-rolling main non-free contrib
#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
三、签名报错
这个报错其实是因为我们所更换的源没有数字签名,从而导致报错的,我们只需要重新添加数字签名就可以了

若是老版本kali的apt-key命令任然可以使用则使用以下命令
下载签名:
wget archive.kali.org/archive-key.asc
安装签名:
apt-key add archive-key.asc
而新版本kali移除了apt-key命令,因此可使用此下两种方法:
方法 1:手动下载并安装 Kali 仓库密钥
下载 Kali 官方 GPG 密钥:
wget -q -O - https://archive.kali.org/archive-key.asc | gpg --dearmor | sudo tee /usr/share/keyrings/kali-archive-keyring.gpg >/dev/null
更新 sources.list 以使用新密钥:
确保你的 /etc/apt/sources.list 包含正确的仓库地址(如 deb [signed-by=/usr/share/keyrings/kali-archive-keyring.gpg] http://http.kali.org/kali kali-rolling main non-free contrib)。或者直接运行
echo "deb [signed-by=/usr/share/keyrings/kali-archive-keyring.gpg] http://http.kali.org/kali kali-rolling main non-free contrib" | sudo tee /etc/apt/sources.list

更新软件包列表:
#更新列表
sudo apt-get update
#全量更新
sudo apt-get dist-upgrade -y
方法 2:使用 gpg 直接导入密钥
手动导入密钥:
sudo gpg --keyserver hkps://keyserver.ubuntu.com --recv-key 827C8569F2518CC677FECA1AED65462EC8D5E4C5 sudo gpg --export --armor 827C8569F2518CC677FECA1AED65462EC8D5E4C5 | sudo tee /usr/share/keyrings/kali-archive-keyring.gpg >/dev/null
更新 apt 配置(同方法 1 的步骤 2 和 3)。
验证修复
运行 sudo apt update,如果不再报错,说明密钥已正确安装。如果仍有问题,检查:
网络连接是否正常(尤其是访问 keyserver.ubuntu.com)。
/etc/apt/sources.list 中的仓库地址是否拼写错误。
临时解决方案(不推荐)
如果急需更新,可以暂时禁用签名验证(不安全):
sudo apt -o Acquire::AllowInsecureRepositories=true update
但请尽快修复密钥问题,避免潜在的安全风险。
四、软件源无法正常定位
源库已更改为官方源后更新时仍然定位到其他源,引起文件不适配(现版本的kali会自动选取附近的适配源,一般不会出现文件不适配,除非确实出现适配问题(概率极低),该项一般不用更改),需要强制使用Kali Linux官方软件源
最简单方法:建议先尝试上文的官方源设置及秘钥添加,并清除所有第三方源,然后使用然后配置网络代理工具访问境外镜像加速节点,再更新
上文官方源设置及秘钥添加:
wget -q -O - https://archive.kali.org/archive-key.asc | gpg --dearmor | sudo tee /usr/share/keyrings/kali-archive-keyring.gpg >/dev/nullecho "deb [signed-by=/usr/share/keyrings/kali-archive-keyring.gpg] http://http.kali.org/kali kali-rolling main non-free contrib" | sudo tee /etc/apt/sources.list
解决方法:
1. 确认官方源配置(修改过数字签名秘钥的无需操作本步骤)
编辑源列表文件:
sudo vim /etc/apt/sources.list
确保内容为:
# Kali Official Sources
deb http://http.kali.org/kali kali-rolling main non-free contrib
# 可选安全更新源
deb http://security.kali.org/kali-security kali-rolling/updates main contrib non-free
2. 清除所有第三方源
删除额外源配置
sudo rm -f /etc/apt/sources.list.d/*.list
清理旧配置
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
3. 禁用镜像自动选择
创建APT配置文件:
sudo vim /etc/apt/apt.conf.d/99force-official

添加以下内容:
# 强制直连官方源
Acquire::http::Pipeline-Depth "0";
Acquire::http::No-Cache true;
Acquire::BrokenProxy true;
Acquire::http::No-Store true;
Acquire::http::User-Agent "Debian APT-HTTP/1.3 (kali-force-official)";

4. 绕过DNS污染
修改DNS配置:
sudo vim /etc/resolv.conf
![]()
添加:
nameserver 8.8.8.8
nameserver 1.1.1.1
options edns0 single-request-reopen

5. 强制直接连接测试
使用curl验证可达性:
curl -I http://http.kali.org/kali
正常应返回HTTP 200
若返回302重定向,执行以下操作:
sudo vim /etc/hosts
添加以下解析:
# Kali Official Source IPs (Cloudflare)
104.18.100.149 http.kali.org
104.18.101.149 http.kali.org
104.18.100.149 security.kali.org
104.18.101.149 security.kali.org

6. 更新验证
sudo apt update -o Acquire::http::No-Cache=true -o Acquire::http::Pipeline-Depth=0
网络层强制方案
如果仍被劫持,需进行深度网络配置:
方法1:IP直连
sudo vim /etc/apt/sources.list
替换为IP地址:
deb http://104.18.101.149/kali kali-rolling main non-free contrib
方法2:强制HTTP/1.1
sudo vim /etc/apt/apt.conf.d/99http1
添加:
Acquire::http::Protocols "http/1.1";
方法3:禁用HTTPs
sudo apt install apt-transport-http
sudo vim /etc/apt/sources.list
# 将所有https://替换为http://
故障排除命令
| 现象 | 诊断命令 | 解决方案 |
|---|---|---|
| 连接被重定向 | curl -vL http://http.kali.org/kali | 使用IP直连方式 |
| DNS解析异常 | dig http.kali.org +short | 修改/etc/hosts |
| 数据包劫持 | tcpdump -i eth0 port 80 -vv | 使用VPN连接 |
最终验证
成功标志:执行apt update时所有连接均显示http.kali.org域名:
sudo apt update -o Debug::Acquire::http=yes
# 在输出中应看到:
# "Connecting to http.kali.org (104.18.101.149)"
通过以上步骤可实现:即使存在网络中间件劫持,也能强制直连Kali官方源。
希望本篇文章对您有所帮助
更多推荐

所有评论(0)