kali用户应仅更新预装msf:sudo apt update && sudo apt install --only-upgrade metasploit-framework;非kali系统必须用官方脚本安装,避免apt install旧版本,并确保postgresql启动及msfdb init初始化数据库。

msfconsole 启不起来,大概率不是没装,而是没装对、没配好数据库,或者用了过时的安装方式。Kali Linux 用户直接更新即可,其他 Linux 发行版必须用官方脚本,别信 apt install metasploit-framework 在非 Kali 系统上能装成功。
Kali Linux 上别重装,只更新
Kali 默认预装 metasploit-framework,但版本常滞后。运行以下命令升级到最新稳定版:
sudo apt updatesudo apt install --only-upgrade metasploit-framework
注意:sudo apt upgrade 会升级整个系统,可能引入兼容性问题;只升 MSF 更安全。升级后首次运行 msfconsole 会提示初始化数据库——选 y,它会自动调用 msfdb init 配置 PostgreSQL。
Ubuntu/Debian/CentOS 等非 Kali 系统必须用官方脚本
这些系统没有 MSF 的官方 apt 源,apt install metasploit-framework 要么失败,要么装的是极老版本(如 v4.x),无法连接现代模块仓库。正确做法是:
- 下载并执行官方安装脚本:
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod +x msfinstall && sudo ./msfinstall - 脚本会自动处理 Ruby 环境、依赖包、PostgreSQL 配置和二进制路径。安装完成后,
msfconsole命令可直接使用 - 如果提示
command not found,检查是否漏了sudo——脚本需 root 权限写入/opt/metasploit-framework并配置/usr/local/bin/msfconsole符号链接
启动失败常见原因:数据库没跑起来
msfconsole 启动卡在「Connecting to database...」或报错 could not connect to server: Connection refused,说明 PostgreSQL 没启动或没初始化。这不是 MSF 本身的问题:
- 先确认 PostgreSQL 是否运行:
sudo systemctl status postgresql。若 inactive,运行sudo systemctl start postgresql - 再初始化 MSF 数据库:
sudo msfdb init(不是msfdb reinit,后者会清空已有数据) - 如果提示
database already exists但还是连不上,检查~/.msf4/db/下是否有残留锁文件,手动删掉msf-db.lock - 某些云服务器或最小化安装系统缺
postgresql-contrib包,需额外运行sudo apt install postgresql-contrib
别碰 Windows Installer 或 .run 文件在 Linux 上硬装
官网提供的 metasploit-latest-linux-x64-installer.run 是为 RHEL/CentOS 7+ 定制的封闭包,依赖特定 glibc 版本和 systemd 单元。在 Ubuntu 22.04+/Debian 12+ 上运行常报 GLIBC_2.34 not found 或服务注册失败。Kali 用户更不该用它——会覆盖系统包管理器维护的版本,导致后续 apt upgrade 冲突。
真正麻烦的从来不是“装不上”,而是装完发现 search 返回空、use exploit/... 报 failed to load module——那基本是数据库路径错、Ruby gem 加载异常,或是用了被 Rapid7 弃用的第三方镜像源。这些细节比安装步骤本身更影响实操。











