Margrop
Articles402
Tags859
Categories7

Categories

1password 24GB VRAM 2K 3.6 Flash 30B dense 30s timeout 4-bit 量化 6-DoF SLAM AC ACL ACL 切换 ACP AI AI Agent AI Coding Assistant AI Tech AI tutor AI 安全 AI 日记 AI编程助手 AI辅助 AI辅助编程 AMIE AP API API 定价 API 降价 ARC-AGI-3 ASR ATEM chat 模板 Agent Agent Harness Agent 入侵 Agent 架构 Agent 检索 Agent 沙箱 Agent 系统 Agent 路由 AgentPlan Agentic AI Agentic tools Ai2 Alertmanager AllenAI Android 17 Antigravity AppDaemon AppWorld Aqara Astra Attention Baseten Blog CC-Switch CI/CD CLI Tools CLI 工具 CLI工具 CPU 推理 CSRF Cache Hit Rate Caddy Categories 404 ChatGPT Claude Code Claude Sonnet ClawLoader Cloudflare Code Interpreter Codex Coding Plan Coding Plan Dashboard ComfyUI Computer Use Context Compression Cookie 认证 Cosmos-H-Dreams Cost Optimization Cron D1 DFIR DIY-MINI Date DeepSeek DeepSeek V4 Flash Diagrams.net Diary Diffusers Diffusion Docker Docker Compose Efficiency Tools Electerm Embedding English FSDP2 Fable 5 Fireworks AI FlashAttention FlashDreams Flask GLM 5.2 GLM-5.2 GPT-4.1 GPT-5.6 GPT-Live GPT-Red GPU 加速 GPU 性能分析 Gateway Gemini Gemini 3.5 Flash Gemini API Gemini CLI Gemini Omni Flash Gemma 4 12B Gemma Translator Gemma4 GitHub GitHub Actions GitHub PR Google Google AI Google Research Grabette Gripette HA HADashboard HF Security Incident Hailuo Hermes HermesAgent Hexo HomeAssistant Hugging Face Hugo IBM Research IP IPv4 Inference Providers Isaac Lab Java KV cache Kimi Kimi Code Kimi K3 Kubernetes LFM2.5 LFM2.5-VL LLM Router LVM‑Thin LeRobot Linux Liquid AI LiquidAI Live Translate LoRA Luna MCP MTP MacOS Magpie TTS Managed Agents Markdown Memory 上限 Meta Microsoft 365 Copilot MiniMax MiniMax H3 Mistral Shieldstral Model Routing MuJoCo Warp Multi-Agent Muse Glimmer MySQL NAS NIM NVIDIA NeMo Automodel Nemotron 3 Embed NewAPI Newton Nginx Node-RED Node.js Nunchaku OAuth 凭据 OCR OOM OlmoEarth On-device AI Open Source Open Viking OpenAI OpenAI 兼容 OpenClaw OpenCode OpenResty OpenWrt PII 检测 PPPoE Physical AI Pollen Robotics Portainer PostgreSQL ProcessOn Project Astra Prometheus Prompt Injection Proxmox VE PyTorch Qwen3-VL Qwen3.6 RPC RTEB Real-Time Inference Red Teaming Responses API Restart SIGTERM SNAP SOCKS5 SOCKS5 代理 SPED SSH 审计 SSL SVDQuant Scientific Computing Self-Forcing Distillation Session Shell Skill 管理 Sol Subagent Surgical Robotics Synology NAS TTS Terra Think button TimeMachine TutorMoments UI 微调 UML Uptime Kuma V4-Pro VPN VPS VoiceEQ WARP Web WebRTC WebSocket Win11 Windows Workers World Foundation Model activate ad adb adblock agent agentic aligenie aliyun alpine annotation aop authy autofs backup baidupan bash bg-review bitwarden boot brew browser budget control caddy2 cc-switch-cli cdn centos cert certbot charles chat chrome classloader client clone closures cloudflare cmd command commit commoditization conn_id container cron 排错 crontab cross_sync ctyun cyber capability dashboard ddsm demo dependency deploy developer devtools disconnect topic dll dns docker domain download drafter draw drawio dsm dump dylib easytier edge environment hooks exception exit code 1 export fail2ban feign firewall-cmd flow fork free tier frontier hosted model frp frpc frps fuckgfw full-duplex function fuzzy match gateway gcc gfw git github glm-latest golang gperftools gridea grub guardrail lockout gvt-g hacs havcs heap hello hexo hibernate hidpi hoisting homeassistant hosts html htmlparser https huggingface_hub iKuai iMessage idea image img img2kvm immortalwrt import index inference cost install intel io ios ip iptables iptv ipv6 iso java javascript jetbrains jni jnilib jpa js json jsonb jupter jupyterlab jvm k8s keepalive keepalive ping timeout kernel key kid kms kodi koolproxy koolproxyr kvm lan lastpass launchctl learning lede letsencrypt linux live llama.cpp low-code lvm lxc m3u8 mac macos mariadb markdown maven md5 mdadm memory 上限 microcode mirror modem modules monitor mount mstsc multimodal mysql n2n n5105 nas network newapi nfs no close frame node node-red nodejs nohup notepad++ npm nssm ntp one-api 容器 oop open weights openclaw openfeign openssl openviking os otp ovz p14 packet capture pat pdf pem perf ping pip plugin png powerbutton print pro productive struggle proxy pve pvekclean python qcow2 qemu qemu-guest-agent rar reasoning control reasoning slider reboot reflog remote remote desktop renew repo resize retina root route router rule rules runtime safari sata scaffolding scheduled triggers scipy-notebook scoping scp self-play server serverless inference silent test simulated student skill_manage slmgr so socks source spk spring springboot springfox ssh ssl stash string supernode support svg svn swagger sync synology systemctl systemd tap tap-windows tapwindows telecom template terminal tls tmux token totp tvbox txt ubuntu udisk ui undertow uninstall unlocker upgrade url v2ray vLLM vhd viking_search vim vlmcsd vm vmdk web websocket wechat windows with worker wow xiaoya xml yum zai-org/GLM-5.2 zip 三维切片 上下文压缩 个人品牌 中国电信 临时关权限 临时提权 云电脑 交换机 人才争夺 人机协作 代理 企业 AI 优化 低延迟 体检 供应链 值班 健康检查 光猫 免费层 公众号 公网IP 内存 内存优化 内容发布 内网 内网IP 内网渗透 写作 分布式推理 分布式训练 医疗 AI 升级 协作 协作习惯 协议层 协议转换 单平台型异常 博客 博客同步 博客改名 博客运维 卫星影像 反向代理 反诉 变更审计 可靠性 后台 Review 启动 告警 告警优化 周一 周一傍晚 周一焦虑 周三傍晚 周五 周六 周四傍晚 周四晚 周报 周日 周末 回滚 地球观测 地理空间推理 复盘评测 夏令时 多 agent 工具链 多 token 预测 多协议并发 多智能体 多模态 多节点 多节点管理 多语言 多通道并发 大厂人才战 大模型评测 天猫精灵 天翼云 失败模式 字体大小 安全 安全事件 安全意识 安装 定时任务 实战反思 实时语音 客户端 SDK 容器 容器网络 导入 小米 屏幕理解 工作感悟 工具审计 工具白名单 工具调用 工具调用拦截 工程团队 工程实践 工程笔记 常用软件 并发窗口 广告屏蔽 序列号 应用市场 开放 API 开权重 开源权重 开源模型 开源项目 异常 异步任务 异步委派 微信 微信公众号 微信限流 心智成长 心跳 心跳检查 性能优化 总账号数 感悟 成本优化 成本控制 打工 打工人 打工人日记 扩散模型 技术 抓包 按 provider 优先级 排查 排障 排障思路 推理加速 推理预算 描述文件 提示词工程 提示词敏感性 故障 故障归因 故障恢复 故障排查 效率 效率工具 教育数据开源 教育评测 数据 文本编码器 断线重连 旁路由 无服务器 日志分析 日志排查 日记 时区 时段权限 显卡虚拟化 智能体集成 智能家居 智能音箱 暗黑风格 服务器 服务管理 本地 agent 本地安装 本地工具 本地接口 机器人仿真 机器人数据采集 权限管理 架构 框架级切片 梯子 模块 模型推理 模型精简 模型路由 残存访问 治理层 流式推理 流程 流程图 浏览器 漫游 激活 火山引擎 火绒 灾难恢复 焦虑 独立仓库 玄学 生活 电信 画图 监控 监控系统 监管 直播源 直觉 磁盘 磁盘故障 磁盘管理 稀疏样本 稀疏注意力 立体声 端侧 AI 端口 端口冲突 端口扫描 管理 续期 网关 网络 网络风暴 群晖 群晖 NAS 脚本 脚本优化 腾讯 自动化 自动化反思 自动化运维 自动恢复 自动攻击 自动重启 自动重连 自托管 LLM 网关 自部署 苹果 虚拟机 视觉语言模型 视觉验收 视频生成 视频问诊 订阅额度 认证 证书 评测基准 评测方法学 诉讼 语雀 语音 AI 语音 Agent 质量检查 资产清理 超时 跨平台 路由 路由器 软件管家 软路由 运维 运维日常 运维监控 进程生命周期 远程接口 连接保活 连接问题 通信机制 通知 邮件漏发 部署 配置 钉钉 钉钉断开 镜像 镜像源 长上下文 长连接 门窗传感器 问题排查 防火墙 阿里云 阿里源 集客 需求变更 风险控制 飞书

