Waydroid 能启动却无法联网:一次从 DHCP 抓包到 firewalld 修复的完整排障

引言 Waydroid 已经能够启动,Android 桌面也能正常显示,Google 应用和系统组件均存在,但状态始终显示: Android 内部的网络接口处于 UP 状态,却没有 IPv4 地址、默认路由和 DNS 配置。浏览器、Google Play 和其他联网应用自然全部不可用。 这类问题很容易被误判为 Android 镜像损坏、Waydroid 安装不完整,甚至被建议重新初始化或重装。实际上,本次故障最终与 Android 镜像、LXC 容器和 Waydroid 本身都没有直接关系,而是宿主机防火墙没有正确放行 Waydroid 的虚拟网络接口。 整个排查过程的关键,不是反复修改配置,而是逐层确认 DHCP 数据包究竟消失在哪里。 一、故障现象 宿主环境为: Waydroid 启动后可以观察到: Android 系统本身已经完成启动: 图形界面、启动器、系统服务和应用管理器均可使用。 宿主侧也能看到: 但 Android 内部没有: 这说明问题集中在 DHCP 获取阶段。 二、不要被 FROZEN 状态误导 Waydroid 空闲时可能将容器置于冻结状态: 这并不等于容器崩溃,也不等于安装损坏。 只有在进行实时网络测试、抓包或进入 …

把 DNS-01 做成一个真正可用的 Web 工具:从命令行脚本到安全的证书申请平台

为域名申请 HTTPS 证书时,HTTP-01 往往是最省事的方式。但在一些环境中,DNS-01 更合适: DNS-01 的基本原理很简单:证书机构要求申请者在指定域名下添加一条 TXT 记录,查询到正确值后,即可确认申请者拥有该域名的 DNS 控制权。 Certbot 已经能够在命令行中完成这一流程,但命令行操作并不适合所有用户。尤其是在申请根域名、多个子域名和通配符证书时,TXT 记录的管理、验证顺序、失败恢复和证书下载都会迅速变得复杂。 因此,一个围绕 DNS-01 构建的 Web 工具,价值并不在于“把命令搬到网页上”,而在于把整个异步验证过程变成一个安全、清晰、可恢复的状态机。 本文已对域名、主机、目录、端口、服务名、接口路径、文件名和部署拓扑进行抽象处理,不包含实际生产环境中的可定位信息。 一、工具的目标是什么 这个工具面向无法或不愿直接操作 Certbot 命令行的用户。 用户只需要完成几件事: 系统负责: 二、为什么不能只是给 Certbot 套一个表单 最简单的实现似乎是: 这种设计很快就会遇到问题。 Certbot 的 DNS-01 流程需要等待用户手动修改 DNS。这个过程可能持续几分钟,也可能更久。如果 HTTP 请求一直保持连接: 正确的设计应该是: 也就是说,Web 请求只负责触发和查询,不能承担整个证书申请生命周期。 三、整体架构 该工具采用常见的多层 Web 架构: 应用进程只监听本机回环地址,不直接暴露给局域网或公网。 外部入口使用现有网站下的一个应用子路径,而不是单独建立新域名。这样可以复用既有的 HTTPS 入口、访问控制和反向代理体系。 真实部署中,外部路径、内部端口、配置文件和服务名称都应视为敏感运维信息,不应出现在公开文章、截图、错误页面或前端源码中。 …

在 Linux 服务器上制作一个单页自动刷新的系统监控脚本

小型服务器在同时运行 AI 服务、终端会话、备份任务和其他常驻程序时,偶尔可能出现响应迟缓,甚至完全失去连接。 服务器卡死后再查看日志,往往只能知道系统曾经发生过异常,却难以直观看到卡死前的内存、Swap、CPU 压力、I/O 压力和进程状态。 一种简单有效的办法,是制作一个固定的命令行监控脚本,在单个终端页面中集中显示关键状态,并每隔几秒自动刷新。 本文介绍一种不依赖额外监控平台的实现方式,适用于 Debian、Ubuntu、Arch Linux 等使用 systemd 的 Linux 系统。 监控内容 这个监控页面主要显示以下信息: 相比单独运行 top、free、ps 和 systemctl,单页监控更适合观察系统是否正在逐渐接近卡死状态。 创建固定脚本 以下示例将脚本安装到: 默认监控一个名为: 的 systemd 用户服务。 实际使用时,可以通过环境变量指定需要监控的服务名称。 在具有管理员权限的终端中执行: 这段安装命令会完成以下操作: 运行监控页面 假设需要监控的用户服务名为: 可以这样启动: 页面默认每两秒刷新一次。 退出时按: 修改刷新间隔 刷新间隔通过 SERVER_MONITOR_INTERVAL 环境变量控制。 每秒刷新一次: 每五秒刷新一次: 一般情况下,两秒刷新一次已经足够,同时不会产生明显额外负载。 查看一次静态快照 脚本也支持只输出一次当前状态,不进入自动刷新模式: 这种方式适合: 例如保存当前状态: 页面中的关键指标 Load average uptime …

