洛维花 – LuoWeiHua – 生命不息，折腾不止！ - daimafengzi
type: channel
link: https://luoweihua.cn/author/1/
description: daimafengzi
items: 麒麟系统升级 OpenSSH 完整指南（.run 与 .rpm 两种方式）
items: 免费域名+Cloudflare后缀.eu.cc免费注册教程，0元注册直接托管
items: 免费领取4个永久域名？Stackryze Domains 开发者福利来了！
items: Android App 脱壳方案完整报告（2025–2026）
items: Redis 内存防崩溃优化方案
items: 达梦数据库 dexp/dimp 实战指南：模式克隆、REMAP_SCHEMA 与特殊字符踩坑记录
items: 银河麒麟系统 OpenSSH 升级至 10.x 实战避坑指南
items: N1盒子安装FnOS，服务优化记录--持续更新
items: Ungoogled Chromium Binaries 离线部署实战指南
items: AutoJs开心版

麒麟系统升级 OpenSSH 完整指南（.run 与 .rpm 两种方式）
type: item
date: 2026-09-01T03:14:00+00:00
description: 麒麟系统升级 OpenSSH 完整指南（.run 与 .rpm 两种方式）适用系统：银河麒麟桌面版 / 麒麟 V10（服务器版 SP1~SP3）升级目标：将系统自带的低版本 OpenSSH 升级到安全修复后的高版本软件形态：本文覆盖 .run 自解压安装包（x86_64） 与 .rpm 软件包（aarch64） 两种升级方式目录一、为什么要升级 OpenSSH二、升级前必读（安全警告）三、升级前的准备工作四、两种安装包的区别五、方式一：.run 安装包（x86_64 架构）六、方式二：.rpm 安装包（aarch64 架构）七、通用验证步骤八、升级失败如何回退九、常见问题 FAQ十、总结一、为什么要升级 OpenSSHOpenSSH 是 Linux/麒麟系统中最常用的远程登录与文件传输服务（sshd、ssh、sftp、scp）。系统自带的 OpenSSH 版本往往较低，存在已公开的安全漏洞（如命令注入、身份认证绕过、信息泄露等），在等保测评、安全扫描中常被判定为「高危漏洞」并要求整改。通过升级到官方修复版本（如本文涉及的 OpenSSH 10.3p1、9.9sp1），可以：修复已知 CVE 安全漏洞，通过安全测评；提升加密算法的强度与兼容性；满足客户/监管对 SSH 版本的最低要求。二、升级前必读（安全警告）⚠️ 这条必须放在最前面，务必牢记：请勿关闭当前的 SSH 连接！升级 OpenSSH 会重启 sshd 服务。如果升级过程中出现问题（配置错误、版本不兼容、服务启动失败等），当前的 SSH 会话是你唯一的「后门」。正确的做法是：保留当前 SSH 会话不关闭；升级并重启服务后，另开一个新的 SSH 连接进行验证；只有当新连接能正常登录、且版本验证通过后，才考虑关闭旧会话；如果新连接失败，立即用当前旧会话进行回退（恢复备份配置 / 降级包）。简单记：「升级不留旧路，出事只能重装系统」。三、升级前的准备工作3.1 查看系统架构不同架构对应不同的安装包格式，先确认 CPU 架构：uname -m # 或者 arch输出结果架构对应安装包x86_64Intel / AMD / 兆芯 / 海光 等.run 自解压安装包aarch64鲲鹏 920 / 飞腾 等 ARM 芯片.rpm 软件包3.2 查看当前 OpenSSH 版本ssh -V记录下当前版本号，便于升级前后对比。3.3 准备安装包将对应的安装包（.run 或 .rpm）上传到服务器，并解压/整理到独立目录，例如：# 示例：将压缩包上传后解压 tar -xvf 麒麟V10SP1-3-openssh-10.3p1.tar.gz # 得到目录：麒麟V10SP1-3-openssh-10.3p1/四、两种安装包的区别对比项.run 安装包.rpm 软件包适用架构x86_64（Intel / AMD / 兆芯 / 海光）aarch64（鲲鹏 / 飞腾等 ARM）本质自解压、自动安装的可执行脚本Red Hat 系标准软件包管理格式安装方式chmod +x 授权后 ./xxx.run 直接执行rpm -Uvh 升级安装依赖处理脚本内部自动处理，基本无需干预依赖系统 rpm 包管理器典型文件pkgsUpdate-ssh10.3p1-ky10.x86_64-20260427.runopenssh-*.rpm（多个 rpm 文件）优缺点一键式、省心，官方封装更标准，可用 rpm -qa 查询管理选择原则：看架构，不看喜好。x86_64 用 .run，aarch64 用 .rpm。五、方式一：.run 安装包（x86_64 架构）适用于 Intel / AMD / 兆芯 / 海光 等 x86_64 架构的麒麟 V10 系统。5.1 重载 systemd 配置systemctl daemon-reload5.2 备份原 SSH 配置sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_configbak备份文件 sshd_configbak 是升级失败后回退的关键，务必保留。5.3 进入新版目录cd 麒麟V10SP1-3-openssh-10.3p1/5.4 赋予安装脚本执行权限chmod +x pkgsUpdate-ssh10.3p1-ky10.x86_64-20260427.run5.5 开始安装./pkgsUpdate-ssh10.3p1-ky10.x86_64-20260427.run安装脚本会自动完成卸载旧版本、安装新版本、处理依赖等操作，等待执行结束即可。5.6 测试配置是否有误sudo sshd -t该命令用于校验 sshd_config 配置文件语法是否正确。无输出 = 配置正确；有报错 = 根据提示修改配置后重试。5.7 启动 / 重启 SSH 服…

