博客 (42)

明明已登录 clawhub.ai 网站,但是 clawhub login 的时候仍然提示:

CLI login

Missing state.

Run the CLI again to start a fresh login.


解决办法:

把 PowerShell 中的那个网址复制出来,在浏览器上打开即可。网址格式类似:

https://clawhub.ai/cli/auth?redirect_uri=http%3A%2F%2F127.0.0.1%3A64172%2Fcallback&label_b64=******&state=******


xoyozo 半个月前
225

我来为你整理 Windows 本地部署 OpenClaw 并通过长连接方式接入企业微信的完整步骤:

前置条件

  • 已安装企业微信最新版客户端

  • 已安装 OpenClaw(Node.js 版本需 ≥ 22.0)

  • 管理员权限的企业微信账号(否则看不到 API 模式选项)

第一步:在企业微信创建长连接机器人

  1. 打开企业微信客户端 → 工作台 → 智能机器人 → 创建机器人

  2. 点击底部小字 "如需使用自有系统获取成员与机器人的聊天并输出回复,可切换至 API 模式创建"

  3. 选择 「长连接」 方式(不要选 Webhook 回调模式)

  4. 复制保存生成的 Bot ID 和 Secret(后续需要用到)

  5. 先不要点击保存,保持页面打开,等完成 OpenClaw 配对后再保存 

第二步:Windows 本地安装企微插件

打开 PowerShell 或 命令提示符,依次执行以下命令:

1. 安装企业微信插件

openclaw plugins install @wecom/wecom-openclaw-plugin

如果安装失败,可尝试备用命令: openclaw plugins install @tencent/openclaw-wecom

2. 重启 OpenClaw 网关

openclaw gateway start

重要:这个窗口不能关闭,关闭后机器人会掉线。需要再新开一个终端窗口执行后续命令。

3. 添加企业微信渠道

在新开的终端窗口执行:

openclaw channels add

按提示操作:

  1. 用方向键选择 企业微信(WeCom) → 回车

  2. 粘贴输入 Bot ID → 回车

  3. 粘贴输入 Secret → 回车

  4. 选择 Finished/Done 完成基础配置

  5. 配对方式选择 Pairing

第三步:完成配对授权

1. 回到企业微信,找到刚创建的机器人,发送任意消息(如"你好")

2. 机器人会自动回复一条配对码消息(包含授权命令)

3. 复制消息最后一行的配对码

4. 在终端中执行配对命令:

openclaw pairing approve openclaw-wecom 你的配对码

5. 提示"授权成功"即完成配对

第四步:保存并启用机器人

1. 回到企业微信机器人配置页面,点击 保存并创建

2. 现在可以在企业微信中与机器人正常对话了

长连接 vs 回调模式的优势

特性长连接模式传统回调模式
公网IP/域名❌不需要✅必须需要
内网穿透❌不需要✅必须配置
消息加解密❌无需处理✅需要处理
稳定性高(无回调失败问题)低(经常回调失败)
主动推送
✅支持✅支持

常见问题

问题解决方案
没有 API 模式选项确认你是企业微信管理员,普通成员看不到该选项
插件安装失败检查网络连接,或尝试切换 npm 镜像源: npm config set registry https://registry.npmmirror.com/
配对码无法获取确认选择了 API 模式和长连接,重启 OpenClaw 后重试
机器人不回复检查网关窗口是否保持运行,重新执行配对命令
需要 7×24 小时在线建议部署到云服务器,本地关机后机器人会离线

命令速查表

# 安装插件
openclaw plugins install @wecom/wecom-openclaw-plugin

# 启动网关(窗口不能关)
openclaw gateway start

# 添加渠道
openclaw channels add

# 配对授权
openclaw pairing approve openclaw-wecom 【配对码】

# 重启服务
openclaw gateway restart

# 查看状态
openclaw channels status

配置完成后,你就可以在企业微信中与 OpenClaw 对话了。如果需要让个人微信也能使用,可以在企业微信后台 "我的企业" → "微信插件" 中生成二维码,用个人微信扫码关注企业即可。