为多台 Linux 主机统一设计配置文件备份工具

在维护多台 Linux 主机时,修改配置文件看似简单,真正容易出问题的往往是修改之前的备份。 常见做法是: 或者: 这些方式虽然能够保留内容,但仍存在几个问题: 为了让多台不同发行版、不同用途的 Linux 主机使用同一套规则,可以把备份逻辑封装成一个系统级命令。 备份规则 工具需要遵守以下原则: 核心流程如下: 与普通 cp 备份相比,这种方法有一个重要区别: 因此,历史备份才是真正的原文件本体。 封装成系统命令 工具命令名称已做脱敏处理,例如: 在常规 Linux 服务器和桌面系统中,可安装到: 在部分精简系统或嵌入式发行版中,也可以根据目录布局安装到: 只要安装目录位于 PATH 中,使用方式就完全一致。 当当前目录明确时,优先进入配置文件所在目录,再使用相对文件名: 这种方式比反复输入较长的绝对路径更方便,也降低了人工输入错误。 只有当前目录不明确、跨目录操作或存在歧义时,才需要使用绝对路径: 脚本设计中的安全边界 一个配置文件备份工具不应该承担过多职责。 它只负责: 它不应该: 尤其是符号链接需要谨慎处理。 例如: 如果直接对符号链接执行备份,保存下来的可能只是链接本身,而不是目标文件内容。为了避免产生“看似备份成功,实际没有备份配置内容”的情况,第一版工具直接拒绝符号链接更安全。 为什么要加入回滚机制 备份流程包含两个关键步骤: 如果第二步失败,原路径会暂时不存在。 失败原因可能包括: 因此,脚本需要记录当前执行阶段。 如果原文件已经移动,但工作副本尚未创建成功,就应尝试: 恢复原始状态。 回滚机制不能保证应对所有底层文件系统故障,但至少能够处理大多数普通中断和复制失败。 不同 Linux 系统之间的兼容问题 同一个 Shell 脚本部署到多种 Linux …

OpenClaw 三个 Session 同时断线之后:一次树莓派内存回收风暴的无重启救援

一台配备 8GB 内存的树莓派正在运行 OpenClaw,同时有三个 Session 执行任务。系统本身仍能通过 SSH 登录,基础命令也能运行,但三个 Session 突然全部显示 disconnected,网页控制界面几乎失去响应。 过去遇到这种情况,最直接的处理方式往往是强制断电重启。但这一次没有立即重启,而是保留现场、检查进程和内核状态,最终成功让原有 Session 自动恢复,正在执行的任务也没有因为重启而被强制中断。 整个过程展示了一个很典型、也很容易被误判的问题: 系统看起来像“死机”,实际上并没有发生 OOM Kill,而是陷入了由内存软限制、页面回收和低速存储共同造成的内存回收风暴。 一、故障现象 故障出现时,OpenClaw 网页端的三个 Session 同时断线,但操作系统仍然可访问。 系统状态大致如下: OpenClaw 服务仍显示: 进程列表中,大量 openclaw 和 openclaw-hooks 进程处于 D 状态,等待位置包括: 这几个信息非常关键。 D 表示不可中断睡眠,通常意味着进程正在等待块设备、文件系统或内核内存回收操作。进程没有退出,也不代表程序逻辑已经崩溃,只是暂时无法获得需要的资源。 二、首先确认:有没有发生 OOM Kill 面对内存不足,首先需要判断的是: 内核有没有真正杀死 OpenClaw 或 Session 对应的进程? 检查内核日志: 结果没有任何输出。 随后检查 OpenClaw 服务对应 …

2035年9月2日:一次横跨亚洲的皆既日食