免费域名+Cloudflare后缀.eu.cc免费注册教程，0元注册直接托管
type: item
date: 2026-08-30T17:06:38+00:00
description: 免费域名 + Cloudflare：后缀 .eu.cc 免费注册教程，0 元注册直接托管如果你最近刚好想折腾个人博客、导航站、项目演示站，或者只是想给自己的小项目弄一个好记的域名，那么今天这个可以留意一下。之前给大家分享过免费的 eu.org 域名，不过它有一个比较明显的问题：域名比较长，而且注册后还需要等待审核。这次发现的这个就简单多了。👉 .eu.cc 免费域名最大的特点就是：注册门槛低、域名比较短，而且普通账号就可以免费注册。🌐 这个域名有什么特别？.eu.cc 本质上是一个域名后缀。比如：abc.eu.ccblog.eu.ccai.eu.cc对于个人博客、工具站、导航站、开源项目展示页来说，长度还是比较舒服的。更重要的是，目前 GNAME 正在提供 .eu.cc 的免费注册活动，普通用户可以获得 3 个免费注册名额，不需要额外完成复杂任务。所以如果你只是想体验一下免费域名，还是挺方便的。🎁 免费注册是怎么实现的？这里需要注意一个细节。它并不是直接显示「价格为 0 元」，而是通过全额抵扣优惠券的方式实现免费注册。进入官方的免费注册活动页面后，领取对应的 .eu.cc 抵扣券，然后选择符合条件的域名注册即可。也就是说：正常查询 → 领取免费额度 → 使用抵扣券 → 0 元注册目前普通账号最多可以免费注册 3 个 .eu.cc 域名。⚠️ 有一个坑，一定要提前知道并不是所有你喜欢的域名都能够免费注册。一些比较特殊的域名会被划分为溢价域名，例如：双字母域名三字母域名一些品牌名称热门行业词其他注册局定义的溢价域名这些域名不能直接使用免费抵扣券。所以看到一个特别漂亮的短域名，不要马上以为可以白嫖，先查询价格再决定。 官方也明确说明了这一点。🔄 免费域名可以一直用吗？这也是很多人最关心的问题。目前活动规则支持免费续费，但有一个非常重要的时间限制：必须进入域名到期前 90 天的时间范围，才能申请免费续费。而且千万别直接去「我的域名」里面续费。官方规定：免费续费必须从「免费注册」活动页面提交。如果你在普通域名管理页面续费，或者开启自动续费，并不能享受这项免费续费活动。所以建议大家注册之后，把到期时间记下来。到了续费周期，再去活动页面操作。☁️ 能不能搭配 Cloudflare？可以。如果你平时喜欢折腾 Cloudflare，那么这个域名也比较适合拿来做一些个人项目。例如：用途说明博客 / 导航站个人内容聚合个人主页简历、作品集展示在线工具小工具、查询类站点项目展示页开源项目落地页短链接站自建短链服务测试站开发联调、演示环境注册完成后，可以按照正常域名的方式进行 DNS 管理，也可以根据自己的需求接入 Cloudflare。这样一来，免费域名 + Cloudflare 免费服务，就可以组合出一个基本零成本的小网站。💡 我觉得它更适合哪些人？如果你是：👉 想搭一个个人博客👉 想做一个自己的导航站👉 经常测试开源项目👉 喜欢折腾 Cloudflare👉 想给自己的项目准备几个备用域名👉 不想一开始就花钱买域名那么 .eu.cc 可以先收藏起来。当然，如果你准备做一个长期商业项目，我还是更建议使用自己购买的正规顶级域名。免费域名最大的优势是降低试错成本，而不是完全替代付费域名。📌 最后总结这次这个 .eu.cc，我认为最大的优势就是：短 + 免费 + 注册简单 + 支持免费续费。普通账号目前有 3 个免费注册名额，但要注意避开品牌词和溢价域名。另外最容易忘记的一点就是：续费一定要在到期前 90 天内，并且必须从「免费注册」活动页面提交。如果你准备拿它搭个人博客、导航站或者测试项目，可以先去看看有没有自己喜欢的域名。项目地址: 美国地址生成器