xoyozo 半个月前
1,920

在MySQL中,没有单条SQL语句能直接优化和修复所有表。不过,有以下两种常用方法可以实现这个需求:

1. 使用MySQL命令行工具:

mysqlcheck -u root -p --auto-repair --optimize --all-databases

这条命令会提示输入密码,然后自动修复并优化所有数据库中的所有表。

2. 如果确实需要在MySQL客户端内执行,可以生成批处理语句:

SELECT CONCAT('OPTIMIZE TABLE ', table_schema, '.', table_name, '; REPAIR TABLE ', table_schema, '.', table_name, ';') 
FROM information_schema.tables 
WHERE table_schema NOT IN ('information_schema','mysql','performance_schema','sys');

执行此查询后,复制结果中的所有语句再执行。

注意:执行表优化和修复操作需要相应权限,且在高负载生产环境中应谨慎操作,最好在低峰期进行。

xoyozo 2 个月前
303

1、在“视图”选项卡上展开“视觉帮助”

“视觉帮助”框启动器

2、在“对齐和粘附”对话框中的“常规”选项卡上,在“当前活动”下,清除“粘附”复选框。

关闭粘附功能

3、操作方式

直接拖动连接线的端点仍然是自动粘附至形状的,按住 Alt 再拖动则会在任意位置停留。


此设置的缺点是:无法在鼠标自动依靠形状时自动提示连接线,需要复制已有连接线来达到新建的目的。

xoyozo 5 个月前
1,827

一、安装 Ollama

官网下载安装 Ollama。

你可以更改大模型存放目录,也可以开放远程访问

查看版本号:

ollama --version


二、在 shell 中安装和运行模型

Models 中选择一个你想部署的模型,复制安装命令,并在终端中执行。

官方建议:应该至少有 8 GB 的 RAM 来运行 7b 版本,16 GB 的 RAM 来运行 13b 版本,32 GB 的 RAM 来运行 33b 版本

本文以 deepseek-r1:7b 为例。

下载模型

ollama pull deepseek-r1:7b

Tip: 下载即将完成时速度可能会变得非常慢,只要按 Ctrl+C,再重新执行一次命令,就会继续正常下载。

显示模型信息

ollama show deepseek-r1:7b

运行模型(一次性响应)

ollama run deepseek-r1:7b "写一首诗"

运行模型(进入聊天模式)

ollama run deepseek-r1:7b

结束当前会话

/bye

列出所有模型

ollama list

列出当前加载的模型

ollama ps

停止当前正在运行的模型

ollama stop deepseek-r1:7b

删除一个模型

ollama rm deepseek-r1:7b


三、使用 REST API 调用模型

修改端口

ollama serve --port 11434

/api/generate 接口:生成一次性响应

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:7b",
  "prompt":"为什么天空是蓝色的?"
}'

/api/chat 接口:与模型聊天

curl http://localhost:11434/api/chat -d '{
  "model": "deepseek-r1:7b",
  "messages": [
    { "role": "user", "content": "你好呀!" }
  ]
}'


四、在 .NET 中调用

1、直接 HTTP 调用(基础方案)

    创建 HttpClient,使用 PostAsJsonAsync 请求,使用 ReadFromJsonAsync 读取结果。

2、使用 OllamaSharp 库(推荐方案)

    创建 OllamaApiClient,使用 SelectedModel 设置模型,使用 GenerateAsync 获得结果。或创建对话 ollama.Chat(),并 Send 内容。

3、.NET Aspire 集成(企业级方案)

    适合微服务架构,结合容器化部署。


OllamaSharp 库”和“.NET Aspire 集成”两种方案怎么选?

OllamaSharp 库:定位轻量级模型交互 SDK,适用于独立应用、微服务中的 AI 组件等场景,技术复度低,支持模型对话/生成/管理、流式响应、多模态支持,需自行实现监控、熔断。

.NET Aspire 集成:定位企业级云原生 AI 服务编排框架,适用于多服务协同的分布式系统,技术复度高,支持服务编排、健康检查、弹性伸缩、混合云部署,内置可观测性仪表盘、自动故障转移。