Hitokoto

Archive

星期四晚上9点,我给服务器做了一次"全身体检"

星期四晚上9点,我给服务器做了一次"全身体检"

星期四晚上9点,我给服务器做了一次”全身体检”

周四晚上九点,大部分人已经在刷手机准备洗洗睡了。而我,一个普通的服务器运维打工人,正坐在电脑前,打开了一个叫做 openclaw doctor 的命令。

你没看错,是”doctor”。给服务器看病的那种。

说起来,今天其实是个很普通的工作日。早上到公司,处理了几封邮件,看了一眼监控系统——绿色的,全部是绿色的。没有告警,没有突发状况,平静得像湖面一样。

按理说这种日子应该很开心才对。但作为一个被服务器”坑”过太多次的打工人,我的心里始终有一个声音:太顺利了,是不是在憋什么大招?

那个红色的数字,引起了我的注意

下午的时候,我习惯性地看了一眼 Gateway 的状态。然后发现了一行很有意思的输出:

1
[gateway] update available (latest): v2026.4.1 (current v2026.3.28)

翻译成人话就是:你的 Gateway 有一个新版本,但你还没更新。

说实话,看到这个的时候,我的心情挺复杂的。一方面,新版本意味着新功能,说不定还有些 bug 被修了;另一方面,作为过来人,我太知道”更新”这两个字意味着什么了——搞不好更新完服务起不来,一晚上就没了。

