OpenClaw dashboard命令后,无法登录web控制面板(在systemd服务无法启动的一些虚拟机里会碰到)

OpenClaw dashboard命令后,无法登录web控制面板(在systemd服务无法启动的一些虚拟机里会碰到)

先上结论

执行OpenClaw dashboard命令后,无法登录web控制面板,是因为OpenClaw的gateway服务没有起来。原来小龙虾OpenClaw 的命令没有学明白,先弄清楚命令:

openclaw onboard 是配置

openclaw dashboard是显示web控制面板登录信息

openclaw gateway --verbose 是启动网关

openclaw gateway start是启动网关服务

问题就是因为这台系统的systemd没有起作用,导致openclaw的gateway服务没有起来,所以控制面板无法登录。

OpenClaw status Overview ┌─────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────┐ │ Item │ Value │ ├─────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────┤ │ Dashboard │ http://192.168.1.12:18789/ │ │ OS │ linux 5.15.0 (x64) · node 24.12.0 │ │ Tailscale │ off │ │ Channel │ stable (default) │ │ Update │ pnpm · npm latest 2026.3.2 │ │ Gateway │ local · ws://127.0.0.1:18789 (local loopback) · unreachable (connect failed: connect │ │ │ ECONNREFUSED 127.0.0.1:18789) │ │ Gateway service │ systemd not installed │ │ Node service │ systemd not installed │ │ Agents │ 1 · 1 bootstrap file present · sessions 1 · default main active 43h ago │ │ Memory │ 0 files · 0 chunks · dirty · sources memory · plugin memory-core · vector unknown · fts ready · │ │ │ cache on (0) │ │ Probes │ skipped (use --deep) │ │ Events │ none │ │ Heartbeat │ 30m (main) │ │ Sessions │ 1 active · default default (16k ctx) · ~/.openclaw/agents/main/sessions/sessions.json │ └─────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────┘ 

解决方法就是手工启动gateway

openclaw gateway

问题:openclaw dashboard启动后,控制面板无法登录

(现在明白了,这个就是不管登录的,就是输出登录url的)

启动

openclaw dashboard 🦞 OpenClaw 2026.3.2 (85377a2) — I don't sleep, I just enter low-power mode and dream of clean diffs. Dashboard URL: http://127.0.0.1:18789/#token=020470d43987e733c26f50ab353bacdd7a09a98f115802f8 Copy to clipboard unavailable.

本地测试

curl http://localhost:18789/ curl: (7) Failed to connect to localhost port 18789 after 0 ms: Connection refused

尝试手动启动网关

openclaw gateway start

显示

openclaw gateway start 🦞 OpenClaw 2026.3.2 (85377a2) — Making 'I'll automate that later' happen now. Gateway service disabled. Start with: openclaw gateway install Start with: openclaw gateway Start with: systemctl --user start openclaw-gateway.service Start with: systemd user services are unavailable; install/enable systemd or run the gateway under your supervisor. Start with: If you're in a container, run the gateway in the foreground instead of `openclaw gateway`. skywalk@ubjail1:~$

因为这台机器在FreeBSD jail里,没有systemd,所以这里碰到了问题。

后来用这句话启动成功了

openclaw gateway --port 18789 --verbose

显示:

openclaw gateway --port 18789 --verbose 🦞 OpenClaw 2026.3.2 (85377a2) — I speak fluent bash, mild sarcasm, and aggressive tab-completion energy. 09:00:17 Registered plugin command: /pair (plugin: device-pair) 09:00:17 Registered plugin command: /phone (plugin: phone-control) 09:00:17 Registered plugin command: /voice (plugin: talk-voice) 01:00:17 [canvas] host mounted at http://0.0.0.0:18789/__openclaw__/canvas/ (root /home/skywalk/.openclaw/canvas) 01:00:17 [gateway] ⚠️ Gateway is binding to a non-loopback address. Ensure authentication is configured before exposing to public networks. 09:00:17 bonjour: starting (hostname=openclaw, instance="ubjail1 (OpenClaw)", gatewayPort=18789, minimal=true) 01:00:17 [heartbeat] started 01:00:17 [health-monitor] started (interval: 300s, startup-grace: 60s, channel-connect-grace: 120s) 01:00:17 [gateway] agent model: custom-api-p9mak7fap5m7vd53-aistudio-app-com/default 01:00:17 [gateway] listening on ws://0.0.0.0:18789 (PID 98100) 01:00:17 [gateway] log file: /tmp/openclaw/openclaw-2026-03-06.log 01:00:17 [browser/server] Browser control listening on http://127.0.0.1:18791/ (auth=token) 01:00:17 [ws] ← open remoteAddr=192.168.1.2 conn=4ebe1965…8b6a 01:00:18 [reload] config watcher error: Error: ENOSYS: function not implemented, watch '/home/skywalk/.openclaw/openclaw.json' 01:00:18 [ws] closed before connect conn=4ebe1965…8b6a remote=192.168.1.2 fwd=n/a origin=http://192.168.1.12:18789 host=192.168.1.12:18789 ua=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 code=1008 reason=control ui requires device identity (use HTTPS or localhost secure context) 01:00:18 [ws] → close code=1008 reason=control ui requires device identity (use HTTPS or localhost secure context) durationMs=284 cause=control-ui-insecure-auth handshake=failed lastFrameType=req lastFrameMethod=connect lastFrameId=2357e83d-02f6-4cbf-8594-750dedd48ef7