决策建议:初创项目用 OllamaSharp 快速试错,用户量破千后通过 Aspire 重构。两者并非互斥,可在 Aspire 中封装 OllamaSharp 客户端,兼顾灵活性与运维能力。

xoyozo 9 个月前
5,079

以下列出本人所遇到的情况及处理方法,肯定不全,但都有用。

  1. 使用系统自带清理工具进行清理

    Windows 7 / 8 / 8.1 / 10:在 C 盘上点击右键属性 - 磁盘清理 - 清理系统文件 - 视情况勾选 - 确定

    Windows 11:在 C 盘上点击右键属性 - 详细信息 - 临时文件 - 视情况勾选 - 确定

  2. 关闭“传递优化

    设置 - Windowx 更新 - 高级选项 - 传递优化,关闭“允许从其他设备下载”

    其实前面说到的清理临时文件中已经包含了“传递优化文件”,所以这里按个人喜好选择是否关闭。

  3. 更改虚拟内存路径

    可以将虚拟内存路径更改为非系统盘,但建议是固态硬盘。

  4. 关闭系统还原

    当遇到系统问题时,如果你喜欢重装系统,而不是系统还原,那么可以关闭它。

  5. 更改桌面、文档、下载等用户文件夹的位置

    将这些目录路径更改到非系统,但仍然建议是固态硬盘。以 Windows 11 的桌面目录为例:

    打开资源管理器 - 主文件夹,右键点击“桌面”属性,切换到“位置”,移动。

  6. 软件安装到其它盘

    有些电脑管理软件有软件迁移功能,但我还是建议先卸载软件,再安装到其它盘符。

  7. 将软件文档路径更改到其它盘

    如果不想把软件安装到其它盘(譬如只有C盘是固态硬盘),那么可以将文档路径更改到其它盘,譬如:

    微信:☰ - 设置 - 文件管理 - 更改

    QQ:☰ - 设置 - 存储管理 - 更改存储路径(注意是聊天消息那个)

    企业微信:头像 - 设置 - 存储管理

    钉钉:头像 - 设置与隐私 - 通用 - 缓存目录

    千牛:设置 - 数据存储文件夹

  8. 清理浏览器缓存

    Chrome:┇ - 设置 - 隐私与安全 - 删除浏览数据

    Edge:… - 设置 - 隐私、搜索和服务 - 删除浏览记录 - 选择要清除的内容

    Firefox:☰ - 设置 - 隐私与安全 - 历史记录 - 清除历史记录

  9. VMware 虚拟机

    在已安装的镜像上点击右键 - 管理 - 清理磁盘

    把已安装的镜像复制到其它磁盘,再添加到 VMware 中,删除原镜像文件。

  10. 更改 Navicat 数据库备份目录

    如果你的 Navicat 启用了自动运行的备份任务,那么可以更改备份路径。

    在连接上点击右键编辑连接,切换到高级,更改设置位置。

  11. SQL Server 数据库文件瘦身

    若 SQL Server 数据目录(C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA)中有很多较大的数据库日志文件(.ldf),可以按需采取以下措施:

    使用 SSMS 连接到你的 SQL Server 实例;数据库恢复模式设置为“简单”;右键点击要压缩的数据库,选择“任务”->“收缩”->“文件”,选择“日志”,在“释放未使用的空间前重新组织页”一项中设置为 0MB,然后点击“确定”按钮。

最后推荐一款免费软件 TreeSize Free,可以查看磁盘中各目录和文件占用空间大小,小白不要乱删文件哦,删错了可就得重装系统了。

xoyozo 1 年前
2,140
  1. 登录 UCenter,添加应用

    image.png

    选择 DiscuzX,并填写名称和密钥等信息

  2. 正常的话,提交后会自动更新缓存文件 /uc_server/data/cache/apps.php,如果没有更新,检查添加这个文件的写入权限,并在后台更新缓存。

  3. 在编辑应用界面底部可以看到“应用的 UCenter 配置信息”

    image.png

  4. 复制这段内容,粘贴到 /config/config_ucenter.php。

  5. 在 Discuz! 控制面板 - 站长 - UCenter 设置 中可以看到这些配置信息。标签名为灰色的是从配置文件读取的,无法在此修改。

  6. 返回 UCenter 中心的应用列表可以看到“通信成功”

    image.png

