首页
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
Search
1
【N1安装飞牛之获取root】FNos飞牛NAS获取root密码详细教程
1 阅读
2
NGINX 零停机平滑升级全流程实操指南
1 阅读
3
【N1安装飞牛优化三】Btrfs 挂载优化,限制 Docker 日志大小 (防止撑爆硬盘),额外启动参数优化CPU
1 阅读
4
powershell报错:“irm - 请求被中止- 未能创建 SSL-TLS 安全通道“
0 阅读
5
Cloudflare 设置端口回源,nas套cloudflare福音
0 阅读
登录
Search
标签搜索
JAVA
JAVA学习系列
docker
Linux
js
N1
git
模块二
端口
模块一
模块五
模块九
数据库
模块四
镜像
模块三
模块六
MySQL
百度网盘
Armbian
DaiMaFengZi
累计撰写
583
篇文章
累计收到
7
条评论
首页
栏目
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
页面
搜索到
209
篇与
的结果
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日
1 阅读
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日
0 阅读
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日
0 阅读
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日
1 阅读
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日
0 阅读
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日
1 阅读
0 评论
0 点赞
2026-03-29
【N1安装飞牛优化二】限制现有的docker容器使用内存,调整 Swappiness 权重
限制现有的docker容器使用内存批量设置内存上限(复制并执行即可)# 1. 核心数据库(MySQL)限额 256M docker update --memory 256m --memory-swap 256m mysql # 2. 核心网络/Git 工具(mihomo, gogs)限额 128M ~ 256M docker update --memory 256m --memory-swap 256m mihomo docker update --memory 128m --memory-swap 128m gogs # 3. 基础服务组件(PHP, Redis, Nginx)限额 128M docker update --memory 128m --memory-swap 128m fn-php docker update --memory 128m --memory-swap 128m fn-redis docker update --memory 128m --memory-swap 128m fn-nginx # 4. 其他小工具(账本、面板)限额 128M 和 64M docker update --memory 128m --memory-swap 128m cashbook4 docker update --memory 64m --memory-swap 64m metacubexd为什么这样改?--memory 256m:限制该容器最多只能吃掉 256M 物理内存。--memory-swap 256m:限制该容器的“物理内存 + Swap(交换内存)”总共只有 256M。这意味着这个容器严禁过度占用系统资源。一旦这些容器内存超标,Docker 内部会自行清理,而绝不干扰您 OpenVPN 服务器的正常运行。调整 Swappiness 权重低 Swappiness 值,让系统尽量优先使用内存(和我们刚才设置的 ZRAM),减少对闪存的频繁读写。# 查看当前值 (默认通常是 60) cat /proc/sys/vm/swappiness # 临时修改为 10 sysctl vm.swappiness=10 # 永久修改 echo "vm.swappiness=10" >> /etc/sysctl.conf
2026年03月29日
0 阅读
0 评论
0 点赞
2026-03-29
【N1安装飞牛优化一】开启 BBR 网络加速,切换 CPU 为高性能模式,永久增大 ZRAM
前言Phicomm N1 只有 2GB 内存,运行 FnOS(飞牛 NAS)这种基于 Debian 的系统确实需要“精打细算”。查询1. 检查 ZRAM 是否开启(内存压缩)zramctl看什么: 如果有输出(显示 /dev/zramX),说明已经开了。如果没有输出,说明还没开。2. 检查 Swap 生效情况(物理交换文件)swapon --show看什么: 如果这个列表是空的,或者只有几百兆,对于 2G 内存的 N1 来说风险很大。3. 检查 BBR 状态(网速加速器)sysctl net.ipv4.tcp_congestion_control看什么: 如果显示的是 cubic 或 reno,说明还没开。如果显示 bbr,说明已经加速。4. 检查 CPU 运行模式(性能还是省电)cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor看什么: 如果显示 ondemand 是标准的。如果显示 performance 是最高性能。如果显示 powersave 说明您的 N1 现在正慢腾腾地跑。5. 检查当前内存负载(看压力大不大)free -m看什么: 重点看 available(可用内存)还有多少。如果只剩不到 100M,您的盒子随时会因为内存不足而断连。优化# 1. 强制开启 BBR 网络加速(让您的 VPN 传输速度翻倍) sudo tee -a /etc/sysctl.conf <<EOF net.core.default_qdisc = fq net.ipv4.tcp_congestion_control = bbr EOF sudo sysctl -p # 2. 将 CPU 切换到永久高性能模式(提升万兆内网吞吐稳定性) # (针对 Armbian/Ubuntu 的设置方法) if [ -f /etc/default/cpufrequtils ]; then sudo sed -i 's/GOVERNOR=.*/GOVERNOR="performance"/' /etc/default/cpufrequtils sudo systemctl restart cpufrequtils else # 临时生效方法,防止没有 cpufrequtils echo "performance" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor fi # 3. 增大 ZRAM(让 2GB 内存更像 3.5GB 内存) # 如果您的 zramctl 本身支持大小调整,可以设置为内存的 150% sudo zramctl --size 1500M /dev/zram0
2026年03月29日
0 阅读
0 评论
0 点赞
1
2
...
27