2035年9月2日,地球将迎来一次引人注目的天文现象——皆既日食。 届时,月球将运行到太阳和地球之间,在地球表面投下一条狭长的阴影。位于这条阴影中心区域的人们,将看到太阳被月球完全遮住,白昼在短时间内变得如同黄昏。 这不仅是一场壮观的天文景象,也是21世纪值得关注的一次重要日食事件。 什么是皆既日食? 日食发生在太阳、月球和地球接近排列成一条直线的时候。 当月球从太阳前方经过时,会遮住一部分或全部太阳。根据遮挡程度不同,日食主要可以分为三种: 2035年9月2日发生的就是皆既日食。只有位于“全食带”内的地区才能看到太阳被完全遮住;全食带以外的广大地区只能看到部分日食。 日食只能发生在新月附近,但并不是每次新月都会出现日食。这是因为月球轨道相对于地球绕太阳运行的轨道平面存在倾角,大多数时候,月球会从太阳的上方或下方经过。 2035年的日食将经过哪里? 2035年9月2日的全食带将从亚洲内陆开始,经过中国北部、朝鲜半岛附近、日本本州中部及关东北部,随后进入太平洋。 在东亚地区,全食带将覆盖多个国家和地区。其中,在日本境内,全食带大致从能登半岛延伸至关东北部。 全食带预计会经过或接近以下区域: 需要注意的是,全食带的边界十分明确。即使只相差几十公里,也可能从“太阳完全消失”变成“仍然剩下一小条明亮的太阳表面”。因此,真正计划观测时,必须确认具体观测地点是否位于全食带内。 大阪能够看到什么? 大阪不在2035年皆既日食的全食带内,因此无法看到太阳被月球完全遮住。 不过,大阪仍然可以看到非常明显的部分日食。太阳的大部分区域将被月球遮挡,天空亮度也可能有所下降,但不会出现真正的全食状态。 部分日食和皆既日食虽然只差最后一点遮挡,实际体验却完全不同。 在部分日食阶段,即使太阳只剩下很小的一部分没有被遮挡,阳光仍然十分强烈,太阳周围的日冕通常也无法被肉眼看见。只有进入全食阶段,太阳明亮的光球层完全消失后,日冕、明亮恒星和行星才可能显现出来。 因此,如果希望体验完整的皆既日食效果,需要前往全食带覆盖的区域。 皆既阶段能够持续多久? 根据NASA公布的计算结果,2035年9月2日这次日食在全球最佳位置的皆既阶段最长约为2分54秒,全食带最大宽度约为116公里。 不同地点能够看到的皆既持续时间,会因观测位置与全食带中心线的距离而不同。 通常来说: 因此,观测地点不能仅以交通便利为标准。天气条件、地形、视野以及与全食带中心线的距离,都需要综合考虑。 皆既日食期间会发生什么? 皆既日食并不只是“太阳暂时消失”。 随着月球逐渐遮住太阳,周围环境会出现一系列明显变化。 首先,阳光会逐渐减弱,地面的色彩和对比度发生变化。接近全食时,环境可能呈现出一种不同于普通黄昏的灰蓝色调。 随后,气温可能有所下降,部分鸟类和昆虫可能表现出接近傍晚时的行为。 在全食开始前的最后几秒,阳光会从月球边缘的山谷之间穿过,形成一串短暂的亮点,这种现象被称为“贝利珠”。当只剩下一个明亮光点时,太阳看起来如同一枚巨大的钻石戒指。 进入全食阶段后,太阳明亮的表面完全消失,周围银白色的日冕显现出来。天空明显变暗,地平线附近可能保留一圈类似日落的亮光,部分恒星和行星也可能出现在天空中。 几分钟后,这一过程将反向发生,太阳重新从月球边缘出现,白昼恢复。 为什么这次日食如此值得期待? 能够在陆地上观测到的皆既日食本身就十分难得,而这次日食的全食带横跨人口较为密集、交通条件较好的区域,使得观测条件相对便利。 与只能在偏远地区或海上观测的日食相比,这类路径经过陆地的日食更容易吸引大规模观测活动。 届时,全食带内的住宿、交通和观测场地很可能会非常紧张。部分热门地点甚至可能提前数月或数年开始准备接待观测者。 观测日食必须注意安全 太阳在部分食阶段依然极其明亮,绝对不能直接用肉眼长时间观看。 普通太阳镜、墨镜、熏黑玻璃、相机滤镜、光盘、塑料片等,都不能代替专业的日食观测设备。这些材料可能看起来降低了可见光亮度,却无法可靠阻挡红外线或紫外线,仍然可能伤害视网膜。 安全的观测方式包括: 望远镜、相机和双筒望远镜会聚集大量太阳光。没有安装在镜头前端的专业太阳滤镜时,绝对不能通过这些设备观看太阳。 只有在太阳完全被遮住的短暂全食阶段,位于全食带内的人才能暂时摘下日食眼镜。太阳重新出现前,必须立即恢复防护。 天气将是最大的未知因素 日食发生的日期、时间和路径可以提前精确计算,但天气无法提前多年确定。 2035年9月初仍处于夏末初秋的过渡阶段,在东亚地区可能受到台风、湿润气流和局部云层影响。即使位于全食带中心,如果当天被厚云覆盖,也可能无法直接看到太阳。 因此,真正的日食观测通常需要准备多个候选地点,并在临近日食时根据天气预报调整行程。 理想的观测地点应具备以下条件: 一场值得提前记住的天空盛会 2035年9月2日的皆既日食,可能只持续不到三分钟,但它将展现太阳系中极为精巧的尺度关系。 太阳的真实直径约为月球的400倍,而太阳与地球之间的距离也大约是月球与地球距离的400倍。因此,从地球上看,太阳和月球具有近似相同的视直径,月球才有可能在特定时刻恰好遮住太阳,同时显露出太阳外层的日冕。 …