xoyozo 1 年前
2,760

今天早上同事反映论坛某管理账号无法登录,于是我尝试用创始人账号登录,也不行,第一反应就是中招了。

于是进阿里云控制台,发现云安全中心有许多安全警告,类型是网站后门,幸好 nginx 中设置了仅部分文件可执行 PHP,这些后门文件无法被执行。

尝试在 config_global_default.php 文件中添加创始人,但账号必须是副站长等管理账号才能成为创始人。

于是借用一个小号,从表 pre_ucenter_members 中将这个小号的 password 和 salt 复制到创始人账号中,这样创始人账号就可以用这个小号的密码登录了。

进入论坛后台,在 工具-运行记录-系统记录-后台访问 中查看入侵时间段的记录(操作、时间、IP 等),可搜索。

发现基本上在操作模板管理和专题管理。

对比时间,发现进入后台操作在先,上传后门在后。

查询 web 访问日志,通过访问文件路径或 IP 查询,在进入论坛后台之间,他进入了 UCenter 的后台,但是再往前就没有记录了。

因此基本可以确定:

黑客从 UCenter 修改了某管理员账号的密码(可能是利用漏洞),然后登录论坛后台修改了创始人的密码(可能也是用 UCenter 改的),通过模板管理和专题管理功能的上传功能上传了后门文件。

索性他没有对数据进行破坏性处理,也没有挂马,只是发现后门文件无法执行就放弃了。

xoyozo 1 年前
1,127

按快捷键 Ctrl+P,在打印预览页面中复制。或按 F12 在源代码中复制。

xoyozo 2 年前
2,946

默认端口带来安全隐患,建议更改为 50000-60000 之间的端口号。


Windows 远程桌面(RDP)(3389)

  1. 在 Windows 防火墙中放行新端口:在“入站规则”中找到“Open RDP Port 3389”复制并粘贴该规则,修改端口和名称。

    若没有这个规则:新建规则 - 端口 - TCP - 特定本地端口(填写新的端口号)- 允许连接 - 名称

  2. 如有其它防火墙或安全组也一并配置(如阿里云 ECS 的安全组)

  3. 打开注册表(regedit),展开到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp,右侧双击“PortNumber”切换到“十进制”,将 3389 改为新端口号

  4. 重启生效

  5. 在防火墙和安全组中禁止原默认端口


SSH (22) 之 CentOS

  1. 从阿里云控制台登录服务器(如果未设置 root 密码则先设置),直接跳到第 4 步

  2. 在外部防火墙中放行新的端口号(如阿里云 ECS 的安全组)

  3. 在内部防火墙中放行新的端口号(如 firewalld 或 iptables),使用宝塔面板的直接在面板“安全”页面设置即可

  4. 打开 SSH 配置文件

    sudo vi /etc/ssh/sshd_config
  5. 找到并编辑 Port 行的端口号并启用,改为其它端口号

    #Port 22
  6. 重新加载使生效

    sudo systemctl reload sshd
  7. 在防火墙和安全组中禁止原默认端口

  8. 建议使用 SSH 密钥对代替传统账号密码登录


FTP (21) 之 FileZilla Server Windows 版

  1. 一般地,在 Windows Defender 防火墙中是以添加应用 filezilla-server.exe 的方式允许的,所以不需要更改端口。如果以端口方式允许的,那么在入站规则中允许新的端口。

  2. 如有其它防火墙或安全组也一并配置(如阿里云 ECS 的安全组)

  3. 打开 Administer FileZilla Server,打开菜单 - Server - Configure - Server listeners,右侧窗口中将 Port 改为新端口(强烈建议将 Protocol 改为“Require explicit FTP over TLS”,即禁止 FTP 协议,改为使用 FTPS 协议)

  4. 从防火墙和安全组移除 21 端口