Gateway is binding to a non-loopback address.

启动gateway

openclaw gateway --port 18789 --verbose

看到这个提示:

01:00:17 [gateway] ⚠️  Gateway is binding to a non-loopback address. Ensure authentication is configured before exposing to public networks.

这是因为前段时间为了让它网络可用,配置了非本地地址访问,但是没配全。当时配置了文件,在里面加入了"http://192.168.1.12:18789" 这句:

 "gateway": { "port": 18789, "mode": "local", "bind": "lan", "controlUi": { "allowedOrigins": [ "http://localhost:18789", "http://127.0.0.1:18789", "http://192.168.1.12:18789" ] }, 

现在把这句去掉:"http://192.168.1.12:18789"

但是启动后还是可以登录到192.168.1.12 

估计是以前放开了gateway的lan功能。

启动onboard(其实是配置)

openclaw onboard

启动onboard提示

┌  OpenClaw onboarding

◇  Security ─────────────────────────────────────────────────────────────────────────────────╮
│                                                                                            │
│  Security warning — please read.                                                           │
│                                                                                            │
│  OpenClaw is a hobby project and still in beta. Expect sharp edges.                        │
│  By default, OpenClaw is a personal agent: one trusted operator boundary.                  │
│  This bot can read files and run actions if tools are enabled.                             │
│  A bad prompt can trick it into doing unsafe things.                                       │
│                                                                                            │
│  OpenClaw is not a hostile multi-tenant boundary by default.                               │
│  If multiple users can message one tool-enabled agent, they share that delegated tool      │
│  authority.                                                                                │
│                                                                                            │
│  If you’re not comfortable with security hardening and access control, don’t run           │
│  OpenClaw.                                                                                 │
│  Ask someone experienced to help before enabling tools or exposing it to the internet.     │
│                                                                                            │
│  Recommended baseline:                                                                     │
│  - Pairing/allowlists + mention gating.                                                    │
│  - Multi-user/shared inbox: split trust boundaries (separate gateway/credentials, ideally  │
│    separate OS users/hosts).                                                               │
│  - Sandbox + least-privilege tools.                                                        │
│  - Shared inboxes: isolate DM sessions (`session.dmScope: per-channel-peer`) and keep      │
│    tool access minimal.                                                                    │
│  - Keep secrets out of the agent’s reachable filesystem.                                   │
│  - Use the strongest available model for any bot with tools or untrusted inboxes.          │
│                                                                                            │
│  Run regularly:                                                                            │
│  openclaw security audit --deep                                                            │
│  openclaw security audit --fix                                                             │
│                                                                                            │
│  Must read: https://docs.openclaw.ai/gateway/security

配置ai模型

  ● Custom Provider (Any OpenAI or Anthropic compatible endpoint)

配置了星河社区的免费模型

配置skill

先Skip

Install missing skill dependencies
│  ◻ Skip for now (Continue without installing dependencies)
│  ◻ 🔐 1password
│  ◻ 📰 blogwatcher
│  ◻ 🫐 blucli
│  ◻ 📸 camsnap
│  ◻ 🧩 clawhub
│  ◻ 🎛️ eightctl
│  ◻ ♊️ gemini
│  ◻ 🧲 gifgrep
│  ◻ 🐙 github
│  ◻ 🎮 gog
│  ◻ 📍 goplaces
│  ◻ 📧 himalaya
│  ◻ 📦 mcporter
│  ◻ 📄 nano-pdf
│  ◻ 💎 obsidian
│  ◻ 🎙️ openai-whisper
│  ◻ 💡 openhue
│  ◻ 🧿 oracle
│  ◻ 🛵 ordercli
│  ◻ 🗣️ sag
│  ◻ 🌊 songsee
│  ◻ 🔊 sonoscli
│  ◻ 🧾 summarize

后面的很多key,也先忽略

配置自动执行

新手用户‌:建议启用所有四个 hooks,以获得完整的自动化体验

◇  Hooks ──────────────────────────────────────────────────────────────────╮
│                                                                          │
│  Hooks let you automate actions when agent commands are issued.          │
│  Example: Save session context to memory when you issue /new or /reset.  │
│                                                                          │
│  Learn more: https://docs.openclaw.ai/automation/hooks                   │
│                                                                          │
├──────────────────────────────────────────────────────────────────────────╯

◆  Enable hooks?
│  ◻ Skip for now
│  ◻ 🚀 boot-md
│  ◻ 📎 bootstrap-extra-files
│  ◻ 📝 command-logger
│  ◻ 💾 session-memory

配置完毕显示:└  Onboarding complete. Use the dashboard link above to control OpenClaw.

最终手工启动gateway

openclaw gateway

可以正常浏览啦!

Read more

GHCTF2025-WEB题解:如何用SSTI绕过WAF黑名单(附实战payload)

从GHCTF2025实战出发:深度拆解SSTI黑名单绕过策略与高阶Payload构造 最近在GHCTF2025的WEB赛道上,一道看似简单的文件上传题目,却让不少选手陷入了“知道有洞,但payload总被拦截”的困境。这道题表面上是文件上传,实际上却是一场针对SSTI(服务器端模板注入)绕过能力的深度考验。我在实际测试中发现,很多选手能够快速识别出SSTI漏洞的存在,但在面对严格的黑名单过滤时,却往往束手无策,反复尝试的payload都被WAF无情拦截。 这种情况在真实的渗透测试和CTF比赛中并不少见。WAF(Web应用防火墙)的过滤规则越来越智能,传统的{ {7*7}}测试虽然能确认漏洞,但真正要执行命令、读取文件时,那些包含os、flag、__builtins__等关键词的payload几乎都会被第一时间拦截。这道题的精妙之处在于,它模拟了一个相对真实的防御环境——不仅过滤常见敏感词,还对下划线这种在Python反射中至关重要的字符进行了拦截。 本文将从实战角度出发,不局限于GHCTF2025这一道题目,而是系统性地探讨SSTI黑名单绕过的核心思路、技术原理和进阶技巧。我会结

前端通用 Token 全流程操作指南(常见常用版)

前端通用 Token 全流程操作指南(常见常用版) 本文梳理 所有前端框架通用 的 Token 操作逻辑,剥离具体项目/技术栈细节,聚焦「获取→存储→使用→过期→清除」的核心生命周期,每个步骤均标注「通用场景+通用方案+注意事项」,适合所有前端开发场景,可直接作为开发速查表。 前置说明:Token 的核心定位 Token 是后端签发的临时访问凭证,核心作用是: 1. 证明“当前用户是谁”(身份认证); 2. 证明“当前用户有权限访问”(权限校验)。 一、第一步:登录成功获取 Token 通用场景 用户通过账号密码/验证码/第三方登录等方式,向后端发起登录请求,后端验证通过后,在响应体中返回 Token。

前端图片加载失败、 img 出现裂图的原因全解析

在前端开发过程中,我们几乎都遇到过这种情况: 页面中某张图片加载不出来,显示成一个小小的“裂图”图标。 这看似简单的问题,实际上可能由多种原因造成,尤其是在 HTTPS 环境下,混合内容机制(Mixed Content) 是最常见、也最容易被误解的根源之一。 本文将带你系统梳理裂图的各种原因、排查思路,并重点讲清楚混合内容的原理与浏览器行为。 一、什么是“裂图”? “裂图”(broken image)是指浏览器尝试加载 <img> 标签的图片资源失败时的表现形式。 常见表现: * 图片区域显示为灰底、叉号、占位符; * 控制台出现 Failed to load resource 或 Mixed Content 警告; * Network 面板中图片请求状态码为 404 / 403 / blocked。 二、常见的裂图原因汇总

WebRTC / HLS / HTTP-FLV 的本质区别与选型指南

WebRTC / HLS / HTTP-FLV 的本质区别与选型指南

在做系统级直播(而不是自己本地播放)时,很多人都会遇到一个经典问题: WebRTC、HLS、HTTP-FLV 到底有什么区别? 项目中到底该选哪个? 传输协议不同 → 延迟不同 → 兼容性 / 稳定性 / 成本不同 在系统里选哪个,核心看两点: 你要多低的延迟?你要多强的兼容和稳定? 一、简介 * WebRTC:超低延迟(0.2 ~ 1s),适合实时监控、无人机、实时指挥 * HLS(hls.js):最稳、最通用(5 ~ 15s),适合活动直播、课程、公开大并发 * HTTP-FLV(flv.js):中低延迟(1 ~ 3s),适合想比 HLS 低延迟,但不想用 WebRTC 的场景(