跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Kali Linux 官方更新命令详解

Kali Linux 基于 Debian APT 系统,核心更新命令包括 apt update、upgrade 及 full-upgrade。文章详细说明了标准流程、Kali 滚动更新特性、工具包管理、自动化脚本配置、镜像源优化、内核管理及 Metasploit 更新方法。同时涵盖常见问题排查如锁文件冲突、GPG 密钥错误及网络代理设置。建议定期备份数据并遵循日常与月度更新最佳实践,确保系统安全与稳定。

竹影清风发布于 2026/3/16更新于 2026/7/551 浏览

一、基础更新命令

1.1 标准更新流程

完整的官方更新命令序列:

# 1. 更新软件包源列表(必需的第一步)
sudo apt update

# 2. 升级已安装的软件包(推荐)
sudo apt upgrade -y

# 3. 完全系统升级(包含依赖关系调整)
sudo apt full-upgrade -y

# 4. 可选的发行版升级(谨慎使用)
sudo apt dist-upgrade -y

1.2 各命令详细说明

sudo apt update

  • 功能:更新本地软件包索引,从配置的软件源下载最新的软件包信息
  • 频率:每次进行升级操作前都应执行
  • 工作原理:
    • 读取 /etc/apt/sources.list 和 /etc/apt/sources.list.d/ 中的源配置
    • 下载 InRelease 或 Release.gpg 文件验证源
    • 更新 /var/lib/apt/lists/ 中的软件包列表
  • 输出示例:
Hit:1 http://kali.download/kali kali-rolling InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
15 packages can be upgraded.
Run 'apt list --upgradable' to see them.

sudo apt upgrade

  • 功能:升级所有可升级的软件包,不删除任何软件包
  • 保守性:最安全的升级方式,不会改变依赖关系
  • 推荐用法:日常维护的首选升级命令

sudo apt full-upgrade

  • 功能:智能解决依赖关系,必要时会安装新包或删除冲突包
  • 适用场景:
    • 内核升级
    • 重大版本更新
    • 依赖关系复杂的变化
  • 与 dist-upgrade 的关系:在最新版 Debian/Ubuntu/Kali 中是 dist-upgrade 的别名

sudo apt dist-upgrade

  • 历史说明:传统上用于处理复杂的依赖关系变化
  • 现状:与 full-upgrade 功能相同,建议使用 full-upgrade
  • 保留原因:向后兼容性

二、Kali Linux 特定更新命令

2.1 Kali 滚动更新特性