FTP (21) 之 Pure-Ftpd(宝塔面板)

  1. 在防火墙中放行新的端口号(如阿里云 ECS 的安全组)

  2. 进入宝塔面板,打开“安全”,添加端口规则 TCP

  3. 在宝塔面板中进入软件商店,找到 Pure-Ftpd 并打开,切换到“配置修改”,搜索“Bind”,删除开头的“#”,将端口号 21 改为新端口号,保存(强烈建议将 TLS 项改为 2,即禁止 FTP 协议,仅允许 FTPS 协议)

  4. 切换到“服务”选项卡,点击“重启”

  5. 从防火墙和安全组移除 21 端口


MySQL (3306) 之阿里云云数据库 RDS MySQL 版

  1. 打开控制台 RDS 实例页,左侧菜单点击“白名单与安全组”,切换到“安全组”查看正在使用的安全组ID

  2. (若使用了安全组)打开控制台 ECS 首页,左侧菜单点击“安全组”,找到这个安全组,放行新的端口

  3. 打开控制台 RDS 实例页,左侧菜单点击“数据库连接”,点击“修改连接地址”,在弹出框中修改端口

  4. 从防火墙和安全组移除端口(确保没有其它实例正在使用此端口)


PolarDB (3306)

  1. 打开控制台 PolarDB 集群实例页,左侧菜单点击“集群白名单”,切换到“安全组”查看正在使用的安全组ID

  2. (若使用了安全组)打开控制台 ECS 首页,左侧菜单点击“安全组”,找到这个安全组,放行新的端口

  3. 打开控制台 PolarDB 集群实例,左侧菜单点击“基本信息”,点击“主地址”和“集群地址”的“配置”,在“网线信息”中点击“更多”更改端口

  4. 从防火墙和安全组移除端口(确保没有其它实例正在使用此端口)


MSSQL (1433) 之阿里云云数据库 RDS SQL Server 版

  1. 打开控制台 RDS 实例页,左侧菜单点击“白名单与安全组”,切换到“安全组”查看正在使用的安全组ID

  2. (若使用了安全组)打开控制台 ECS 首页,左侧菜单点击“安全组”,找到这个安全组,放行新的端口

  3. 打开控制台 RDS 实例页,左侧菜单点击“数据库连接”,点击“修改连接地址”,在弹出框中修改端口

  4. 从防火墙和安全组移除端口(确保没有其它实例正在使用此端口)


Redis (6379) 之阿里云云数据库 Redis 版

  1. 打开控制台 Redis 实例页,左侧菜单点击“白名单设置”,切换到“安全组”查看正在使用的安全组ID

  2. (若使用了安全组)打开控制台 ECS 首页,左侧菜单点击“安全组”,找到这个安全组,放行新的端口

  3. 打开控制台 Redis 实例页,在“连接信息”中点击“修改连接地址”,在弹出框中修改端口

  4. 从防火墙和安全组移除原端口(确保没有其它实例正在使用此端口)


宝塔面板 (8888)

  1. 在防火墙中放行新的端口号(如阿里云 ECS 的安全组),或直接在私网其它 ECS 上的浏览器上直接访问原 8888 端口的地址

  2. 进入宝塔面板,打开面板设置,切换到“安全设置”页,找到“面板端口”,点击“设置”

  3. 在防火墙和安全组中禁止原默认端口


IIS 管理服务(Web 部署)(8172)

  1. 在 Windows 防火墙中放行新端口:在“入站规则”中找到“Web 管理服务(HTTP 流量入站)”因其为预定义规则且复制也无法修改,所以按其设置新建一个,并指定新的端口。

  2. 如有其它防火墙或安全组也一并配置(如阿里云 ECS 的安全组)

  3. 打开 IIS 管理器 - 管理服务,右侧停止,左侧修改端口,右侧应用、启动

  4. VS 中发布配置修改“服务器(E)”项添加端口(域名:端口),第一次连接接受证书

  5. 在防火墙和安全组中禁止原默认端口




xoyozo 2 年前
2,897