首页
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
友情连接
推荐
autojs
Search
1
charles破解注册码(含windows和mac)最新安装教程「亲测有效」
39 阅读
2
【omv5安装教程二】N1盒子Armbian系统下,一条命令搞定Openmediavault(OMV5)安装
18 阅读
3
【N1安装飞牛优化四】关闭不必要服务优化记录
12 阅读
4
博客简介
11 阅读
5
SSH如何访问fe80开头的ipv6????
11 阅读
登录
Search
标签搜索
JAVA
JAVA学习系列
docker
Linux
js
N1
git
模块二
端口
模块一
模块五
模块九
数据库
模块四
镜像
模块三
模块六
MySQL
百度网盘
nginx
DaiMaFengZi
累计撰写
588
篇文章
累计收到
9
条评论
首页
栏目
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
页面
友情连接
推荐
autojs
搜索到
211
篇与
的结果
2026-07-24
Ungoogled Chromium Binaries 离线部署实战指南
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/chromium/chrome # 4. 验证动态链接库完整性(应全部显示 found 或 static) ldd /opt/chromium/chrome第三步:运行测试/opt/chromium/chrome \ --headless=new \ --no-sandbox \ --disable-gpu \ --disable-dev-shm-usage \ --font-path=/opt/chromium/fonts \ --screenshot=/tmp/test.png \ https://example.com确认 /tmp/test.png 生成且中文渲染正常,即部署成功。4. 多架构统一启动脚本(生产环境推荐)在混合架构集群中,建议封装 wrapper 脚本自动适配,屏蔽底层差异:#!/bin/bash # /usr/local/bin/chrome-headless ARCH=$(uname -m) CHROME_DIR="/opt/chromium" FONT_DIR="${CHROME_DIR}/fonts" case "$ARCH" in x86_64) CHROME_BIN="${CHROME_DIR}/chrome-x86_64" ;; aarch64) CHROME_BIN="${CHROME_DIR}/chrome-aarch64" # ARM64 二进制缺失时回退到容器 if [ ! -f "$CHROME_BIN" ]; then exec docker run --rm \ -v "${FONT_DIR}:/usr/share/fonts/custom:ro" \ zenika/alpine-chrome \ --headless=new --no-sandbox --disable-gpu \ --disable-dev-shm-usage \ --font-path=/usr/share/fonts/custom \ "$@" fi ;; *) echo "Unsupported architecture: $ARCH" >&2 exit 1 ;; esac exec "$CHROME_BIN" \ --headless=new \ --no-sandbox \ --disable-gpu \ --disable-dev-shm-usage \ --font-path="$FONT_DIR" \ "$@"调用方式统一为:chrome-headless --screenshot=/tmp/output.png https://example.com5. 常见问题速查表问题现象根因解决方案GLIBC_2.xx not found宿主机 glibc 版本过低换用 musl Portable 构建,或使用容器方案中文显示方块/乱码缺少 CJK 字体添加 --font-path 指向 Noto Sans SC 或文泉驿字体Out of memory / 崩溃/dev/shm 空间不足必须加 --disable-dev-shm-usageRunning as root without --no-sandboxroot 用户运行加 --no-sandbox(容器内或 root 下必需)ARM64 无可用 Portable 构建社区未覆盖该架构使用 zenika/alpine-chrome ARM64 容器镜像替代ldd 显示大量 not foundPortable 版仍依赖少量系统库安装缺失基础库(如 libnss3),或换用完全静态构建6. 参考链接二进制下载页:https://ungoogled-software.github.io/ungoogled-chromium-binaries/主仓库(源码/补丁):https://github.com/ungoogled-software/ungoogled-chromium容器替代方案:https://hub.docker.com/r/zenika/alpine-chromeCJK 字体下载:https://github.com/notofonts/noto-cjk
2026年07月24日
1 阅读
0 评论
0 点赞
2026-07-17
Nginx平滑升级离线编译与零停机热替换完整手册
Nginx 1.30.4 离线编译与零停机热替换完整手册⚠️ 前置条件确认当前身份:root旧版 Nginx 前缀:/usr/local/nginx编译依赖:gcc、make、pcre-devel、zlib-devel、openssl-devel 等必须已在离线环境中提前安装。若未安装,需先通过 rpm/deb 包离线安装依赖,否则 ./configure 会失败。📥 第一阶段:获取源码与解压1. 下载 Nginx 1.30.4 源码包在有网络的机器上下载后,通过 U盘/SCP 等方式传入服务器 /home/zjgzwyjsadmin/ 目录:# 在联网机器执行示例 wget https://nginx.org/download/nginx-1.30.4.tar.gz2. 解压并进入源码目录cd /home/nginx-1.30.4 tar -zxvf nginx-1.30.4.tar.gz cd nginx-1.30.4路径约定后续所有命令均假设源码位于 /home/nginx-1.30.4。若您实际路径不同,请全局替换。🔧 第二阶段:编译构建(仅编译,不安装)1. 提取旧版编译参数OLD_ARGS= $ (nginx -V 2>&1 | grep "configure arguments:" | sed 's/configure arguments: //') echo "📋 旧版参数: $ OLD_ARGS"2. 配置编译选项# 使用旧版参数确保模块完全兼容 ./configure $ OLD_ARGS3. 编译生成新二进制# 利用多核加速编译,绝不执行 make install! make -j $ (nproc)4. 编译后双重验证(必做)# 验证1:参数一致性(注意 -- 分隔符防止 grep 误解析) ./objs/nginx -V 2>&1 | grep "configure arguments:" | grep -F -- " $ OLD_ARGS" \ && echo "✅ 编译参数一致" || { echo "❌ 参数不一致,停止!"; exit 1; } # 验证2:新二进制能正确解析现有配置 ./objs/nginx -t # 期望输出: syntax is ok / test is successful只有两个验证均通过,才能继续。 若失败,检查 $OLD_ARGS 完整性或重新 make clean && make。🔒 第三阶段:全量备份(不可跳过)BACKUP_TIME= $ (date +%Y%m%d_%H%M%S) NGINX_BIN= $ (which nginx) # 备份二进制 cp " $ NGINX_BIN" " $ {NGINX_BIN}.bak. $ {BACKUP_TIME}" # 备份配置目录 cp -a /usr/local/nginx/conf "/usr/local/nginx/conf.bak. $ {BACKUP_TIME}" echo "✅ 备份完成:" ls -lh " $ {NGINX_BIN}.bak. $ {BACKUP_TIME}" ls -ld "/usr/local/nginx/conf.bak. $ {BACKUP_TIME}"🔄 第四阶段:零停机热替换执行💡 原理:USR2 启动新 Master → 新 Worker 接管新请求 → WINCH 优雅关闭旧 Worker→ QUIT 退出旧 Master。全程无连接中断。# 确保在源码目录下 cd /home/zjgzwyjsadmin/nginx-1.30.4 NGINX_BIN= $ (which nginx) # 步骤1:覆盖二进制(旧进程在内存中运行,不受磁盘影响) cp ./objs/nginx " $ NGINX_BIN" # 步骤2:启动新 Master 进程 kill -USR2 $ (cat /usr/local/nginx/logs/nginx.pid) sleep 3 # 步骤3:确认双 Master 共存(必须看到两行 master) ps aux | grep "[n]ginx: master" # 步骤4:优雅关闭旧 Worker kill -WINCH $ (cat /usr/local/nginx/logs/nginx.pid.oldbin) # 步骤5:业务健康检查(关键决策点!) curl -sI http://localhost | head -3 tail -20 /usr/local/nginx/logs/error.log | grep -E "emerg|crit|alert" # ✅ 正常 → 继续步骤6 # ❌ 异常 → 立即执行下方【紧急回滚预案】 # 步骤6:彻底退出旧 Master kill -QUIT $ (cat /usr/local/nginx/logs/nginx.pid.oldbin) # 步骤7:最终版本确认 nginx -v # 期望输出: nginx version: nginx/1.30.4✅ 第五阶段:升级后验证矩阵检查项命令合格标准版本号nginx -vnginx/1.30.4进程唯一性`ps aux \grep "[n]ginx: master" \wc -l`输出 1配置语法nginx -ttest is successful错误日志tail -20 /usr/local/nginx/logs/error.log无新增 emerg/crit业务响应curl -sI http://localhostHTTP 2xx/3xx监听端口`ss -tlnp \grep nginx`所有预期端口 LISTEN🔙 紧急回滚预案(30秒内恢复)仅在第四阶段步骤5健康检查失败时执行:NGINX_BIN= $ (which nginx) # ⚠️ 将下方时间戳替换为第三阶段输出的实际 BACKUP_TIME BACKUP_TIME="YYYYMMDD_HHMMSS" # 1. 终止新进程组 kill -QUIT $ (cat /usr/local/nginx/logs/nginx.pid) 2>/dev/null # 2. 恢复旧二进制 cp " $ {NGINX_BIN}.bak. $ {BACKUP_TIME}" " $ NGINX_BIN" # 3. 重启旧版本 nginx -t && nginx # 4. 验证回滚成功 nginx -v && curl -sI http://localhost⚠️ Root 环境安全警告SELinux:若启用,覆盖二进制后必须执行 restorecon -v "$NGINX_BIN",否则新 Master 无法绑定端口。WINCH 耐心等待:WebSocket/大文件下载等长连接可能导致旧 Worker 持续数分钟。用 watch -n1 'ps aux | grep "[n]ginx: worker"' 监控,绝不要 kill -9。PID 路径:以上命令假设 PID 在 /usr/local/nginx/logs/nginx.pid。若不同,通过 nginx -V 2>&1 | grep -oP '(?<=--pid-path=)\S+' 获取实际路径并全局替换。操作窗口:尽管零停机,仍建议在业务低峰期执行。离线依赖:若 ./configure 报错缺少库,需在离线环境中提前准备好对应的 devel 包(如 pcre2-devel、zlib-devel、openssl-devel)并通过 rpm -ivh 或 dpkg -i 安装。
2026年07月17日
5 阅读
0 评论
0 点赞
2026-05-20
NGINX 零停机平滑升级全流程实操指南
一、 概述在生产环境下,升级 NGINX 二进制文件通常面临一个挑战:如何升级而不需要停止服务(零停机)?NGINX 通过一套精巧的信号量(Signals)机制实现了平滑升级。其核心原理是:启动一个新的主进程(Master Process)接管监听端口,让旧进程在处理完现有请求后优雅退出,从而实现无缝切换。二、 升级前置准备与环境摸底在升级之前,必须确保新版本的编译参数与当前运行的版本完全一致,否则会导致启动失败或功能缺失。1. 查询当前版本及编译参数# 查看当前版本号 nginx -v # 查看详细编译参数 (极其重要,升级时必须使用相同的参数) nginx -V记录项: 重点记录 configure arguments 之后的所有内容(如 --prefix=/usr/local/nginx)。2. 确认二进制文件路径与 PID# 确认 nginx 可执行文件路径 which nginx # 确认当前运行的主进程 PID ps aux | grep nginx 记录项: 记录 master process 的 PID。3. 配置文件语法检查在任何操作前,确保当前配置文件没有语法错误。nginx -t三、 新版本编译准备核心原则:只编译→→不安装。 严禁直接执行 make install,因为这会覆盖您生产环境的配置文件。1. 下载并解压wget http://nginx.org/download/nginx-x.x.x.tar.gz tar -zxvf nginx-x.x.x.tar.gz cd nginx-x.x.x2. 配置与编译使用第一阶段记录的编译参数进行配置:# 使用之前 nginx -V 记录的参数 ./configure --prefix=/usr/local/nginx [其他参数...] # 编译生成二进制文件 make编译完成后,新的二进制文件位于 objs/nginx。四、 执行平滑升级(核心步骤)步骤 1:二进制文件替换由于 Linux 内核禁止覆盖正在运行的二进制文件(会报 Text file busy),我们必须使用 mv 命令通过改变 inode 的方式进行替换。 # 1. 备份旧文件 cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak # 2. 使用 mv 替换新文件 (绕过 Text file busy) mv objs/nginx /usr/local/nginx/sbin/nginx # 3. (可选) 如果系统中有快捷路径 /usr/local/bin/nginx,请同步更新 cp /usr/local/nginx/sbin/nginx /usr/local/bin/nginx步骤 2:启动新主进程 (USR2)向旧主进程发送 USR2 信号,通知其启动新版本的二进制进程。 kill -USR2 <旧MasterPID> 状态: 此时,旧主进程和新主进程同时存在,它们共同监听端口,但新请求将开始分发给新进程。 步骤 3:优雅停止旧工作进程 (WINCH) 向旧主进程发送 WINCH 信号,通知旧的工作进程(Worker Processes)在处理完当前请求后立即退出。 code Bash kill -WINCH <旧MasterPID> 状态: 此时,所有新流量已全部由新版本进程处理。步骤 4:业务验证(关键环节) 在彻底删除旧版本前,必须进行全方位验证: 本地验证: curl -I http://127.0.0.1:端口 外部验证: telnet IP 端口 或 浏览器访问。 日志验证: tail -f /usr/local/nginx/logs/error.log 检查是否有 [emerg] 报错。 ### 步骤 5:彻底关闭旧主进程 (QUIT) 确认业务运行稳定后,关闭不再需要的旧主进程。 ```text kill -QUIT ``` 五、 异常处理与回滚方案 1. 怎么回滚? 如果在 步骤 3 之后发现新版本运行异常,可以通过以下指令将流量瞬间切回旧版本: code Bash # 向新主进程发送 WINCH 信号,让新 worker 退出 kill -WINCH # 此时流量会自动切回尚未关闭的旧 worker 进程 2. 常见坑点排查 ```text Text file busy: 不要用 cp 覆盖运行中的文件,必须用 mv。 版本显示不一致: 如果 nginx -v 显示旧版而 ps 显示新版,说明 /usr/local/bin/nginx 和 /usr/local/nginx/sbin/nginx 两者不一致,请同步覆盖。 Telnet 不通: 若 curl 内部通但外部不通,请检查防火墙(Firewalld/Security Group)策略,这通常与 NGINX 升级无关,而是网络层波动。 ``` 六、 总结流程图 备份→→编译→→mv替换→→USR2(启动新版)→→WINCH(切流量)→→验证→→QUIT(删旧版)
2026年05月20日
6 阅读
0 评论
0 点赞
2026-04-13
2026 最新实战:在单卡 48GB GPU 上部署 Qwen3.5-35B-A3B MoE 模型(vLLM + Open WebUI 完整指南)
一、为什么选择 Qwen3.5-35B-A3B?Qwen3.5-35B-A3B 是阿里通义千问团队于 2026 年初发布的 混合专家(MoE)模型,具备以下优势:小体积,大能力:总参数量 35B,但每次推理仅激活约 3B 参数,显存占用远低于同级别 Dense 模型。超长上下文:原生支持 262,144 tokens,轻松处理长文档、代码库。开源免费:采用 Apache 2.0 协议,可商用,权重已在 ModelScope 魔搭社区 公开。性能卓越:在多项基准测试中超越前代 Qwen3-235B-A22B,推理成本更低。对于拥有 单张 48GB GPU(如 A6000、RTX 6000 Ada)的用户,它是目前能本地部署的 最强 MoE 模型。二、环境配置(无需虚拟环境,全局安装即可)重要提示:经大量用户反馈,vLLM 与 Open WebUI 必须在同一 Python 环境中运行,否则会出现模块缺失或 API 不兼容问题。因此,直接使用全局环境是最简单可靠的方案。# 升级 pip(避免旧版 pip 的编译问题) pip install --upgrade pip #安装魔塔社区的包 pip install modelscope # 安装 vLLM(自动匹配 CUDA 版本) pip install vllm # 安装 FlashAttention(加速注意力计算) pip install flash-attn --no-build-isolation # 安装webui聊天界面 pip install open-webui三、单卡部署:Qwen3.5-35B-A3B 快速启动1. 下载模型(以 Qwen3.5-35B-A3B 为例)#模型下载 from modelscope import snapshot_download model_dir = snapshot_download('Qwen3.5-35B-A3B',cache_dir='./')四、单卡部署:启动 vLLM 服务vllm serve ./Qwen3.5-35B-A3B \ --dtype bfloat16 \ --port 5000 \ --max_model_len 262144 \ --gpu_memory_utilization 0.85参数详解(针对 MoE 模型优化):参数推荐值说明--dtypebfloat16MoE 模型必须用 bfloat16,auto 可能导致精度下降--port5000API 服务端口(可自定义)--max_model_len262144启用模型最大上下文长度(爆显存时可降至 131072)--gpu_memory_utilization0.8548GB 显存安全值(若爆显存,逐步降至 0.8 → 0.75)显存占用参考(48GB GPU):上下文 262K:~41GB上下文 131K:~38GB上下文 65K:~35GB五、集成 Open WebUI(图形化聊天界面)# 启用网络加速(AutoDL 用户必备) source /etc/network_turbo # 设置环境变量(关键!) export HF_ENDPOINT=https://hf-mirror.com # Hugging Face 镜像加速 export ENABLE_OLLAMA_API=False # 禁用 Ollama 兼容层 export OPENAI_API_BASE_URL=http://127.0.0.1:5000/v1 # 指向 vLLM API export DEFAULT_MODELS="Qwen3.5-35B-A3B" # 必须与模型文件夹名一致 # 启动 WebUI(默认端口 8080,此处改为 6006) open-webui serve --port 6006访问界面浏览器打开:👉 http://你的服务器IP:6006六、多卡部署(扩展参考)注意:Qwen3.5-35B-A3B 仅支持张量并行(Tensor Parallelism),不支持流水线并行。# 2 卡示例(如 2×A6000) vllm serve ./Qwen3.5-35B-A3B \ --dtype bfloat16 \ --port 5000 \ --tensor-parallel-size 2 \ --gpu_memory_utilization 0.8 \ --max_model_len 262144并行策略:--tensor-parallel-size N:必须等于 GPU 数量(如 2 卡设为 2)。不要设置 --pipeline-parallel-size:MoE 模型不兼容。七、OpenAI 格式 API 调用启动兼容 API 服务(等效于 vllm serve)python -m vllm.entrypoints.openai.api_server \ --served-model-name Qwen3.5-35B-A3B \ --model ./Qwen3.5-35B-A3B \ --dtype bfloat16 \ --port 5000 \ --max_model_len 262144 \ --gpu_memory_utilization 0.85Python 调用示例from openai import OpenAI client = OpenAI( base_url="http://localhost:5000/v1", api_key="not-needed" ) response = client.chat.completions.create( model="Qwen3.5-35B-A3B", messages=[{"role": "user", "content": "请用 262K 上下文分析以下代码库..."}], max_tokens=500 ) print(response.choices[0].message.content)
2026年04月13日
4 阅读
0 评论
0 点赞
2026-04-04
【N1安装飞牛之日志】斐讯N1日志内容不显示的问题
前言日志应用空白一片,无东西显示。修复方案使用root登录SSH,或者切换到rootapt update sudo apt-get -o Dpkg::Options::="--force-overwrite" install -y rsyslog这个命令的关键在于 -o Dpkg::Options::="--force-overwrite",它允许 rsyslog 覆盖 trim 包中已有的同名配置文件。会让您输入Y或者N 这个就看个人了。我是输入的都是N安装完成后启动应用systemctl start rsyslog systemctl status rsyslog可选覆盖掉配置在终端shell中,以root用户执行以下复制命令(请根据自己的上传路径修改命令)cp /vol1/1000/文件分享/rsyslog.conf /etc/ mkdir -p /etc/rsyslog.d cp /vol1/1000/文件分享/avahi-daemon.conf /etc/rsyslog.d/{cloud title="蓝奏网盘" type="lz" url="https://daimafengzi.lanzout.com/iCQlv3mf11be" password=""/}{cloud title="百度网盘" type="bd" url="https://pan.baidu.com/s/1JcvWscfj3jC6bk2MJfTuxg?pwd=yqjz" password="yqjz"/}
2026年04月04日
7 阅读
0 评论
0 点赞
2026-03-30
【N1安装飞牛之获取root】FNos飞牛NAS获取root密码详细教程
前言很多刚接触 FNos (飞牛私有云) 的小伙伴常会问:“系统的默认 root 密码是多少?”重要提示: 出于安全考虑,FNos 默认没有预设 root 密码,且禁止 root 直接远程登录。您需要使用首次创建的管理员账号通过 SSH 登录后,手动提权设置。本文将手把手教您如何在 3 分钟内完成设置。🛠️ 一、准备工作在开始之前,请确保您已具备以下条件:管理员账号:您初始化 FNos 时创建的第一个账号(拥有 sudo 权限)。SSH 客户端:Windows 用户:推荐使用 PuTTY、Xshell,或直接使用系统自带终端(Win10/11 按 Win+R 输入 cmd 或 powershell)。Mac/Linux 用户:直接使用系统自带的「终端」(Terminal)。网络环境:电脑与 FNos 设备处于同一局域网,且已知晓 FNos 的 IP 地址。🚀 二、操作步骤详解步骤 1:启动 SSH 连接图形化工具 (PuTTY/Xshell):双击打开软件。命令行工具 (CMD/Terminal):Win: 按 Win + R,输入 cmd 回车。Mac: 在“启动台” -> “其他”中打开“终端”。步骤 2:连接至 FNos 设备在终端中输入以下命令(将 <IP地址> 替换为您实际的 FNos IP):ssh <您的管理员用户名>@<FNos_IP地址> # 例如:ssh admin@192.168.1.100注:默认端口为 22,若未修改过无需额外指定。首次连接提示:若出现Are you sure you want to continue connecting (yes/no/[fingerprint])?请输入 yes 并回车。身份验证:输入管理员账号密码(⚠️ 注意:输入时屏幕不会显示任何字符,这是 Linux 的安全机制,并非键盘失灵,输完直接回车即可)。看到提示符变为 用户名@fnos:~$ 即表示连接成功。步骤 3:设置 Root 密码连接成功后,依次执行以下操作:输入提权命令:sudo passwd root(注意 sudo、passwd、root 之间有空格)验证管理员身份:设定新 Root 密码:成功标志:❓ 三、常见问题解答 (FAQ)Q1:为什么输入密码时屏幕上什么都没显示?A: 这是 Linux/Unix 系统的标准安全机制,防止旁人通过字符长度推测密码。请放心盲打,输完后直接按回车键即可。Q2:提示 user is not in the sudoers file 怎么办?A: 这通常意味着您当前登录的账号不是首次创建的管理员账号。请使用初始化时建立的第一个账号重新登录 SSH。Q3:忘记刚才设置的 Root 密码了?A: 无需重装系统!只需用管理员账号重新登录 SSH,再次执行 sudo passwd root 即可重置。Q4:设置完成后可以直接用 root 登录吗?A: 默认情况下,为了安全,FNos 可能仍禁止 root 直接远程 SSH 登录。建议日常使用普通管理员账号配合 sudo 操作。如确需开启 root 远程登录,需修改 /etc/ssh/sshd_config 文件(新手慎改)。💡 四、总结核心流程仅需三步:SSH 登录:使用管理员账号连接。执行命令:输入 sudo passwd root。双重确认:输入两次新密码。
2026年03月30日
3 阅读
0 评论
0 点赞
2026-03-29
【N1安装飞牛优化四】关闭不必要服务优化记录
可停用服务:插 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 单盘使用,不需要 mdadm 监控) sudo systemctl disable --now mdmonitor.service #电源管理。N1 没有电池,且 USB 硬盘的休眠由飞牛自带的 trim_diskpowerd 控制,不依赖 upower。 sudo systemctl disable --now upower.service停用会出现问题服务: 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
2026年03月29日
12 阅读
0 评论
0 点赞
2026-03-29
【N1安装飞牛优化三】Btrfs 挂载优化,限制 Docker 日志大小 (防止撑爆硬盘),额外启动参数优化CPU
限制 Docker 日志大小 (防止撑爆硬盘)修改 /etc/docker/daemon.json(如果没有就新建):{ "data-root": "/vol1/docker", "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }Btrfs 挂载优化第一步:优化系统根分区 (ROOT_EMMC)将系统分区的 defaults,noatime 后面补上压缩参数。替换原有的 / 挂载参数:UUID=b1bd1ce4-2204-4176-919f-973ba364a320 / btrfs defaults,noatime,compress=zstd:1,space_cache=v2,errors=remount-ro 1第二步:强制接管数据分区 (/vol1)在 fstab 的末尾添加一行,显式地指定 /vol1 的挂载选项。这样能确保你在 USB 2.0 硬盘读写时获得更稳的体验:UUID=3b009fa0-dee0-4f30-a79d-869b2f21b013 /vol1 btrfs defaults,noatime,compress=zstd:1,autodefrag,commit=15,space_cache=v2 0 0UUID可以通过: blkid | grep btrfs 进行查询额外启动参数优化CPU因为 N1 用的 A53 的核心非常老,现代 Linux 内核为了防范 CPU 漏洞(幽灵/熔断),默认开启了一堆减慢速度的补丁。由于你的 N1 只是做家庭 NAS,风险极低。我们可以关掉这些防御来提速。🛠️ 操作步骤:编辑 /boot/fnEnv.txt: 找到 extraargs 这一行,在末尾加上 mitigations=off。修改后的 extraargs 应该是这样的:verbosity=1 bootlogo=false console=both fdtfile=amlogic/meson-gxl-s905d-phicomm-n1.dtb extraargs=console=ttyAML0,115200n8 console=tty0 usb-storage.quirks=152d:0576:u kernelfile=vmlinuz-6.18.18-trim mitigations=off initrdfile=uInitrd-6.12.41-trim保存并重启:reboot
2026年03月29日
2 阅读
0 评论
0 点赞
1
2
...
27