Linux 为什么也能运行 Windows 游戏:Steam Proton 兼容层原理简介

许多电脑游戏只提供 Windows 版本,但这并不意味着它们一定无法在 Linux 系统上运行。 目前,Linux 玩家最常使用的方案之一,是 Steam 提供的 Proton。它可以让大量 Windows 游戏直接在 Linux 环境中运行,而且通常不需要另外安装完整的 Windows 系统。 Proton 是什么 Proton 是 Valve 为 Steam 开发和维护的一套游戏兼容工具。 它以 Wine 为基础,并结合了多种专门面向游戏的组件和补丁,用来处理 Windows 游戏依赖的系统接口、图形接口、声音、输入设备和网络功能。 从结构上可以简单理解为: Windows 游戏 → Proton 兼容层 → Linux 系统 → 硬件 游戏仍然是原本的 Windows 版本,但其调用的 Windows 功能会由 Proton 转换或重新实现。 它不是虚拟机 Proton 与传统虚拟机有明显区别。 …

《装甲核心》是什么游戏:从零件搭配开始打造专属机甲

提到可以“自己组装机器人”的电子游戏,很多人想到的可能是《装甲核心》。 《装甲核心》的日文名称是「アーマード・コア」,英文名称为 ARMORED CORE。中文通常译作《装甲核心》。这是一系列以机甲组装和高速战斗为核心的动作游戏,由 FromSoftware 开发。 不只是驾驶机甲,而是自己设计机体 与许多提供固定角色或固定载具的动作游戏不同,《装甲核心》允许玩家使用不同零件组装自己的机甲。 一台机体通常由多个部分构成,例如: 这些零件并不只是改变外观,还会直接影响机体的重量、速度、防御力、能源消耗、武器命中能力和移动方式。 因此,组装机体并不是简单地选择攻击力最高的零件,而是在不同性能之间取得平衡。 不同腿部决定不同战斗风格 《装甲核心》中最有代表性的设计之一,是不同腿部结构会明显改变机体的操作方式。 常见类型包括: 双足型 外形接近传统人形机甲,性能相对均衡,适合大多数战斗场景。 逆关节型 拥有较强的跳跃能力和空中机动性,适合高速移动和突然改变位置。 四足型 通常具有较高的稳定性,部分作品中还可以在空中保持悬浮,适合使用重型武器。 坦克型 使用履带或大型底盘,移动方式与普通双足机体不同,但能够承载更重的武器和装甲。 同一套武器安装在不同腿部结构上,可能会形成完全不同的战斗体验。 重量和能源是组装的重要限制 机体不能无限安装大型武器和厚重装甲。 每一种手臂和腿部零件都有承载上限。如果机体总重量过高,可能无法完成组装,或者会导致移动速度明显下降。 能源系统同样重要。推进器、能量武器和部分特殊设备都需要消耗能源。发电机性能不足时,机体可能频繁出现能量短缺,无法连续闪避或飞行。 因此,一套合理的机体配置通常需要同时考虑: 这使得组装过程本身成为游戏的重要内容。 战斗强调高速移动和立体空间 《装甲核心》的战斗并不是传统意义上的缓慢机器人对射。 机体可以进行快速推进、空中移动、侧向闪避、近距离突击和高速转向。战斗往往同时发生在地面和空中,玩家需要不断判断敌人的位置、攻击范围和自身能源。 部分机体适合远距离使用导弹和步枪,部分机体则依靠高速推进接近敌人,使用光剑或其他近战武器。 因此,机体配置和实际操作必须相互配合。即使零件性能优秀,如果与操作习惯不匹配,也未必能够发挥效果。 《装甲核心 VI:境界天火》 系列中较新的作品是《ARMORED CORE VI FIRES OF RUBICON》,中文名称通常译作《装甲核心 VI:境界天火》。 该作保留了系列经典的机体组装系统,同时加入了更现代的画面表现、任务设计和大型头目战。 玩家可以根据任务需要不断修改机体。例如,面对高速敌人时,可以使用轻型机体和高追踪能力武器;面对重装目标时,则可以换成高冲击力武器或近战装备。 游戏中的失败并不一定意味着操作能力不足,也可能说明当前机体配置不适合对应任务。重新组装机体、改变武器和战术,往往就是解决问题的重要方式。 它是不是机器人拼装游戏 严格来说,《装甲核心》并不是现实中的模型拼装游戏,而是一款机甲动作游戏。 不过,机体装配系统足够深入,玩家确实可以像设计模型一样选择零件、调整颜色、制作标志,并打造具有个人风格的机体。 对于喜欢机械设计、零件搭配、高速战斗和反复优化配置的玩家来说,《装甲核心》的魅力不仅在于战斗,也在于不断思考“下一台机体应该怎样组装”。

