记录一次把 Windows 本机的 Claude Code 接到 WSL2 里的 Kali Linux MCP 的完整过程。
目标是实现这样一条链路:
Claude Code(Windows) → WSL2 → Kali MCP Server → Kali 工具环境
一、背景
这两天看到 Kali 侧开始提供 mcp-kali-server,很多人第一反应都是:
-
这玩意是真的吗?
-
Windows 能不能用?
-
Claude Code 能不能直接调用 WSL2 里的 Kali?
-
是不是只能在 macOS 上跑?
我实际测试了一遍,结论很明确:
可以。
而且不需要把 Claude Code 装进 Kali,也不需要整一台单独的 Linux 主机。
只要你本机是 Windows,已经启用 WSL2,就可以把 Windows 上的 Claude Code 和 WSL2 里的 Kali 接起来。
二、最终跑通的架构
我实际跑通后的结构是这样的:
Claude Code (Windows)
-> wsl.exe -d kali-linux -- mcp-server
-> kali-server-mcp
-> Kali Linux tools
也就是说:
-
Claude Code 跑在 Windows 本机
-
它通过
wsl.exe去调用 WSL2 里的 Kali -
Kali 里运行两个关键组件:
-
kali-server-mcp -
mcp-server
-
-
Claude Code 通过 MCP 与 Kali 环境交互
三、我的环境
本文实测环境如下:
-
Windows 11
-
WSL2 已启用
-
已安装 Ubuntu(说明 WSL 环境正常)
-
可在线安装
kali-linux -
Claude Code 已安装在 Windows 本机
-
Kali 中已可安装
mcp-kali-server
四、先决条件检查
先在 Windows PowerShell 里检查 WSL 状态:
wsl --status
wsl --list --online
如果输出里能看到类似下面的信息,就说明条件基本具备:
-
默认版本:
2 -
在线发行版列表里有:
kali-linux
如果你还没装 Kali,可以直接执行:
wsl --install -d kali-linux
安装完成后,进入 Kali。
五、在 WSL2 里安装 Kali MCP
进入 Kali 后,先更新软件源并安装:
sudo apt update
sudo apt install mcp-kali-server
安装完成后,启动 Kali API Server:
kali-server-mcp
看到类似下面的输出,说明已经正常启动:
Starting Kali Linux Tools API Server on 127.0.0.1:5000
Running on http://127.0.0.1:5000
Press CTRL+C to quit
这里要特别说明一下:
这个界面不是“卡住了”,而是服务已经在前台运行,正在监听请求。
这时候不要关闭这个窗口。
保持它开着,然后新开一个终端继续后面的配置。
六、Windows 本机 Claude Code 连接 WSL2 里的 Kali
一开始我尝试直接在 PowerShell 里执行下面这条:
claude mcp add --transport stdio kali -- wsl.exe -d kali-linux -- mcp-server
结果报错:
error: unknown option '-d'
为什么会报错?
原因不是 Kali 有问题,也不是 WSL 不支持,而是 PowerShell 对参数解析产生了干扰。claude mcp add 后面虽然有 --,但在这个场景下,-d 还是被错误处理了。
七、正确做法:用 add-json 显式写配置
后面我改成了 add-json 方式,直接成功。
PowerShell 配置命令
$json = '{"type":"stdio","command":"wsl.exe","args":["-d","kali-linux","--","mcp-server"]}'
claude mcp add-json kali $json
然后检查状态:
claude mcp get kali
claude mcp list
如果配置成功,你会看到类似结果:
kali:
Scope: Local config
Status: Connected
Type: stdio
Command: wsl.exe
Args: -d kali-linux -- mcp-server
以及在 claude mcp list 里看到:
kali: wsl.exe -d kali-linux -- mcp-server - √ Connected
这就说明:
Windows 本机 Claude Code 已经成功连上 WSL2 里的 Kali MCP。
八、最终可用的 MCP 配置
这是我最终跑通的配置,直接贴出来。
Claude Code 的 MCP 配置
{
"type": "stdio",
"command": "wsl.exe",
"args": ["-d", "kali-linux", "--", "mcp-server"]
}
如果你喜欢完整一点的结构,也可以写成这样:
{
"mcpServers": {
"kali": {
"type": "stdio",
"command": "wsl.exe",
"args": ["-d", "kali-linux", "--", "mcp-server"]
}
}
}
九、完整操作流程汇总
这里我把整个流程按顺序整理成一份最短步骤。
1)Windows 检查 WSL2
wsl --status
wsl --list --online
2)安装 Kali
wsl --install -d kali-linux
3)进入 Kali,安装 MCP 组件
sudo apt update
sudo apt install mcp-kali-server
4)启动 Kali API Server
kali-server-mcp
5)Windows 本机添加 Claude Code MCP 配置
$json = '{"type":"stdio","command":"wsl.exe","args":["-d","kali-linux","--","mcp-server"]}'
claude mcp add-json kali $json
6)检查 MCP 状态
claude mcp get kali
claude mcp list
十、几个容易踩坑的地方
1. kali-server-mcp 看起来像“卡住”
不是卡死,是服务在前台运行。
想退出就按:
Ctrl + C
但如果你还要继续联调,就别关它。
2. 直接 claude mcp add ... wsl.exe -d ... 可能报参数错误
这是本文里最容易踩的坑。
在 Windows PowerShell 下,推荐直接使用:
claude mcp add-json ...
比裸命令稳定得多。
3. claude mcp list 里没有 kali
那就说明你只是“以为自己配好了”,实际上没有注册成功。
一定要以这两个命令为准:
claude mcp get kali
claude mcp list
只要看到 Connected,才算真的通了。
4. 别把两个窗口搞混
整个过程至少会有两个窗口:
窗口 A:WSL2 Kali
-
跑
kali-server-mcp
窗口 B:Windows PowerShell
-
配置
claude mcp add-json -
执行
claude mcp list
如果把命令都混在一个窗口里,很容易把自己绕进去。
十一、跑通之后能做什么?
跑通之后,本质上就是:
让 Claude Code 具备一个可调用的 Kali Linux 工具执行环境。
这类能力更适合用于:
-
实验室环境中的命令编排
-
本地安全研究工作流自动化
-
CTF / 靶场练习中的工具联动
-
信息收集、环境检查、结果整理这类任务
我个人建议,先从最轻量、最无害的命令开始验证链路,例如:
-
pwd -
whoami -
uname -a
先确认 MCP 通信没问题,再继续往下扩展。
十二、我对这套方案的看法
这套方案最有意思的地方,不在于“又多了一个 MCP”,而在于它把几个原本分散的东西真正串起来了:
-
Windows 本机工作流
-
WSL2
-
Kali Linux
-
Claude Code
-
MCP 协议
以前很多人会觉得:
-
要么就纯 Linux
-
要么就纯 Windows
-
要么就只能在某个特定客户端里玩
但这次实际验证下来,Windows 本机 + WSL2 Kali 这条路是能打通的,而且体验并不差。
对很多平时主力系统就是 Windows 的人来说,这反而是最容易落地的方式。
十三、结论
一句话总结:
Windows 本机的 Claude Code,完全可以调用 WSL2 里的 Kali MCP。
而且实测最稳的配置方式是:
-
在 WSL2 的 Kali 里运行
kali-server-mcp -
在 Windows 本机 用
claude mcp add-json注册:-
command: wsl.exe -
args: ["-d", "kali-linux", "--", "mcp-server"]
-
只要 claude mcp get kali 和 claude mcp list 显示 Connected,就说明已经接通。
十四、附录:我最终使用的关键命令
Kali 侧
sudo apt update
sudo apt install mcp-kali-server
kali-server-mcp
Windows 侧
$json = '{"type":"stdio","command":"wsl.exe","args":["-d","kali-linux","--","mcp-server"]}'
claude mcp add-json kali $json
claude mcp get kali
claude mcp list
最终配置
{
"type": "stdio",
"command": "wsl.exe",
"args": ["-d", "kali-linux", "--", "mcp-server"]
}



免责声明
本文仅用于 本地实验环境、授权测试环境和学习研究场景。
请勿将相关能力用于未授权目标或任何违法违规用途。







暂无评论内容