Windowns系统WSL2 Ubuntu 方式部署Openclaw

Windowns系统WSL2 Ubuntu 方式部署Openclaw

这是官方推荐的 Windows 部署方式,提供最完整的 Linux 环境支持。

好消息!近期找到个更简单部署方法,通过镜像还原方式,适合想快速部署或零基础的!

【Openclaw安装别再花冤枉钱了!零基础镜像还原法,一次成功-哔哩哔哩】 https://b23.tv/iH4usWS

准备:启用适用于Linux的Windows子系统和虚拟化平台,重启电脑。

1. 启用 WSL2

以管理员

身份打开 PowerShell,执行:

# 启用 WSL 功能

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# 设置 WSL 2 为默认版本,部分电脑此步可能报错,​​​​​此处暂不理会,​​通过下文中的WSL内核更新解决

wsl --set-default-version 2


 

2. 安装 Ubuntu

方法1 :Microsoft Store 安装(推荐)

  1. 打开 Microsoft Store
  2. 搜索「Ubuntu 24.04 LTS」
  3. 点击「获取」并安装

安装完成后会自动打开 Ubuntu 终端,按提示设置用户名和密码。

方法2 :wsl命令安装

wsl --install -d Ubuntu-24.04

部分电脑报错无法解析服务器的名称或地址

解决方案

  1. 打开 /C:\Windows\System32\drivers\etc文件,添加IP domain的对,如图:

IPaddress中搜索查看IP

 

启动Ubuntu 24.04 LTS

部分windows安装ubuntu时,报错:Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x8007019e Error: 0x8007019e ??????? Linux ? Windows ????

这个报错 0x8007019e 通常是因为在安装 Ubuntu 之前,没有先开启 Windows 的 “适用于 Linux 的 Windows 子系统 (WSL)” 功能。

在PowerShell中执行如下命令,然后重启电脑即可

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

重启完成后重新打开Ubuntu 24.04 LTS

首次启动设置用户名和密码,注意在ubuntu中输入密码时没有任何显示,直接输入完成回车即可

 

 WSL内核更新

1. 在PowerShell中管理员身份运行,执行

wsl --update

如果出现wsl --update 卡在 0%问题

解决方法1:依次执行如下命令

# 停止 Windows Update 服务

net stop wuauserv

# 重新启动服务

net start wuauserv

解决方法2:强制从网络获取最新更新

wsl --update --web-download

 

2. 执行版本转换命令
现在,运行转换命令。同样在 PowerShell 中,输入

wsl --set-version Ubuntu-24.04 2

 查看版本

wsl -l -v

 

 

更新 Ubuntu 系统

在 Ubuntu 终端中执行:

# 更新软件包列表

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git wget build-essential

 

安装 Node.js 22+

# 添加 NodeSource 仓库

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -

# 安装 Node.js

sudo apt install -y nodejs
# 验证版本(必须 ≥ 22.x) node -v npm -v

 

安装 OpenClaw

一键脚本安装

curl -fsSL https://openclaw.ai/install.sh | bash
通过左右方向键切换 Yes/No 选项,选择 Yes 即表示已了解 OpenClaw 权限相关风险,同意继续配置。

选择Yes

 

进入 Onboarding mode 选择界面时,对于首次配置的用户,建议优先选择 QuickStart 模式——该模式以「最小配置+最快部署」为目标,可跳过非必要配置项,快速完成 OpenClaw 基础部署。

 

◆Model/auth provide

配置要使用的模型,可以在这里直接配置,也可以后续通过配置文件处理。

因为笔者使用 moonshot 国内模型,但是 OpenClaw 的配置是国际的会导致接口地址错误,所以笔者先选择 Skip for now 跳过大模型配置,后面再单独设置要使用的模型即可。

 

保持默认选择All providers,回车即可

Default model

进入 Default model 选择界面时可任意选择一个模型临时占位——该配置后续将通过修改配置文件覆盖,不影响最终使用效果,保持默认选择Keep current,回车即可

◆Select channel (QuickStart)

配置要使用的对话应用,如果用飞书,按要求填参数即可。这里可选 Skip for now ,先跳过选择,后面笔者会单独用一节内容讲解怎么配置。

 

◇ Skills status

配置技能,可以选 No,根据提示安装一些常用的工具。

 

按空格选中Skip for now

 

最后查看界面输出的信息,将这些信息保存下来。

 

安装完成

 

 

此时执行openclaw指令提示“openclaw: command not found”,依次执行如下指令添加openclaw到系统环境变量

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

查看gateway状态

 

http://127.0.0.1:18789/#token=d3f44d798d67a145cbcb0caa5aa9b02de9fdad623384039c

 

本地模型配置步骤:

Ollama 默认只监听 127.0.0.1,没监听这个虚拟网卡的 IP

第一步:Windows 上设置环境变量,让 Ollama 监听所有接口
以管理员身份打开 PowerShell,执行:

setx OLLAMA_HOST "0.0.0.0" /M

重启 Ollama(任务栏右下角小羊驼图标 → 右键 Quit → 重新从开始菜单启动)。