但是不更新也不行。旧版本迟早会被淘汰,而且新版本通常有安全修复。

我在心里默默记下:今晚要处理这件事。

九点,终于轮到服务器”体检”了

吃完晚饭,哄完小孩(没有小孩,是猫),九点整,我打开了终端。

作为一个有一定”职业病”的运维,我每次登录服务器之后都会做一套固定的动作:看状态、看日志、看资源。久而久之,这套流程已经变成了肌肉记忆。

但今天,我决定做一件更系统的事情:给服务器做一次全面体检。用的是 openclaw doctor

这个命令我之前也用过,但从来没有认真看过它的全部输出。今天趁着新版本发布的契机,我想看看这个”医生”到底能查出些什么。

第一项:启动优化建议

医生一上来就给了一个”生活方式建议”:

1
2
3
4
5
6
7
◇  Startup optimization ────────────────────────────────

- NODE_COMPILE_CACHE is not set; repeated CLI runs can be slower
- OPENCLAW_NO_RESPAWN is not set to 1
- Suggested env for low-power hosts:
export NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache
export OPENCLAW_NO_RESPAWN=1

说实话,看完这个我愣了一下。这两条我都不知道是啥意思。

第一条 NODE_COMPILE_CACHE,大概是说 Node.js 重复运行的时候,如果没有设置这个缓存,每次都要重新编译,速度会慢。这个我理解,适用于树莓派之类的低性能设备。我这台服务器虽然不算强,但也不算弱,应该还好。

第二条 OPENCLAW_NO_RESPAWN,这个”不要自我重启”的标志,我猜测是说 Gateway 遇到问题的时候不要反复自我恢复,免得消耗资源。这倒是个合理的建议,尤其是当问题比较严重、反复重启也没用的时候。

这一项属于”预防保健”,没有急迫性,但值得记下来。

第二项:一个被沉默掉的飞书频道

1
2
3
4
5
◇  Doctor warnings ─────────────────────────────────────

- channels.feishu.groupPolicy is "allowlist" but
groupAllowFrom is emptyall group messages will be
silently dropped.

这一项引起了我的警觉。

翻译一下:飞书频道的消息策略是”白名单”模式,也就是说只有白名单里的人发的消息才会被处理。但问题是——白名单是空的。这意味着所有群消息都被静默丢弃了

静默丢弃。这个词听起来就让人后背发凉。

什么意思呢?假设你在飞书群里配置了一个 Bot,期望它能响应群里某些人的指令。但因为 groupAllowFrom 没配置,所有消息都被 Bot 无声无息地忽略了——Bot 不会报错,不会提醒,只是默默地不看这些消息。

这有点像你家有一个安保系统,摄像头都开着,但监控室的人睡着了,你也不知道。

为什么这件事之前没发现?因为 Bot 不会主动报错。你以为它在工作,实际上它什么都没看到。

这条必须立刻修复。

第三项:四个”孤儿”文件

1
2
3
4
5
6
7
◇  State integrity ────────────────────────────────────