日本で市販のルウを使って簡単にカレーを作る方法

日本のカレーは、自宅でも簡単に作れる料理です。スパイスを一から調合しなくても、スーパーで販売されている「カレールウ」を使えば、手軽に作ることができます。 必要な材料 一般的な材料は次のとおりです。 作り方はとても簡単です。 まず、肉と野菜を食べやすい大きさに切ります。鍋に少量の油を入れ、肉と野菜を軽く炒めます。その後、水を加えて、材料がやわらかくなるまで煮込みます。 具材に火が通ったら、いったん火を止めてカレールウを入れ、よく溶かします。最後に再び弱火で数分煮込み、とろみがついたら完成です。 さらに手軽に作りたい場合は、スーパーで販売されている「カレー用野菜セット」を使う方法もあります。材料を少なくして、玉ねぎ、肉、カレールウだけで作ることもできます。 ジャワカレーとは 「ジャワカレー」は、ハウス食品が販売している有名なカレールウのブランドです。 「ジャワ」という名前は、英語の「Java」、つまりインドネシアのジャワ島に由来しています。特別なカレー料理の種類ではなく、商品のブランド名です。 ジャワカレーは、一般的な甘めの日本式カレーと比べて、スパイスの香りと辛さが強いことが特徴です。濃厚で、やや大人向けの味わいになっています。 主な種類には、次のようなものがあります。 初めて購入する場合、普通の辛さが問題なければ「ジャワカレー 中辛」が選びやすいです。辛いものが苦手な場合は、甘口を選ぶか、よりまろやかな別の商品を選ぶとよいでしょう。 まとめ 市販のカレールウを使えば、複雑なスパイスを準備しなくても、簡単に日本式カレーを作ることができます。 肉と野菜を煮込み、最後にカレールウを加えるだけなので、料理に慣れていない人でも作りやすい家庭料理です。

Windows 运行安卓应用:从重点功能到正式退场

Windows 11 发布初期,微软曾把“直接运行安卓应用”作为一项重要卖点。 这套功能名为 Windows Subsystem for Android,简称 WSA。它的目标,是让安卓应用不再只能运行在手机或传统模拟器中,而是可以像普通 Windows 软件一样出现在桌面、开始菜单和任务栏里。 从技术构想到实际体验,WSA 一度代表了 Windows 与移动应用生态进一步融合的可能性。 但几年之后,微软最终停止了这项功能。到 2025 年,WSA 和配套的 Amazon Appstore Windows 版本正式结束支持。 这项曾经被寄予厚望的功能,最终没有成为 Windows 的长期组成部分。 什么是 Windows Subsystem for Android Windows Subsystem for Android 是微软为 Windows 11 提供的一套安卓运行环境。 它并不是简单地把手机画面投射到电脑上,也不是传统意义上的安卓模拟器。它会在 Windows 内部运行一套经过适配的 Android 系统环境,再让安卓应用以独立窗口的形式显示出来。 从用户角度看,安装后的安卓应用可以: 用户不需要每次先打开一个完整的安卓模拟器界面,再从模拟器内部启动应用。 这种使用方式更接近“安卓应用已经成为 Windows 应用的一部分”。 微软为什么使用亚马逊应用商店 …