在 powershell命令行执行:

netstat -an | findstr 11434


如果看到 0.0.0.0:11434 或 :::11434 处于 LISTENING,就成功了。
如果只有 127.0.0.1:11434,说明没生效,重启电脑即可。

 

第二步:WSL2 里用正确的宿主机 IP 测试
在 WSL2 Ubuntu 中执行(这才是你该用的 IP,不是 172.24.64.1):

bash

ip route show | grep default | awk '{print $3}'

这会输出 Windows 宿主机在 WSL2 网络中的真实网关 IP,大概率是 172.24.64.1 或类似(就是 Windows 的 vEthernet (WSL) 网卡 IP)。

然后用这个 IP 测试:bash

curl http://172.28.240.1:11434/api/tags   # 把 IP 换成你上面查到的

修改配置,建议直接在如下配置基础上修改

{ "wizard": { "lastRunAt": "2026-02-19T08:45:16.629Z", "lastRunVersion": "2026.2.17", "lastRunCommand": "onboard", "lastRunMode": "local" }, "agents": { "defaults": { "model": { "primary": "ollama/qwen3:8b", "fallbacks": [ "openai/gpt-5.1-codex" ] }, "models": { "ollama/qwen3:8b": {}, "openai/gpt-5.1-codex": { "alias": "GPT" } }, "workspace": "/home/rgzn/.openclaw/workspace", "compaction": { "mode": "safeguard" }, "maxConcurrent": 4, "subagents": { "maxConcurrent": 8 } } }, "messages": { "ackReactionScope": "group-mentions" }, "commands": { "native": "auto", "nativeSkills": "auto" }, "gateway": { "port": 18789, "mode": "local", "bind": "loopback", "auth": { "mode": "token", "token": "d3f44d798d67a145cbcb0caa5aa9b02de9fdad623384039c" }, "tailscale": { "mode": "off", "resetOnExit": false }, "nodes": { "denyCommands": [ "camera.snap", "camera.clip", "screen.record", "calendar.add", "contacts.add", "reminders.add" ] } }, "meta": { "lastTouchedVersion": "2026.2.17", "lastTouchedAt": "2026-02-19T08:45:16.638Z" }, "models": { "providers": { "ollama": { "baseUrl": "http://172.28.240.1:11434/v1", "apiKey": "ollama-local", "api": "openai-completions", "models": [ { "id": "qwen3:8b", "name": "Qwen3 8B", "reasoning": false, "input": ["text"], "cost": { "input": 0, "output": 0 }, "contextWindow": 131072, "maxTokens": 8192 } ] } } } }

如下图将token替换之前截图保存的

如下图将workspace的中的rgzn替换成对应的名称(命令行@前的内容)

如下图将baseUrl中IP地址修改上面查询到的

 执行如下命令进入配置文件目录

cd ~/.openclaw

备份openclaw.json配置文件,执行如下指令:

mv openclaw.json openclaw.json.bak

执行如下命令修改

nano openclaw.json

 

如需调用云端deepseek的api配置方式如下:

nano ~/.openclaw/openclaw.json
{ "meta": { "lastTouchedVersion": "2026.2.9", "lastTouchedAt": "2026-02-12T00:45:51.950Z" }, "wizard": { "lastRunAt": "2026-02-12T00:45:51.943Z", "lastRunVersion": "2026.2.9", "lastRunCommand": "configure", "lastRunMode": "local" }, "agents": { "defaults": { "model": { "primary": "deepseek/deepseek-chat", "fallbacks": [ "openai/gpt-5.1-codex" ] }, "models": { "deepseek/deepseek-chat": {}, "openai/gpt-5.1-codex": { "alias": "GPT" } }, "workspace": "/home/syh/.openclaw/workspace", "compaction": { "mode": "safeguard" }, "maxConcurrent": 4, "subagents": { "maxConcurrent": 8 } } }, "messages": { "ackReactionScope": "group-mentions" }, "commands": { "native": "auto", "nativeSkills": "auto" }, "gateway": { "port": 18789, "mode": "local", "bind": "loopback", "auth": { "mode": "token", "token": "66682db26fe6f1693570085e2009c52bf8a688901aa542fc" }, "tailscale": { "mode": "off", "resetOnExit": false }, "nodes": { "denyCommands": [ "camera.snap", "camera.clip", "screen.record", "calendar.add", "contacts.add", "reminders.add" ] } }, "skills": { "install": { "nodeManager": "npm" } }, "tools": { "web": { "search": { "enabled": false }, "fetch": { "enabled": true } } }, "models": { "providers": { "deepseek": { "baseUrl": "https://api.deepseek.com/v1", "apiKey": "填入你的API KEY", "api": "openai-completions", "models": [ { "id": "deepseek-chat", "name": "DeepSeek Chat", "reasoning": false, "input": ["text"], "cost": { "input": 0.14, "output": 0.28 }, "contextWindow": 128000, "maxTokens": 4096 } ] } } } }

 

 

设置开机自动启动

可以运行以下 PowerShell 命令,查看 AUMID备用

Get-StartApps | Where-Object { $_.Name -like "*Ubuntu*" }