免费领取4个永久域名？Stackryze Domains 开发者福利来了！
type: item
date: 2026-08-30T16:50:00+00:00
description: 免费领取 4 个域名？Stackryze Domains 开发者福利来了！对于喜欢搭建网站、测试项目、部署工具的小伙伴来说，一个免费域名一直都是非常实用的资源。今天分享一个开源免费的域名项目 —— Stackryze Domains 🎁通过简单操作，可以领取 4 个免费域名，有效期一年，并且支持提前免费续约，非常适合个人项目、测试站点和开发学习使用。🌟 Stackryze Domains 是什么？Stackryze Domains 是一个面向开发者的免费域名服务项目。无需购买商业域名，就可以拥有自己的专属域名，用于：✅ 个人主页✅ 开源项目展示✅ 测试网站✅ API 服务✅ 技术博客✅ 学习建站🎁 免费领取 4 个域名目前支持领取以下域名后缀：🔥 .indevs.in🔥 .sryze.cc🔥 .ryzedns.org🔥 .nx.kg每个域名有效期：✅ 1 年免费使用✅ 到期前 60 天可以免费续约不需要支付费用，通过续约可以长期用于个人项目。🌐 域名支持 Cloudflare 托管领取后的域名可以自定义 Nameservers。其中：✅ .indevs.in 支持托管 Cloudflare✅ .sryze.cc 支持托管 Cloudflare可以享受：能力说明☁️ Cloudflare DNS稳定快速的域名解析🚀 全球 CDN 加速访问速度更快🔒 免费 HTTPS SSL一键开启 HTTPS🛡️ 安全防护抵御常见攻击而：⚠️ .ryzedns.org 和 .nx.kg 暂时不支持 Cloudflare 托管，后续是否支持可以关注项目更新。⭐ 如何领取？项目采用 GitHub 支持方式：方式一（推荐）⭐ 注册 GitHub 账号，并给作者项目点一个 Star，即可领取更多域名。方式二📧 使用邮箱注册，只能领取 1 个免费域名。推荐支持作者的 GitHub 项目，让优秀的免费服务持续维护。💡 可以用这些免费域名做什么？你可以搭建：🚀 个人博客🚀 在线工具网站🚀 开源项目主页🚀 API 接口🚀 Demo 演示站🚀 学习测试环境搭配 Cloudflare、Vercel、Netlify 等免费平台，可以实现低成本甚至零成本建站。⚡ 总结Stackryze Domains 是一个非常适合开发者收藏的免费域名项目：✅ 免费领取 4 个域名✅ 一年有效期✅ 提前 60 天免费续约✅ 两个后缀支持 Cloudflare✅ 适合个人项目和测试使用如果你正好在折腾个人项目或者需要一个测试域名，不妨去试试。领取链接： 美国地址生成器：