Kali Linux 采用滚动发布模型,这意味着:

  • 没有传统的大版本号升级(如 Kali 2023.1 → Kali 2023.2)
  • 持续不断地接收更新
  • 核心系统组件持续演进
  • 2.2 Kali 工具包更新

    更新 Kali 元数据包:

    # 更新所有 Kali 工具元数据包
    sudo apt update
    sudo apt install kali-linux-headless   # 基础命令行工具
    sudo apt install kali-linux-core       # 核心工具集
    sudo apt install kali-linux-default    # 默认桌面工具
    sudo apt install kali-linux-large      # 大型工具集
    sudo apt install kali-linux-everything # 全部工具
    

    检查当前 Kali 版本信息:

    # 查看 Kali 版本和发布信息
    cat /etc/os-release
    lsb_release -a
    uname -a
    

    2.3 选择性更新策略

    仅更新安全补丁:

    # 只安装安全更新(适合生产环境)
    sudo apt update
    sudo apt upgrade --only-upgrade
    sudo unattended-upgrades --dry-run -d  # 模拟自动安全更新
    

    更新特定工具类别:

    # 更新 Web 渗透测试工具
    sudo apt update
    sudo apt install --only-upgrade kali-tools-web
    
    # 更新无线测试工具
    sudo apt install --only-upgrade kali-tools-wireless
    
    # 更新漏洞利用工具
    sudo apt install --only-upgrade kali-tools-exploitation
    

    三、高级更新管理

    3.1 更新预览与检查

    查看可更新的软件包:

    # 列出所有可升级的包
    apt list --upgradable
    
    # 详细查看升级信息
    apt-get -s upgrade
    
    # 模拟升级,不实际执行
    apt policy <package_name>
    
    # 查看更新日志
    apt changelog <package_name>
    

    检查更新源状态:

    # 测试更新源速度
    sudo netselect-apt
    
    # 查看当前使用的源
    cat /etc/apt/sources.list
    ls -la /etc/apt/sources.list.d/
    
    # 检查源是否有效
    sudo apt update --fix-missing
    

    3.2 处理更新问题

    修复损坏的依赖关系:

    # 尝试自动修复
    sudo apt --fix-broken install
    sudo dpkg --configure -a
    
    # 清理并重试
    sudo apt clean
    sudo apt autoclean
    sudo apt autoremove
    sudo apt update
    

    处理 GPG 密钥错误:

    # 重新导入 Kali 官方密钥
    wget -q -O - https://archive.kali.org/archive-key.asc | sudo apt-key add -
    
    # 或使用新方法(Debian 11+)
    sudo apt update
    sudo apt install kali-archive-keyring
    

    3.3 回滚与版本控制

    查看更新历史:

    # 查看 apt 历史记录
    cat /var/log/apt/history.log
    cat /var/log/apt/term.log
    
    # 使用日志工具
    journalctl -u apt
    journalctl --since "2 hours ago" | grep -i update
    

    回滚特定更新:

    # 查看已安装版本
    apt list --installed | grep <package>
    
    # 安装特定版本
    sudo apt install <package>=<version>
    
    # 完全移除后重新安装旧版本
    sudo apt remove <package>
    sudo apt install <package>=<old_version>
    

    四、自动化更新脚本

    4.1 安全更新脚本

    基础自动化更新脚本:

    #!/bin/bash
    # kali-update.sh
    # 安全更新脚本,保留旧内核,记录日志
    LOG_FILE="/var/log/kali-update-$(date +%Y%m%d).log"
    echo "Kali Linux 更新开始:$(date)" | tee -a $LOG_FILE
    
    # 更新源
    echo "步骤 1: 更新软件包列表..." | tee -a $LOG_FILE
    sudo apt update 2>&1 | tee -a $LOG_FILE
    
    # 检查可更新包
    echo "步骤 2: 检查可更新软件包..." | tee -a $LOG_FILE
    UPDATABLE=$(apt list --upgradable 2>/dev/null | wc -l)
    echo "发现 $((UPDATABLE-1)) 个可更新软件包" | tee -a $LOG_FILE
    
    # 升级(保留旧内核)
    echo "步骤 3: 执行升级(保留所有软件包)..." | tee -a $LOG_FILE
    sudo apt upgrade -y --allow-downgrades 2>&1 | tee -a $LOG_FILE
    
    # 清理
    echo "步骤 4: 清理系统..." | tee -a $LOG_FILE
    sudo apt autoclean 2>&1 | tee -a $LOG_FILE
    sudo apt autoremove -y 2>&1 | tee -a $LOG_FILE
    
    echo "更新完成:$(date)" | tee -a $LOG_FILE
    

    4.2 定时自动更新

    配置无人值守更新:

    # 安装无人值守更新工具
    sudo apt install unattended-upgrades apt-listchanges
    
    # 配置自动更新
    sudo dpkg-reconfigure --priority=low unattended-upgrades
    
    # 编辑配置文件
    sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
    

    配置示例:

    Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}-security";
        "${distro_id}:${distro_codename}-updates";
    };
    Unattended-Upgrade::AutoFixInterruptedDpkg "true";
    Unattended-Upgrade::MinimalSteps "true";
    Unattended-Upgrade::Remove-Unused-Dependencies "true";
    Unattended-Upgrade::Automatic-Reboot "false";
    

    五、镜像源优化

    5.1 官方源配置

    默认源配置(/etc/apt/sources.list):

    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
    

    5.2 全球镜像源

    选择合适的镜像源:

    # 测试镜像源速度
    sudo apt install netselect-apt
    sudo netselect-apt -s -t 10
    
    # 手动选择镜像(编辑源文件)
    sudo nano /etc/apt/sources.list
    

    常用镜像源示例:

    # 官方主镜像(美国)
    deb http://http.kali.org/kali kali-rolling main non-free contrib
    
    # 中国镜像
    deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
    deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib
    
    # 欧洲镜像
    deb http://ftp.cc.uoc.gr/mirrors/linux/kali kali-rolling main non-free contrib
    

    5.3 源优先级配置

    设置源优先级:

    # 创建优先级配置
    sudo nano /etc/apt/preferences.d/kali.pref
    
    # 内容示例
    Package: *
    Pin: origin "http.kali.org"
    Pin-Priority: 700
    Package: *
    Pin: origin "mirrors.aliyun.com"
    Pin-Priority: 650
    

    六、内核更新管理

    6.1 Kali 内核更新策略

    查看当前内核:

    uname -r
    dpkg -l | grep linux-image
    

    内核更新流程:

    # 更新包含内核升级
    sudo apt update
    sudo apt full-upgrade
    
    # 可选:安装特定内核
    sudo apt install linux-image-amd64
    

    6.2 多内核管理

    保留多个内核版本:

    # 查看所有可用内核
    apt list linux-image-* --installed
    
    # 防止自动删除旧内核
    sudo apt-mark hold linux-image-$(uname -r)
    

    清理旧内核:

    # 安全地删除旧内核
    sudo apt autoremove --purge
    
    # 手动删除特定内核
    sudo apt remove linux-image-5.10.0-kali7-amd64
    

    七、Metasploit 框架更新

    7.1 标准更新方法

    Metasploit 框架更新:

    # 通过包管理器更新
    sudo apt update
    sudo apt install metasploit-framework
    
    # 或使用 msfupdate(旧方法,已不推荐)
    # sudo msfupdate
    

    7.2 手动更新数据库

    更新漏洞数据库:

    # 启动 msfconsole 并更新
    msfconsole
    msf6 > msfupdate
    # 或
    msf6 > db_rebuild_cache
    

    八、疑难解答

    8.1 常见错误及解决方法

    错误 1:E: Could not get lock /var/lib/dpkg/lock-frontend

    # 解决方案:删除锁文件
    sudo rm /var/lib/dpkg/lock-frontend
    sudo rm /var/lib/apt/lists/lock
    sudo rm /var/cache/apt/archives/lock
    

    错误 2:Hash Sum mismatch

    # 清理缓存并重试
    sudo apt clean
    sudo apt update --fix-missing
    

    错误 3:GPG error: NO_PUBKEY

    # 重新导入密钥
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [缺失的 KEY]
    

    8.2 网络问题处理

    使用代理更新:

    # 临时使用代理
    sudo https_proxy=http://proxy:port apt update
    
    # 永久配置代理
    sudo nano /etc/apt/apt.conf.d/01proxy
    # 添加:Acquire::http::Proxy "http://proxy:port";
    

    九、最佳实践总结

    9.1 日常更新流程

    推荐的工作流程:

    # 每周执行的基本更新
    1. sudo apt update
    2. sudo apt upgrade -y
    3. sudo apt autoremove -y
    4. sudo apt autoclean
    
    # 每月执行的完全更新
    1. sudo apt update
    2. sudo apt full-upgrade -y
    3. sudo apt autoremove --purge -y
    4. 重启系统(如果需要)
    

    9.2 更新前的检查清单

    1. 备份重要数据
      • 配置文件
      • 工作文件
      • 自定义脚本

    阅读更新日志

    apt changelog <重要软件包>
    

    查看更新内容

    apt list --upgradable
    

    检查磁盘空间

    df -h
    

    9.3 更新后的验证

    验证系统完整性

    dpkg -C  # 检查损坏的包
    

    测试关键功能

    # 测试网络
    ping -c 4 google.com
    
    # 测试常用工具
    msfconsole -v
    sqlmap --version
    

    检查服务状态

    systemctl --failed
    

    十、总结

    Kali Linux 的官方更新命令基于 Debian 的 APT 包管理系统,核心命令为:

    sudo apt update
    sudo apt upgrade
    sudo apt full-upgrade
    

    关键要点:

    1. 始终从 apt update 开始:确保软件包列表最新
    2. 优先使用 upgrade:日常更新的安全选择
    3. 谨慎使用 full-upgrade:处理重大变更时使用
    4. 定期清理:使用 autoremove 和 autoclean
    5. 了解你的源:选择合适的镜像源提高速度
    6. 做好备份:重大更新前备份重要数据

    Kali Linux 作为滚动发行版,推荐每周更新一次以获取最新的安全补丁和工具更新。对于生产环境或关键系统,建议在测试环境中验证更新后再应用到主系统。

    记住:更新是保持系统安全和功能完善的重要环节,但也可能引入不稳定性。始终保持谨慎,并在更新前了解可能的影响。

    目录

    1. 一、基础更新命令
    2. 1.1 标准更新流程
    3. 1. 更新软件包源列表(必需的第一步)
    4. 2. 升级已安装的软件包(推荐)
    5. 3. 完全系统升级(包含依赖关系调整)
    6. 4. 可选的发行版升级(谨慎使用)
    7. 1.2 各命令详细说明
    8. 二、Kali Linux 特定更新命令
    9. 2.1 Kali 滚动更新特性
    10. 2.2 Kali 工具包更新
    11. 更新所有 Kali 工具元数据包
    12. 查看 Kali 版本和发布信息
    13. 2.3 选择性更新策略
    14. 只安装安全更新(适合生产环境)
    15. 更新 Web 渗透测试工具
    16. 更新无线测试工具
    17. 更新漏洞利用工具
    18. 三、高级更新管理
    19. 3.1 更新预览与检查
    20. 列出所有可升级的包
    21. 详细查看升级信息
    22. 模拟升级,不实际执行
    23. 查看更新日志
    24. 测试更新源速度
    25. 查看当前使用的源
    26. 检查源是否有效
    27. 3.2 处理更新问题
    28. 尝试自动修复
    29. 清理并重试
    30. 重新导入 Kali 官方密钥
    31. 或使用新方法(Debian 11+)
    32. 3.3 回滚与版本控制
    33. 查看 apt 历史记录
    34. 使用日志工具
    35. 查看已安装版本
    36. 安装特定版本
    37. 完全移除后重新安装旧版本
    38. 四、自动化更新脚本
    39. 4.1 安全更新脚本
    40. kali-update.sh
    41. 安全更新脚本,保留旧内核,记录日志
    42. 更新源
    43. 检查可更新包
    44. 升级(保留旧内核)
    45. 清理
    46. 4.2 定时自动更新
    47. 安装无人值守更新工具
    48. 配置自动更新
    49. 编辑配置文件
    50. 五、镜像源优化
    51. 5.1 官方源配置
    52. deb-src http://http.kali.org/kali kali-rolling main non-free contrib
    53. 5.2 全球镜像源
    54. 测试镜像源速度
    55. 手动选择镜像(编辑源文件)
    56. 官方主镜像(美国)
    57. 中国镜像
    58. 欧洲镜像
    59. 5.3 源优先级配置
    60. 创建优先级配置
    61. 内容示例
    62. 六、内核更新管理
    63. 6.1 Kali 内核更新策略
    64. 更新包含内核升级
    65. 可选:安装特定内核
    66. 6.2 多内核管理
    67. 查看所有可用内核
    68. 防止自动删除旧内核
    69. 安全地删除旧内核
    70. 手动删除特定内核
    71. 七、Metasploit 框架更新
    72. 7.1 标准更新方法
    73. 通过包管理器更新
    74. 或使用 msfupdate(旧方法,已不推荐)
    75. sudo msfupdate
    76. 7.2 手动更新数据库
    77. 启动 msfconsole 并更新
    78. 或
    79. 八、疑难解答
    80. 8.1 常见错误及解决方法
    81. 解决方案:删除锁文件
    82. 清理缓存并重试
    83. 重新导入密钥
    84. 8.2 网络问题处理
    85. 临时使用代理
    86. 永久配置代理
    87. 添加:Acquire::http::Proxy "http://proxy:port";
    88. 九、最佳实践总结
    89. 9.1 日常更新流程
    90. 每周执行的基本更新
    91. 每月执行的完全更新
    92. 9.2 更新前的检查清单
    93. 9.3 更新后的验证
    94. 测试网络
    95. 测试常用工具
    96. 十、总结
    • 免费图片AI生成工具免费生成了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
    • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
    • 100+免费在线小游戏爽一把
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • WhisperX:70 倍实时语音转录、词级时间戳与多说话人分离技术
    • 开源无人机开发平台:基于 ESP32 的从零构建与自主飞行实践
    • 大语言模型架构:Attention 机制详解
    • 基于 OpenClaw 与飞书开放平台搭建 AI 新闻推送机器人
    • RAG 检索增强生成概念理论与 LangChain 代码实现
    • OpenClaw Zero Token 基于浏览器自动化实现大模型免 Token 调用
    • 算法基础:前缀和如何优化区间查询
    • 傅里叶变换:FFT 与 DFT 原理及算法详解
    • 基于 CTCM 算法的复杂城市地形下无人机避障三维航迹规划
    • Java 8 Lambda 表达式与 Stream 流实战解析
    • AI 工具在 Java 毕业论文写作中的应用与优化指南
    • ClawX:OpenClaw 可视化桌面客户端实战指南
    • Python 编程入门指南:基础语法与核心应用场景
    • Spring AI 框架快速入门与核心接口详解
    • Stable Diffusion v1.5 WebUI 高可用架构:双实例 + 负载均衡 + 健康检查
    • GaussDB 应用迁移工具 UGO 功能与使用流程
    • 阿里开源 iFlow CLI:终端级 AI 智能体功能与使用指南
    • 前端权限管理实现方案与最佳实践
    • 后仿真 SDF 反标 Warning 描述与解决方案
    • 数据结构复习:二叉树的概念、性质与遍历实现

    相关免费在线工具

    • Base64 字符串编码/解码

      将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

    • Base64 文件转换器

      将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

    • Markdown转HTML

      将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

    • HTML转Markdown

      将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

    • JSON 压缩

      通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

    • JSON美化和格式化

      将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online