点击创建基本任务

任务命名(名称随意)

选择“计算机启动时”

默认“启动程序”即可

程序或脚本:

explorer.exe

添加参数(红色字体替换成前面查到的AUMID):shell:AppsFolder\CanonicalGroupLimited.Ubuntu24.04LTS_79rhkp1fndgsc!ubuntu2404

点击完成

右键点击任务,点击运行(应该看到ubuntu窗口打开)。

 

设置完成

 

 

Read more

如何下载OpenJDK?

如何下载OpenJDK?

一、选择 OpenJDK 的发行版 OpenJDK 是开源项目,不止一个下载入口,因为很多厂商会基于它做自己的发行版。常见的安全稳定选择有: * Adoptium Temurin(推荐) → 原 AdoptOpenJDK,社区口碑好,免费可商用。 * Amazon Corretto → 亚马逊维护,长期免费更新。 * Azul Zulu → Azul 公司维护,版本齐全。 * Red Hat OpenJDK → Red Hat 维护,Linux 服务器常用。 💡 如果你是初学者,我建议直接用 Adoptium Temurin,因为它界面友好、步骤简单。 二、下载 OpenJDK(以 Adoptium 为例) 1. 进入官网 打开浏览器,访问 https:

C语言代码优化与性能调优:编译器优化、内存优化、算法优化与工具链配合

C语言代码优化与性能调优:编译器优化、内存优化、算法优化与工具链配合

C语言代码优化与性能调优:编译器优化、内存优化、算法优化与工具链配合 一、前言:为什么代码优化与性能调优是C语言开发的进阶技能? 学习目标 * 理解代码优化的本质:通过优化代码结构和算法,提高程序的执行效率 * 理解性能调优的本质:通过分析程序的运行时间和资源消耗,定位和修复性能瓶颈 * 明确代码优化与性能调优的重要性:提高程序的执行效率、节省资源、提升用户体验 * 掌握本章学习重点:编译器优化、内存优化、算法优化、工具链配合、避坑指南、实战案例分析 * 学会使用优化技术和工具链调优C语言程序 重点提示 💡 代码优化与性能调优是C语言开发的进阶技能!通过优化和调优,你可以提高程序的执行效率,节省资源,提升用户体验。 二、模块1:编译器优化——利用编译器提高程序效率 2.1 学习目标 * 理解编译器优化的本质:通过编译器的优化选项,自动优化代码 * 掌握gcc的优化选项:-O0、-O1、-O2、-O3、-Os、-Ofast * 掌握编译器优化的避坑指南:

Java内功修炼(1)——时光机中的并发革命:从单任务到Java多线程

Java内功修炼(1)——时光机中的并发革命:从单任务到Java多线程

1.进程&线程 1.1 背景介绍 1950年代,计算机系统通常是单任务的。早期计算机一次只能执行一个程序,需要人工切换。这种设计简单但效率低下1960年代,多任务系统的概念开始萌芽。早期的大型机操作系统如IBM的OS/360引入了分时技术,允许多个用户同时使用计算机资源。虽然计算机实际一次只能干一件事,但靠这种“闪电式切换”,用户感觉电脑在同时处理多个任务1970年代,Unix操作系统诞生,采用了多任务设计。Unix通过进程调度和时间片轮转机制,允许多个程序并发执行。这一设计成为现代多任务系统的基础单任务(进程)系统:同一时间只能运行一个程序或任务,任务必须按顺序完成。用户需等待当前任务结束后才能启动新任务。系统资源由一个任务独占,缺乏并发能力,适用于简单应用场景 多任务(进程)系统:允许同时运行多个程序或任务,通过时间片轮转或优先级调度实现并发协同式:应用程序需要主动释放CPU资源。设计简单,但稳定性较差抢占式(现代主流):由操作系统强制分配资源。操作系统可以强制中断任务,确保系统响应能力,进一步提高了并发性能。现代操作系统如Windows、Linux均采用抢占式多任务,支持更

飞算JavaAI赋能企业级电商管理系统开发实践——一位资深开发者的技术选型与落地总结

飞算JavaAI赋能企业级电商管理系统开发实践——一位资深开发者的技术选型与落地总结

目录 * 一、背景与选型考量 * 二、开发环境与工具适配 * 1. 基础环境搭建 * 2. 飞算JavaAI插件配置 * 3. 版本控制与协作配置 * 三、核心模块设计与实现 * 1. 需求分析与模块拆分 * 2. 核心代码实现与技术亮点 * (1)实体类设计(带审计字段与枚举约束) * (2)服务层实现(带事务控制与业务校验) * (3)控制器实现(带权限控制与参数校验) * (4)网页端 * 四、系统架构与扩展性设计 * 1. 分层架构设计 * 2. 接口设计规范 * 3. 扩展性保障 * 五、资深开发者视角的工具评价 * 1. 代码规范性与可维护性 * 2. 对企业级业务的理解深度 * 3. 与资深开发者工作流的适配性 * 六、项目成果与经验总结 一、背景与选型考量 作为一名从业20余年的开发者,我亲历了从JSP+