Android App 脱壳方案完整报告（2025–2026）
type: item
date: 2026-08-28T05:58:00+00:00
description: Android App 脱壳方案完整报告（2025–2026）作者/整理：安全研究团队 更新时间：2026-08-28 适用场景：移动安全研究、漏洞挖掘、恶意样本分析、授权合规渗透测试一、背景概述1.1 加固现状指标数据Google Play TOP 1000 应用加固率≈ 98%企业级应用平均采用加固方案数2.8 种金融类 App 加固强度（对比普通应用）5 倍以上2025 年安卓应用被逆向破解案例占比68.3%SO 文件被提取分析比例45%1.2 主流加固厂商厂商产品特点腾讯乐固（Tencent Mobile Security）社交/游戏场景优化，字符串混淆，反调试多层防护360360 加固保免费 + 企业版，DEX/SO 加固，反模拟器梆梆安全梆梆加固企业级方案，VMP + Dex2C 深度混合网易网易易盾游戏与高对抗加固专精阿里阿里聚安全金融级安全防护，强反 Frida 及动态插桩爱加密爱加密中小开发者友好，生态覆盖广几维安全几维加固开源生态兼容性好，主打 Dex2C其他顶象、通付盾、启明星辰、天磊卫士等针对银行、政企等垂直行业定制加固二、加固壳分类与技术演进2.1 壳的代际分类代际名称原理脱壳难度一代壳DEX 整体加壳将完整 DEX 加密存储于 APK（如 assets/），启动时解密并动态加载★☆☆☆☆二代壳函数抽取壳（内存加载）DEX 不落地，函数体在内存中按需解密，方法入口初始指向空代码或桩代码★★★☆☆三代壳VMP 虚拟机保护将 Dalvik/ART 字节码转为自定义字节码，由私有 VM 解释器执行★★★★☆四代壳Dex2C / Java2C将 Java 方法直接编译为 Native C/C++ 代码，通过 JNI 注册调用★★★★★混合壳VMP + Dex2C + SO 加壳多层嵌套与多策略混合，核心方法 Dex2C，关键逻辑走 VMP★★★★★2.2 壳的通用运行流程flowchart TD A[APK 启动] --> B["壳 Application.attachBaseContext() 触发"] B --> C["加载壳 Native SO (libshell.so / libprotect.so)"] C --> D["执行反调试/环境自检并解密 DEX 或函数体"] D --> E["通过 DexClassLoader / InMemoryDexClassLoader 加载目标类"] E --> F["替换 Application 上下文 / 修复 ClassLoader"] F --> G[执行原始业务代码逻辑]三、脱壳方案总览（按技术路线分类）方案一：免 Root 自动脱壳工具工具原理适用场景限制BlackDex利用 DexFile Cookie 机制，在虚拟容器内加载目标 APK 并 Dump 内存中的 DEX一代壳 / 部分二代壳支持 Android 5.0–12；对强反调试壳无效DumpDex利用多进程加载机制 Dump DEX一代壳兼容性一般VirtualXposed + 脱壳插件在免 Root 虚拟环境中运行目标 App + Xposed 模块 Hook一代 / 二代壳依赖 VirtualXposed 环境稳定性分身框架（团团分身等）+ 遥光云模块通过分身虚拟化框架注入脱壳逻辑二代壳部分新版本机型不兼容操作流程（以 BlackDex 为例）：安装 BlackDex APK。打开应用，选择目标应用（支持已安装或未安装的 APK 安装包）。点击 「脱壳」。等待数秒，生成脱壳 DEX 文件：输出路径: /sdcard/BlackDex/output/获取 classes.dex, classes2.dex ...使用 jadx-gui 或 JEB 打开验证反编译代码。方案二：Frida 动态插桩脱壳（主流方案）2.1 基础架构PC 端 (控制端) 手机端 (目标端) ┌───────────────────────┐ USB / WiFi ┌───────────────────────┐ │ • frida CLI │ <══════════════════> │ • frida-server │ │ • Python 控制脚本 │ (TCP:27042) │ (需 Root 权限) │ │ • 动态注入 JS 脚本 │ │ • 注入到目标 App 进程 │ └───────────────────────┘ └───────────────────────┘2.2 核心工具链工具用途frida (PC)客户端核心库，需与移动端 server 版本严格一致frida-server (手机)部署于 /data/local/tmp/，需 Root 运行frida-dexdump快速扫描内存…

