本地部署openclaw
背景
手头有两台机器,情况有点特殊:一台能访问特定的内部网络(我们暂且叫它Y网),另一台则只能连接普通的互联网。要在只能上网的机器上搭建一个AI开发环境,中间的“搬运”工作就得靠那台能连Y网的机器来完成了。
步骤
整个流程,说白了就是在有网络的“母机”上准备一个完整的环境包,然后“迁移”到目标机器上。下面是详细的步骤记录。
首先,在能连Y网的机器上操作:
# 在能连Y网的机器上执行
wsl --install --no-distribution
# 然后重启电脑
wsl --install -d Ubuntu-22.04 --web-download
wsl --export Ubuntu-22.04 E:\wsl_backup\Ubuntu2204.tar
wsl --unregister Ubuntu-22.04
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss\*" | Select-Object DistributionName,BasePath
wsl -l -v
wsl -d Ubuntu-22.04
# 明确只有root权限才有最高权限
wsl
vi /etc/wsl.conf
[user]
default=root
exit
wsl
# 启用网关
sudo tee /etc/wsl.conf >/dev/null <<'EOF'
[boot]
systemd=true
EOF
exit
wsl
# 开始下载相关依赖发现下不来
unset http_proxy
unset https_proxy
unset all_proxy
unset NO_PROXY
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
echo "nameserver 114.114.114.114" | sudo tee -a /etc/resolv.conf
curl baidu.com
发现可以了
sudo tee /etc/wsl.conf <
接下来,把打包好的环境“搬”到另一台只能连互联网的机器上:
# 在另外一台机器上进行如下操作
# 1. 创建一个存放目录(比如 D:\wsl\openclaw)
mkdir D:\wsl\openclaw
# 2. 导入(把 tar 包变成可用的 WSL)
# 格式:wsl --import <自定义名> <存放目录> --version 2
wsl --import Ubuntu-OpenClaw D:\wsl\openclaw D:\openclaw_full.tar --version 2
# 直接启动
wsl -d Ubuntu-OpenClaw
当然,目标机器得先确保WSL基础功能是开启的:
# 在另外一台机器上操作
# 启用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台功能(WSL2 必需)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl -l
wsl --install --no-distribution
# 显示操作成功
mkdir D:\wsl\openclaw
wsl --import Ubuntu-OpenClaw D:\wsl\openclaw E:\openclaw_full.tar --version 2
# 这样就启动了openclaw
wsl -d Ubuntu-OpenClaw
openclaw -V 查看版本
环境启动后,剩下的就是配置工作了。这需要找到并修改OpenClaw的配置文件。
# 然后就是修改配置文件连接大模型了
# 后边还没做,稍等~下周再做
通常,你需要找到名为 openclaw.json 的配置文件,它的结构大致如下:
{
"meta": {
"lastTouchedVersion": "2026.3.13",
"lastTouchedAt": "2026-03-23T07:41:19.897Z"
},
"wizard": {
"lastRunAt": "2026-03-18T07:13:20.426Z",
"lastRunVersion": "2026.3.13",
"lastRunCommand": "onboard",
"lastRunMode": "local"
},
"models": {
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434",
"apiKey": "ollama-local",
"api": "openai-completions",
"models": [{
"id": "qwen:latest",
"name": "Qwen (本地)",
"contextWindow": 32768
}]
}
}
},
"tools": {
"profile": "coding"
},
"commands": {
"native": "auto",
"nativeSkills": "auto",
"restart": true,
"ownerDisplay": "raw"
},
"session": {
"dmScope": "per-channel-peer"
},
"gateway": {
"port": 18789,
"mode": "local",
"bind": "loopback",
"auth": {
"mode": "token",
"token": "ce8e2560583db62da6c77e0583167207ac95e8ac1b6cf7d1a"
},
"tailscale": {
"mode": "off",
"resetOnExit": false
},
"nodes": {
"denyCommands": [
"camera.snap",
"camera.clip",
"screen.record",
"contacts.add",
"calendar.add",
"reminders.add",
"sms.send"
]
}
}
}
总结
总体而言,这套通过WSL导出导入来迁移完整AI开发环境的方案,流程比较清晰,操作下来也还算顺利。关键在于先在源机器上配置好所有网络和依赖,打包成一个完整的“镜像”,再到目标机器上“还原”。剩下的模型连接和具体配置,就是按部就班的精细活了。