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

前端实战:手把手教你实现浏览器通知功能

前端实战:手把手教你实现浏览器通知功能

前端入门:浏览器通知功能从0到1实现指南 作为前端学习者,你可能见过这样的场景:打开网页版聊天工具,就算把浏览器最小化,桌面也会弹出“新消息”提醒;或者某些网站的活动通知,会直接显示在电脑/手机桌面上。这种功能就是「浏览器桌面通知」,今天我们就从零开始,搞懂它、学会用它。 一、先搞懂3个基础问题 1. 什么是浏览器桌面通知? 简单说,就是网页能在浏览器窗口外面(比如电脑桌面、手机屏幕)给你发提醒。哪怕浏览器最小化、甚至页面切到后台,只要权限允许,都能收到通知,不用一直盯着网页。 2. 什么时候会用到它? 常见场景很贴近日常: * 网页版微信/QQ的新消息提醒; * 工作系统的审批提醒、任务到期通知; * 电商网站的订单状态更新(比如“你的快递已发货”); * 新闻/小说网站的订阅内容更新提醒。 3. 用起来难吗?有什么限制? 不难!核心就2步:先让用户同意开启通知(申请权限)

Tauri 前端配置把任何前端框架“正确地”接进 Tauri(含 Vite/Next/Nuxt/Qwik/SvelteKit/Leptos/Trunk)

1. 配置清单:先把底层规则记住 把下面三条当作 Tauri 前端接入的硬规则: 1. 只走静态路线:SSG / SPA / MPA Tauri 不原生支持基于服务端的方案(例如 SSR)。(Tauri) 2. 移动端真机开发必须有“可被设备访问”的 dev server 需要让 dev server 绑定到你的内网 IP(或按 Tauri CLI 提供的 host),否则 iOS/Android 真机加载不到页面。(Tauri) 3. 保持标准的 Client ↔ API 模式 不要把 SSR 那种“前端渲染与 API 混在一起”的混合模式搬进 Tauri(

别再做“调包侠”!AI模型的底层逻辑,全靠这门“数学语言”撑着

别再做“调包侠”!AI模型的底层逻辑,全靠这门“数学语言”撑着

做AI、搞数据这么久,你有没有过这样的时刻? 跟着教程敲代码,能轻松跑通CNN、Transformer,甚至能调参调出不错的效果,但被人问起“模型前向传播到底在算什么”“特征降维的核心逻辑是什么”,却支支吾吾说不出个所以然; 面试时,HR随口一问“奇异值分解在推荐系统里怎么落地”“梯度下降的线性代数本质是什么”,瞬间大脑空白,明明学过无数次,却怎么也说不明白; 工作中,模型出现过拟合、收敛太慢,只能盲目调整学习率、增减网络层数,却找不到问题根源——其实你心里清楚,自己只是“会用AI”,并没有真正“懂AI”。 很多人都陷入了一个误区:学AI只追算法、练代码,却忽略了支撑所有模型的“底层骨架”——线性代数。就像狗熊会一直强调的,AI的本质是数学,而线性代数,就是AI能“思考”“运算”的核心语言。 我们不妨拆解一下,那些你天天在用的AI模型,底层全是线性代数的身影,只是你没意识到而已。 AI模型的底层逻辑,本质是线性代数的“花式运算” 很多人觉得线性代数“