Redis 内存防崩溃优化方案
type: item
date: 2026-08-21T03:36:27+00:00
description: Redis 内存防崩溃优化方案目标：让 Redis 永远有硬上限，系统永远不进 Swap，事故提前告警而非事后重启。⚠️ 全文命令中的密码已替换为占位符 你的密码，执行时请换成真实密码；redis-cli 路径每台服务器不同，请先按【附一】查询替换。附一、先查询 redis-cli 路径（每台服务器不同，纯查询、不影响系统）下面都是只读查询命令，不会改动任何东西，放心执行：# 1. 看系统 PATH 里是否已能直接调用（最常用） which redis-cli # 2. 看正在运行的 redis-server 二进制在哪，redis-cli 通常在同目录的 bin 下 ps -ef | grep redis-server # 3. 常见安装目录直查（哪个有输出就用哪个） ls -l /usr/local/redis/bin/redis-cli 2>/dev/null ls -l /usr/bin/redis-cli 2>/dev/null ls -l /opt/redis/bin/redis-cli 2>/dev/null # 4. 全盘找（只读扫描，不影响系统；结果里取第一个存在的路径） find / -name redis-cli -type f 2>/dev/null | head查到后，把下文命令里的 /usr/local/redis/bin/redis-cli 整体换成你查到的实际路径即可。一、根因结论（一句话）Redis 没有有效的内存上限（或上限过大）→ 内存无限增长 → 物理内存耗尽 → Swap 打满（100%） → 页面置换风暴 → CPU 99% → 系统假死。典型崩溃时间线：Redis 吃满内存 → Swap 96% → Swap 100% → 触发事件，CPU 2%→42% → CPU 99% / 高负载 / 假死 → 人工重启。核心矛盾不是"Redis 用了多少"，而是"它能不能无限用"。 只要给它一个硬上限并留足系统余量，同样的负载绝不会再把机器拖死。二、设计三原则#原则作用1给 Redis 设硬上限 maxmemory满则"驱逐旧数据"，而非"撑爆系统内存"2系统永远留余量，绝不进 SwapSwap 一旦打满，Redis 延迟暴涨、CPU 被置换吞掉3合理监控水位，提前感知风险把事故消灭在苗头，而不是 100% 假死说明：原则 2 的"绝不进 Swap"是靠原则 1 把 Redis 框在合理上限内实现的（详见第三节），不需要去动系统内核参数。三、maxmemory 设置（最关键的一步）3.1 计算公式（务必满足）maxmemory ≤ (物理内存 × 0.85) − 其他进程常驻内存例：物理 31G，其他常驻进程（应用、数据库、Agent 等）合计约 6G。安全上限：31 × 0.85 − 6 ≈ 20G。即 Redis 最多给到 20G 也不会逼系统用 Swap。3.2 推荐值按"当前工作集 × 1.5"留余量防突增。若当前稳定 8G，则 maxmemory = 12G（12884901888 字节）。12G + 6G 其他 ≈ 18G，远小于 31G，系统永远有空闲 → 永不 Swap。3.3 设置命令（路径请先按【附一】查询替换）# 临时生效（立即止血） /usr/local/redis/bin/redis-cli -a '你的密码' CONFIG SET maxmemory 12884901888 # 验证 /usr/local/redis/bin/redis-cli -a '你的密码' CONFIG GET maxmemory3.4 ⚠️ 持久化（极易踩坑）若 redis 启动时没有带配置文件参数（如 redis-server 0.0.0.0:6379），它是用默认配置启动的，CONFIG REWRITE 可能新建文件但重启仍会丢配置。必须找到真正的启动入口并写进去（以下为只读查询，定位用）：# 看是不是 systemd 托管 systemctl cat redis 2>/dev/null systemctl cat redis-server 2>/dev/null # 或看 init 脚本 / 启动脚本里有没有 redis-server ls -l /etc/init.d/ | grep -i redis grep -r "redis-server" /etc/rc.local /root/*.sh /home/*/*.sh 2>/dev/null找到后，在启动配置里显式加一行 maxmemory 12884901888（或指向一个含该项的 redis.conf），再重启验证 CONFIG GET maxmemory 是否持久生效。不要只依赖 CONFIG REWRITE。四、淘汰策…