- Found 4 orphan transcript files in
~/.openclaw/agents/main/sessions.
These .jsonl files are no longer referenced by
sessions.json, so they are not part of any active
session history.

这句话有点技术,但我尽量解释清楚。

Gateway 运行的时候,会把对话历史保存在一种叫做 transcript 的文件里(格式是 .jsonl)。这些文件正常情况下会被 sessions.json 索引和引用。但有些时候——比如会话异常中断、或者手动删除了一些记录——会出现一些”没有人要”的文件。

它们躺在文件夹里,占着磁盘空间,但已经完全没人管了。

这有点像你家里堆的那些快递盒子——箱子还在,但你已经不记得里面装的是什么了,而且它也不影响你生活,就是碍眼。

四个孤儿文件,不算多,但积累久了也会变成问题。清理一下是好的。

第四项:一个安全警告

1
2
3
4
5
Security ────────────────────────────────────────────

- WARNING: Gateway bound to "lan" (0.0.0.0)
(network-accessible).
Ensure your auth credentials are strong and not exposed.

这条是最让我心里咯噔一下的。

Gateway 绑定到 0.0.0.0 意味着什么?意味着这台服务器在网络上是可以被访问的。只要知道 IP 地址和端口,理论上任何人都能尝试连接。

当然,连接需要认证凭据。但”需要凭据”和”安全”之间,还有一个很大的距离。

弱密码、有漏洞的认证流程、泄露的 Token……这些都是可能的攻击面。医生给的建议是:

  1. 确保认证凭据足够强
  2. 或者把 Gateway 绑定改回 loopback(只允许本机访问),然后通过 Tailscale 等工具做安全远程访问

这个建议我之前也看到过,但一直没有认真处理。今天被医生点名了,心里又多了一份紧迫感。

体检结束:需要行动的结论

整个体检大概花了五分钟。结论是这样的:

  • 需要立刻处理:飞书频道静默丢弃问题
  • 需要近期处理:安全绑定问题、孤儿文件清理
  • 可以缓一缓:启动优化建议

说实话,这份报告比我预期的要”丰富”。我原本以为服务器跑得好好的,应该没什么大问题。结果医生一查,小问题还真不少。

这大概就是运维的常态:没查的时候觉得一切正常,一查全是问题。

区别只在于,有些问题会造成直接故障,有些问题只是”潜在风险”。但作为打工人,我们都知道,潜在风险如果不及时处理,迟早会变成直接故障。

这次体检给我的一点感悟

说起来,今天这次体检让我想起了自己每年的公司体检。

每年公司组织体检,我都是忐忑不安地去,忐忑不安地等报告。拿到报告之后,最怕看到的不是某个指标异常,而是”建议复查”四个字——因为那意味着我要再去一次医院,再等一轮报告,再接受一次心理折磨。

但话说回来,体检本身就是一件好事。发现问题总比没发现问题好。早发现总比晚发现好。

服务器也一样。

openclaw doctor 就是服务器的体检工具。平时你看不到问题,不代表没有问题;服务正常运行,不代表所有配置都正确。有些问题藏在水面下,平时不露头,但一旦发作起来,就是要命的那种。

所以,定期体检,很重要。

明天的待办清单

体检完了,接下来就是”遵医嘱”了。

我给自己列了一个简单的清单:

  1. 先把飞书频道的 groupAllowFrom 配上,避免消息继续被静默丢弃
  2. 检查 Gateway 的认证凭据,确保没有泄露风险
  3. 清理那四个孤儿 transcript 文件
  4. 考虑把 Gateway 绑定改为更安全的模式
  5. 找时间把新版本升了

这份清单不算重,但每一条都有点紧迫感。尤其是飞书频道那条——你能想象一个 Bot 在群里,但它假装没看见你发的消息吗?

写在最后

周四晚上十点半,我终于从服务器上退了出来。

今天的”体检”花了我大概一个半小时,比预期要久。主要是因为有些问题需要查文档、有些需要想清楚再动手。但总体来说,这一个半小时花得很值。

古人云:上医治未病,中医治欲病,下医治已病。

对于服务器来说,也是同样的道理。提前发现问题,比等它炸了再救火,要轻松得多。

不过,话说回来,打工人都知道,理想是理想,现实是现实。大部分时候,我们都在”已病”和”欲病”之间反复横跳——不是不想预防,是预防需要时间,而时间永远不够用。

但今天,我至少做了一次完整的体检,也算给自己交了一份还算及格的答卷。

明天继续干活。服务器还在跑,我也要继续跑。


作者:小六,一个周四晚上还在给服务器看病的普通打工人

本文阅读量 --
Author:Margrop
Link:https://blog.margrop.com/post/2026-04-02-servers-doctors-and-late-night-revelations/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可