本质是多进程争抢TCP 22端口,需禁用Windows自带OpenSSH服务并重启,再将OpenClaw的SSH端口显式改为2222等高位端口,同步更新客户端URL及防火墙规则。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw端口冲突导致服务无法启动或SSH连接被重置(Connection reset by ip port 22),本质是多个进程争抢TCP 22端口造成的资源抢占。避免再次出现的关键不是临时释放端口,而是切断冲突根源并固化端口分配逻辑。
确认当前22端口真实占用者
以管理员身份打开 PowerShell,执行:
netstat -ano | findstr :22
观察输出中 PID 列——若同时出现两个以上 LISTENING 状态的条目,说明存在隐性冲突。常见干扰源包括:Win32-OpenSSH 的 sshd.exe、Gitea 内置 SSH 服务、Git for Windows 自带的 OpenSSH、甚至某些远程控制软件(如 TeamViewer 启用的 SSH 兼容层)。
这一步必须做,否则后续所有操作都只是在掩盖症状。仅靠任务管理器搜索“sshd”可能漏掉无窗口进程。
永久禁用 Windows 自带 OpenSSH 服务
方法一:通过服务管理器禁用(推荐)
WIN+R → 输入 services.msc → 找到【OpenSSH Authentication Agent】和【OpenSSH SSH Server】→ 右键 → 属性 → 启动类型设为“禁用” → 停止正在运行的服务。
方法二:命令行强制卸载(适用于离线安装版本)
以管理员身份运行 CMD → 进入 C:\Windows\System32\OpenSSH 目录 → 执行:
uninstall-sshd.ps1
【禁用后必须重启系统】,否则旧进程残留的 socket 句柄仍可能被复用,导致 Gitea 或 OpenClaw 启动时仍报 Connection reset。
为 OpenClaw 显式绑定非默认端口
第一步:编辑 OpenClaw 配置文件(通常为 config.yaml 或 app.ini)
定位 ssh → port 字段,将其从 22 改为一个高位端口,例如 2222 或 2024。
第二步:同步更新客户端连接地址
所有调用 OpenClaw 的 Git 客户端 URL 必须同步改为 git@host:2222/xxx.git,否则仍会尝试连 22 端口并失败。
第三步:验证新端口是否被监听
启动 OpenClaw 后执行:
netstat -ano | findstr :2222
确认输出中存在 LISTENING 状态且对应 PID 是 OpenClaw 主进程,而非其他程序。
第四步:防火墙放行新端口
PowerShell 中执行:
New-NetFirewallRule -Name "OpenClaw-SSH-In-TCP" -DisplayName "OpenClaw SSH (2222)" -Enabled True -Direction Inbound -Protocol TCP -LocalPort 2222 -Action Allow


