达梦数据库 dexp/dimp 实战指南：模式克隆、REMAP_SCHEMA 与特殊字符踩坑记录
type: item
date: 2026-08-13T15:12:00+00:00
description: 达梦数据库 dexp/dimp 实战指南：模式克隆、REMAP_SCHEMA 与特殊字符踩坑记录在日常的数据库运维和开发测试中，我们经常需要对某个模式（Schema）进行完整备份，或者将其"克隆"一份用于测试环境。在达梦数据库（DMDB）中，dexp（逻辑导出）和 dimp（逻辑导入）是完成这项工作的利器。本文将结合实战经验，分享如何使用 dexp/dimp 进行模式导出与重命名导入（REMAP_SCHEMA），并记录一个由密码特殊字符引发的"导出 0 张表"的隐蔽 Bug。一、核心踩坑：密码中的 .. 导致导出 0 张表诡异的现象在使用 dexp 导出 V5_EAM 模式时，命令行执行后瞬间结束，日志中显示：[WARNING]invalid object:V5_EAM export total 0 TABLE schema[V5_EAM] export terminate.....查询 DBA_TABLES 确认该模式下明明有 218 张表，但导出结果却是 0。根因分析经过排查，发现该数据库 SYSDBA 用户的密码为 woshimima..（末尾包含连续的两个点 ..）。当在命令行直接拼接连接串时：# 错误示范 ./dexp USERID=SYSDBA/woshimima..@localhost:5236 SCHEMAS=V5_EAM ...连续点号 .. 在 Shell 解析或 dexp 内部参数解析时，被错误地识别为路径跳转或特殊指令，导致 dexp 内部验证 Schema 属主时发生异常，从而跳过了所有对象的导出。解决方案方案 A（推荐）：使用交互式密码输入不在命令行中明文传递密码，执行命令后根据提示输入：./dexp USERID=SYSDBA@localhost:5236 SCHEMAS=V5_EAM FILE=... LOG=...方案 B：使用单引号包裹整个 USERID利用单引号屏蔽 Shell 的特殊字符解析：./dimp 'USERID=SYSDBA/woshimima..@localhost:5236' ...二、实战：导出模式 (dexp)确认连接方式后，执行完整的模式导出。建议加上 PARALLEL 参数提升导出速度。cd /data/dmdbms/bin/ ./dexp USERID=SYSDBA@localhost:5236 \ SCHEMAS=V5_EAM \ FILE=/data/dmexport/V5_EAM.dmp \ LOG=/data/dmexport/V5_EAM_export.log \ PARALLEL=4执行后按提示输入密码。看到 terminate export success without warning 即代表完美导出。三、实战：导入并重命名模式 (dimp + REMAP_SCHEMA)很多时候，我们导出的数据是为了在同一实例下建立一份测试副本。这时就需要用到 REMAP_SCHEMA 参数，将源模式的数据导入到目标模式中。⚠️ 核心注意点：目标模式必须提前创建dimp 的 REMAP_SCHEMA 不会自动创建目标模式！如果目标模式不存在，导入会直接报错。Step 1：创建目标模式/data/dmdbms/bin/disql SYSDBA@localhost:5236 -e "CREATE SCHEMA V5_EAM_TEST_0813;"Step 2：执行导入cd /data/dmdbms/bin/ ./dimp USERID=SYSDBA@localhost:5236 \ FILE=/data/dmexport/V5_EAM.dmp \ LOG=/data/dmexport/V5_EAM_TEST_0813.log \ REMAP_SCHEMA=V5_EAM:V5_EAM_TEST_0813 \ TABLE_PARALLEL=4参数解析：REMAP_SCHEMA=源模式:目标模式。此操作对源模式 V5_EAM 是只读的，绝对不会影响原数据。四、总结密码安全与兼容性：强烈建议使用交互式密码输入来调用 dexp/dimp，既能避免密码泄露在 history 中，又能完美规避特殊字符（如 @、..、# 等）导致的解析 Bug。REMAP_SCHEMA 前置条件：永远记得在导入前，先 CREATE SCHEMA 目标模式。数据完整性：导入完成后，务必通过 SELECT COUNT(*) FROM DBA_TABLES WHERE OWNER='目标模式'; 核对表数量，确保数据无损迁移。💻 第二部分：自动化交互式 Shell 脚本将以下代码保存为 dm_migrate.sh，赋予执行权限（chmod +x dm_migrate.sh）后运行。脚本包含了环境检查、交互…

银河麒麟系统 OpenSSH 升级至 10.x 实战避坑指南
type: item
date: 2026-08-10T07:29:00+00:00
description: 银河麒麟系统 OpenSSH 升级至 10.x 实战避坑指南⚠️ 核心警告（操作前必读）绝对不要关闭当前的 SSH 连接窗口！ 必须保留一个已登录的旧会话作为“救生艇”，直到新终端测试连接成功为止，否则一旦配置错误将导致服务器失联。银河麒麟特性： 在重启 SSH 服务前必须执行 systemctl daemon-reload，否则会出现服务状态异常或配置不生效的提示。PAM 认证模块变更： 从 OpenSSH 10 以下版本升级，必须修改 PAM 加密模块配置（pam_stack.so 已被废弃），这是导致“密码正确却提示 Failed password”的通用致命错误。第一步：升级前准备与备份在操作前，务必备份当前的 SSH 配置文件，以便在出现问题时快速回滚。# 备份 sshd 配置文件 sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F) # 进入 RPM 包所在目录（假设放在 /root/openssh/） cd /root/openssh/第二步：执行 RPM 升级使用 rpm 命令直接进行升级安装：sudo rpm -Uvh openssh-*.rpm第三步：修复 Host Key 权限（必做）OpenSSH 10.x 对安全性要求极高，如果主机密钥（Host Key）权限过于宽松，sshd 将直接拒绝启动。执行以下命令修正权限和属主：# 1. 确保私钥权限为 600 chmod 600 /etc/ssh/ssh_host_rsa_key chmod 600 /etc/ssh/ssh_host_ecdsa_key chmod 600 /etc/ssh/ssh_host_ed25519_key # 2. 确保对应的公钥权限为 644 chmod 644 /etc/ssh/ssh_host_rsa_key.pub chmod 644 /etc/ssh/ssh_host_ecdsa_key.pub chmod 644 /etc/ssh/ssh_host_ed25519_key.pub # 3. 确保属主正确 chown root:root /etc/ssh/ssh_host_*_key /etc/ssh/ssh_host_*_key.pub第四步：清理废弃配置项 (sshd_config)OpenSSH 10 彻底移除了对 SSHv1 协议及相关古老加密算法的支持。旧配置文件中的某些选项会导致 sshd 报错。💡 避坑经验：报错提示的行号（如 155行、157行）并不固定。不要盲目按行号删除，一定要用 sshd -t 命令动态查看报错。# 测试配置文件是否有语法错误或废弃选项 sudo sshd -t常见报错及修复方法：报错 1： /etc/ssh/sshd_config line 157: Deprecated option RhostsRSAAuthenticationsudo sed -i '/^RhostsRSAAuthentication/d' /etc/ssh/sshd_config报错 2： /etc/ssh/sshd_config line 155: Deprecated option RSAAuthenticationsudo sed -i '/^RSAAuthentication/d' /etc/ssh/sshd_config修复后，再次执行 sudo sshd -t，如果没有任何输出，则说明配置文件已完全合法。第五步：重载配置与启动服务（麒麟系统关键步）在银河麒麟系统中，由于 systemd 单元文件或 init 脚本发生了变更，必须重载 daemon 配置。# 1. 重载 systemd 管理器配置（银河麒麟必做！） sudo systemctl daemon-reload # 2. 启动/重启 sshd 服务 sudo systemctl restart sshd.service # 3. 查看服务运行状态 sudo systemctl status sshd.service确认状态为 active (running) 且 22 端口正常监听。第六步：修复 PAM 认证模块（🔥 核心重点）这是从 10 以下版本升级必须修改的部分！旧版系统使用 pam_stack.so，而该模块在现代系统中已被移除。如果不修复，查看日志（journalctl -xeu sshd）会看到 PAM unable to dlopen(/usr/lib64/security/pam_stack.so)，导致即使密码正确也无法登录。# 1. 备份旧的 PAM 配置 sudo cp /etc/pam.d/sshd /etc/pam.d/sshd.b…

N1盒子安装FnOS，服务优化记录--持续更新
type: item
date: 2026-07-29T08:28:01+00:00
description: 可停用服务：插 4G 网卡无法上网。(插网线无影响) sudo systemctl disable ModemManager.service AI 计算管理服务 sudo systemctl disable ai_manager.service # 停止不必要的网络服务 sudo systemctl disable avahi.service sudo systemctl disable avahi-daemon.service # 停止文件监控（利于硬盘休眠） sudo systemctl disable trim_file_monitor.service #仅用于加入 Windows AD 域。家庭 NAS 不需要。 sudo systemctl disable --now winbind.service #Open vSwitch。除非你在 N1 上跑复杂的软路由（如 OpenWrt 旁路由模式）并需要 VLAN 隔离，否则纯 NAS 模式用不到。 sudo systemctl disable --now ovs-vswitchd.service sudo systemctl disable --now ovsdb-server.service #pNFS 块布局映射。这是企业级 NFS 集群用的，单机 NAS 用不到。 sudo systemctl disable --now nfs-blkmap.service #电源管理。N1 没有电池，且 USB 硬盘的休眠由飞牛自带的 trim_diskpowerd 控制，不依赖 upower。 sudo systemctl disable --now upower.service #关闭 Open vSwitch N1单网口NAS不需要OVS虚拟交换： sudo systemctl stop openvswitch-switch sudo systemctl disable openvswitch-switch停用会出现问题服务： WebDAV 服务：停止了，相册无法启动 sudo systemctl enable cloud_storage_dav.service考虑停用的服务：# 停止缩略图和媒体服务（最占 CPU） sudo systemctl status auto_thumbnailer.service sudo systemctl status mediasrv.service sudo systemctl status imagesrv.service

Ungoogled Chromium Binaries 离线部署实战指南
type: item
date: 2026-07-24T03:10:45+00:00
description: Ungoogled Chromium Binaries 离线部署实战指南—— 跨发行版、多架构服务器环境下的"绿色版"精准获取与使用1. 为什么选择 Ungoogled Chromium Binaries？在离线、多发行版（EulerOS / Kylin / Ubuntu）、多版本且混合架构（x86_64 + ARM64）的服务器环境中部署 Chrome，官方 .deb/.rpm 包因对 glibc、NSS、GTK 等系统库的严格版本锁定而完全不可用。Ungoogled Chromium Binaries 是 ungoogled-software/ungoogled-chromium 主仓库官方推荐的预编译二进制分发页面。它专门解决了以下核心痛点：零/低系统依赖：Portable（便携）版本静态链接了大部分运行时库，不绑定特定版本的 glibc，真正实现"解压即用"。双架构全覆盖：同时提供 x86_64 和 aarch64 (ARM64) 构建，完美适配信创鲲鹏/飞腾及传统 Intel/AMD 服务器。去 Google 化：移除了所有 Google 私有服务、追踪器和 API 依赖，符合内网及信创环境的安全合规要求。免 Root 权限：无需系统级安装，普通用户即可运行，避免污染宿主系统环境。⚠️ 安全声明该页面的二进制由社区贡献者构建，非可重现构建（non-reproducible）。若用于高安全合规环境，建议在隔离环境中自行从源码审计构建。对于一般内网服务器自动化、渲染、截图等场景，此方案是当前兼容性最优解。2. 读懂下载页：没有搜索框，如何找到"绿色版"？很多用户首次打开该页面时会困惑：没有搜索框，也没有"绿色版/安装版"的中文标签。这是因为该页面遵循开源社区惯例，按 平台 + 架构 + 构建类型 分类。你需要建立以下概念映射：页面表格中的名称实际含义对应 Windows 概念是否推荐离线多系统环境Portable Linux 64-bit解压后直接运行的 tar.xz 包，自带依赖库✅ 真·绿色版强烈推荐Linux AppImage 64-bit自包含的 .AppImage 单文件✅ 绿色版推荐（仅 x86_64）Portable Linux 64-bit (musl)针对 Alpine/Void 等轻量系统的静态构建✅ 超级绿色版老旧系统兜底Debian/Ubuntu (unportable).deb 包，需 dpkg 安装，强依赖系统库❌ 安装版绝对不要用Fedora/RHEL (unportable).rpm 包，需 rpm 安装，强依赖系统库❌ 安装版绝对不要用💡 核心原则只认准 Portable 和 AppImage 字样。凡是带有 unportable、.deb、.rpm 后缀的，一律跳过。快速定位技巧页面为静态生成，无搜索功能。请使用浏览器 Ctrl+F 搜索以下关键词：x86_64 绿色版 → 搜索 Portable Linux 64-bitARM64 绿色版 → 搜索 Portable Linux 64-bit ARM 或 aarch64自包含单文件 → 搜索 AppImage3. 下载与离线部署全流程第一步：联网机下载访问 Ungoogled Chromium Binaries在表格中找到目标架构对应的 Portable 行，点击版本号链接（如 150.0.7871.128-1），跳转至 GitHub Release 页面。下载对应文件：目标架构文件名示例x86_64ungoogled-chromium-150.0.7871.128-1-linux-portable.tar.xzARM64ungoogled-chromium-150.0.7871.128-1-linux-arm64-portable.tar.xz务必同时下载中文字体（离线服务器无 CJK 字体必然乱码）：wget https://github.com/notofonts/noto-cjk/raw/main/Sans/SubsetOTF/SC/NotoSansSC-Regular.otf第二步：离线服务器部署将下载的文件通过 U 盘或内网传输至目标服务器后执行：# 1. 创建目录并解压（无需 root） mkdir -p /opt/chromium tar -xf ungoogled-chromium-*-portable.tar.xz -C /opt/chromium --strip-components=1 # 2. 放置字体 mkdir -p /opt/chromium/fonts cp NotoSansSC-Regular.otf /opt/chromium/fonts/ # 3. 赋予执行权限 chmod +x /opt/ch…

AutoJs开心版
type: item
date: 2026-07-23T02:28:17+00:00
description: {cloud title="github" type="github" url="https://github.com/Azek431/AutoJsPro-Crd" password=""/}{cloud title="123网盘" type="default" url="https://1815547653.share.123pan.cn/123pan/0ztiVv-yFA1d" password=""/}{cloud title="天翼网盘" type="ty" url="https://cloud.189.cn/web/share?code=7ZVBjaZV3EV3" password="（访问码：kt0o）"/}