首页
关于
Search
1
Linux 网关 - 用 mihomo 使用 Tproxy 模式 作为透明代理
126 阅读
2
揪出 Unraid 磁盘休眠经常被唤醒的元凶:系统级排查与优化指南
35 阅读
3
如何在 Unraid 中根据不同场景选择最佳文件系统
30 阅读
4
Unraid 缓存池从 Btrfs 无损迁移到 ZFS
25 阅读
5
移动光猫获取超级管理员密码
23 阅读
默认分类
登录
Search
坑飞
累计撰写
9
篇文章
累计收到
1
条评论
首页
栏目
默认分类
页面
关于
搜索到
9
篇与
的结果
2026-01-13
Linux 网关 - 用 mihomo 使用 Tproxy 模式 作为透明代理
注意: 我这个配置只能劫持局域网内的设备的请求流量, 无法劫持网关本身的请求流量环境说明:机器: J643 6 口小主机pve 8.0.4lxc 容器里装个 debian 12Tproxy 和 tun 模式有啥区别, 这是GPT给出的结果特性TproxyTUN工作层级四层(数据链路层)三层(IP 层)是否保留源 IP是否配置复杂度较高较低性能较高可能较低灵活性较低较高适用场景流量转发、透明代理VPN、跨网络代理、用户态协议栈我反正是没感觉出来, 我用 Tproxy 模式的最大原因是这个可以代理游戏加速, 打游戏不卡一、开启 IP 转发执行下面这行命令开启 ipv4 和 ipv6 转发tee /etc/sysctl.conf <<-'EOF' net.ipv4.ip_forward = 1 net.ipv4.conf.all.route_localnet=1 net.ipv6.conf.all.forwarding = 1 EOF查看是否执行成功sysctl -p一、安装 mihomo先自行安装 mihomo , 不会安装也可以参考我之前的一片文章:pve lxc 环境下 安装配置 Clash Meta 作为透明网关 - 坑了个飞二、配置 mihomotproxy 模式的配置跟 tun 的稍微有点不一样, 整体配置如下重要部分我会在下面说明, 请根据自身情况酌情修改#---------------------------------------------------# ## 配置文件需要放置在 $HOME/.config/clash.meta/*.yaml ## 这份文件是clashX的基础配置文件,请尽量新建配置文件进行修改。 ## 如果您不知道如何操作,请参阅 ## Clash Meta wiki https://docs.metacubex.one ## Clash Meta wiki https://clash-meta.wiki ## Clash Meta Github文档 https://github.com/MetaCubeX/Clash.Meta/blob/Alpha/README.md ## 规则地址 https://github.com/v2fly/domain-list-community/tree/master/data #---------------------------------------------------# log-level: warning mode: rule find-process-mode: off ipv6: true unified-delay: true tcp-concurrent: true keep-alive-idle: 600 keep-alive-interval: 15 external-ui: ui external-ui-name: MetaCubeXD external-ui-url: https://ghfast.top/https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip external-controller: 0.0.0.0:9090 secret: "112233" profile: store-selected: true store-fake-ip: true allow-lan: true port: 8080 socks-port: 1080 mixed-port: 7890 redir-port: 7891 tproxy-port: 7892 tun: enable: false stack: system device: mihomo mtu: 9000 gso: true gso-max-size: 65536 endpoint-independent-nat: false dns: enable: true listen: 0.0.0.0:1053 enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 respect-rules: false prefer-h3: false ipv6: true use-system-hosts: false use-hosts: false fake-ip-filter-mode: blacklist fake-ip-filter: - +.lan - +.local - geosite:cn - rule-set:custom-direct-domain - +.20240215.xyz default-nameserver: - 10.0.0.5 proxy-server-nameserver: - tcp://10.0.0.5 direct-nameserver: - tcp://10.0.0.5 nameserver: - tcp://10.0.0.5 nameserver-policy: geosite:cn: - tcp://10.0.0.4 - 223.5.5.5 +.20240215.xyz: - 1.0.0.1 sniffer: enable: true force-dns-mapping: true parse-pure-ip: true override-destination: false skip-domain: - Mijia Cloud - dlg.io.mi.com - +.push.apple.com - +.apple.com sniff: HTTP: override-destination: true ports: - 80 - 8080 TLS: override-destination: true ports: - 443 - 8443 QUIC: override-destination: true ports: - 443 - 8443 geodata-mode: true geodata-loader: standard geox-url: geosite: https://ghfast.top/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat mmdb: https://ghfast.top/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip-lite.metadb geoip: https://ghfast.top/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip-lite.dat asn: https://ghfast.top/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/GeoLite2-ASN.mmdb geo-auto-update: true geo-update-interval: 24 authentication: - kenfei:654321 pr: &pr {type: select, proxies: [♻️ 自动选择, "\U0001F680 节点选择", "\U0001F310 全部节点", "\U0001F7E2 直连"]} # url 里填写自己的订阅,名称不能重复 proxy-providers: provider1: url: "订阅地址" type: http interval: 86400 health-check: {enable: true, url: "https://www.gstatic.com/generate_204", interval: 300} proxy: "\U0001F7E2 直连" override: additional-prefix: "[me]" # 统一延迟, 更换延迟计算方式,去除握手等额外延迟 # unified-delay: true # TCP 并发连接所有 IP, 将使用最快握手的 TCP # tcp-concurrent: true # 全局 TLS 指纹,优先低于 proxy 内的 client-fingerprint # 可选: "chrome","firefox","safari","ios","random","none" options. # Utls is currently support TLS transport in TCP/grpc/WS/HTTP for VLESS/Vmess and trojan. global-client-fingerprint: chrome proxies: - name: "\U0001F7E2 直连" type: direct udp: true proxy-groups: - {name: "\U0001F680 节点选择", type: select, use: [provider1]} - {name: "\U0001F4F9 YouTube", !!merge <<: *pr} - {name: "\U0001F340 Google", !!merge <<: *pr} - {name: "\U0001F916 ChatGPT", !!merge <<: *pr} - {name: "\U0001F468\U0001F3FF\U0001F4BB GitHub", !!merge <<: *pr} - {name: "\U0001F42C OneDrive", !!merge <<: *pr} - {name: "\U0001FA9F Microsoft", !!merge <<: *pr} - {name: "\U0001F3B5 TikTok", !!merge <<: *pr} - {name: "\U0001F4F2 Telegram", !!merge <<: *pr} - {name: "\U0001F3A5 NETFLIX", !!merge <<: *pr} - {name: ✈️ Speedtest, !!merge <<: *pr} - {name: "\U0001F4B6 PayPal", !!merge <<: *pr} - {name: "\U0001F3AE xbox", use: [provider1], !!merge <<: *pr} - {name: "\U0001F34E Apple", type: select, proxies: ["\U0001F7E2 直连", "\U0001F680 节点选择"]} - {name: "\U0001F3AF 全球直连", type: select, proxies: ["\U0001F7E2 直连", "\U0001F680 节点选择"]} - {name: "\U0001F41F 漏网之鱼", use: [provider1], !!merge <<: *pr} - {name: ♻️ 自动选择, type: url-test, include-all: true, tolerance: 20, interval: 300, filter: "^((?!(直连)).)*$"} - {name: "\U0001F310 全部节点", type: select, include-all: true} rule-anchor: ip: &ip {type: http, interval: 86400, behavior: ipcidr, format: mrs} domain: &domain {type: http, interval: 86400, behavior: domain, format: mrs} custom_ip: &custom_ip {type: http, interval: 86400, behavior: ipcidr, format: text} custom_domain: &custom_domain {type: http, interval: 86400, behavior: domain, format: yaml} rule-providers: # 自定义直连规则 custom-direct-domain: {!!merge <<: *custom_domain, url: "https://ghfast.top/https://raw.githubusercontent.com/fillpit/script/main/clash/rules/custom-direct-domain.yaml"} # 自定义直连规则 custom-direct-ip: {!!merge <<: *custom_ip, url: "https://ghfast.top/https://raw.githubusercontent.com/fillpit/script/main/clash/rules/custom-direct-ip.txt"} # 自定义代理规则 custom-proxy-domain: {!!merge <<: *custom_domain, url: "https://ghfast.top/https://raw.githubusercontent.com/fillpit/script/main/clash/rules/custom-proxy-domain.yaml"} # 自定义代理规则 custom-proxy-ip: {!!merge <<: *custom_ip, url: "https://ghfast.top/https://raw.githubusercontent.com/fillpit/script/main/clash/rules/custom-proxy-ip.txt"} rules: # 自己的规则放前面 - "RULE-SET,custom-direct-domain,\U0001F7E2 直连" - "RULE-SET,custom-direct-ip,\U0001F7E2 直连" - RULE-SET,custom-proxy-domain,♻️ 自动选择 - "RULE-SET,custom-proxy-ip,\U0001F3AE xbox" # ******** 自定义 规则区域 start ******** # ****** 默认 非国内的域名和ip都走代理 ****** # ****** 也就是说分流规则这里主要关注 需要直连的地址 和需要屏蔽的地址 (没匹配上的都走代理) ****** # 私有网络专用域名 - "GEOIP,lan,\U0001F7E2 直连,no-resolve" - "GEOSITE,private,\U0001F7E2 直连" - "GEOSITE,youtube,\U0001F4F9 YouTube" - "GEOSITE,google,\U0001F340 Google" - "GEOIP,google,\U0001F340 Google" - "GEOSITE,openai,\U0001F916 ChatGPT" - "GEOSITE,github,\U0001F468\U0001F3FF\U0001F4BB GitHub" - "GEOSITE,onedrive,\U0001F42C OneDrive" - "GEOSITE,microsoft,\U0001FA9F Microsoft" - "GEOSITE,tiktok,\U0001F3B5 TikTok" - "GEOSITE,telegram,\U0001F4F2 Telegram" - "GEOIP,telegram,\U0001F4F2 Telegram" - "GEOSITE,netflix,\U0001F3A5 NETFLIX" - "GEOIP,netflix,\U0001F3A5 NETFLIX" - GEOSITE,speedtest,✈️ Speedtest - "GEOSITE,paypal,\U0001F4B6 PayPal" - "GEOSITE,apple,\U0001F34E Apple" # 国内域名 直连 - "GEOSITE,CN,\U0001F7E2 直连" # 国内 ip 直连 - "GEOIP,CN,\U0001F7E2 直连" - "MATCH,\U0001F41F 漏网之鱼"proxy-providers.provider1.url: 这里改成你自己的订阅链接10.0.0.5 ,10.0.0.4 : 这是我 Adguard DNS 的IP, 请改成你自己配置防火墙规则在大多数 Linux 系统上,/etc/nftables.conf 是 nftables 服务启动时加载的默认配置文件, 编辑该文件, 加入下面的内容注意下面配置最上面的 TPROXY_PORT 、DNS_PORT、FAKE_IP 这三个变量要与 mihomo的配置里的一致#!/usr/sbin/nft -f flush ruleset define TPROXY_PORT = 7892 define DNS_PORT = 1053 define FAKE_IP = 198.18.0.0/16 table inet mihomo { # 同时劫持的IPV4 和 IPV6 的 DNS set dns_hijack_nfproto { type nf_proto flags interval elements = { ipv4, ipv6 } } # 代理 IPV4 和 IPV6 set proxy_nfproto { type nf_proto flags interval elements = { ipv4, ipv6 } } # 预留的 IPV4 地址 set reserved_ip { type ipv4_addr flags interval auto-merge elements = { 0.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0/4, 240.0.0.0/4 } } # 预留的 IPV6 地址 set reserved_ip6 { type ipv6_addr flags interval auto-merge elements = { ::, ::1, ::ffff:0.0.0.0/96, 64:ff9b::/96, 100::/64, 2001::/32, 2001:10::/28, 2001:20::/28, 2001:db8::/32, 2002::/16, fc00::/7, fe80::/10, ff00::/8 } } # 要代理端口范围 set proxy_dport { type inet_proto . inet_service flags interval auto-merge elements = { tcp . 0-65535, udp . 0-65535 } } # 走直连的局域网 IPV4 地址 set acl_ip { type ipv4_addr flags interval auto-merge elements = { 10.0.10.33, 10.0.10.34 } } # 走直连的局域网 IPV6 地址 set acl_ip6 { type ipv6_addr flags interval auto-merge } # 代理局域网设备的DNS 查询 chain block_dns_hijack { meta nfproto @dns_hijack_nfproto udp dport 53 ip saddr @acl_ip counter return meta nfproto @dns_hijack_nfproto udp dport 53 ip6 saddr @acl_ip6 counter return meta nfproto @dns_hijack_nfproto udp dport 53 counter redirect to :$DNS_PORT } # 走代理的局域网设备 chain block_tproxy { meta nfproto @proxy_nfproto meta l4proto { tcp, udp } ip saddr @acl_ip counter return meta nfproto @proxy_nfproto meta l4proto { tcp, udp } ip6 saddr @acl_ip6 counter return meta nfproto @proxy_nfproto meta l4proto { tcp, udp } meta mark set 1 tproxy to :$TPROXY_PORT counter accept } # 代理网关本机 DNS 查询(未启用-有问题) chain nat_output { type nat hook output priority -101; policy accept; #ip daddr != 127.0.0.1 meta nfproto @dns_hijack_nfproto udp dport 53 counter redirect to :$DNS_PORT } # 代理网关本机 chain router_reroute { ip daddr != 127.0.0.1 meta nfproto @proxy_nfproto meta l4proto { tcp, udp } meta mark set 1 counter accept } # 代理网关本机(未启用-有问题) chain mangle_output { type route hook output priority 100; policy accept; meta l4proto { tcp, udp } iifname "mihomo" counter accept fib daddr type { local, broadcast, anycast, multicast } counter return ip daddr @reserved_ip counter return ip6 daddr @reserved_ip6 counter return meta l4proto . th dport != @proxy_dport ip daddr != $FAKE_IP counter return meta nfproto ipv6 meta l4proto . th dport != @proxy_dport counter return udp dport 53 counter return meta mark 0x000000ff return #meta l4proto tcp jump router_reroute #meta l4proto udp jump router_reroute } chain dstnat { type nat hook prerouting priority dstnat + 1; policy accept; jump block_dns_hijack } chain mangle_prerouting { type filter hook prerouting priority mangle; policy accept; meta l4proto { tcp, udp } iifname "mihomo" counter accept fib daddr type { local, broadcast, anycast, multicast } counter return ct direction reply counter return ip daddr @reserved_ip counter return ip6 daddr @reserved_ip6 counter return meta l4proto . th dport != @proxy_dport ip daddr != $FAKE_IP counter return meta nfproto ipv6 meta l4proto . th dport != @proxy_dport counter return udp dport 53 counter return meta mark 0x000000ff return meta l4proto tcp jump block_tproxy meta l4proto udp jump block_tproxy } }编辑该文件后重启服务:systemctl restart nftables配置路由表添加路由规则ip rule add fwmark 1 lookup 100 ip route add local 0.0.0.0/0 dev lo table 100持久化路由配置编辑 /etc/network/interfacesnano /etc/network/interfaces在对应的 iface 配置下添加:auto lo iface lo inet loopback post-up ip rule add fwmark 1 lookup 100 post-up ip route add local 0.0.0.0/0 dev lo table 100 pre-down ip rule del fwmark 1 lookup 100 pre-down ip route del local 0.0.0.0/0 dev lo table 100 post-up:开机时执行pre-down:关机或网络重启前清理规则应用更改:systemctl restart networking这个脚本会在网络接口启动时自动运行。现在重启机器试试效果吧
2026年01月13日
126 阅读
0 评论
0 点赞
2026-01-13
frps 更新后无法读取 自定义配置文件
测试版本 : ghcr.io/fatedier/frps:v0.61.0今天收到了腾讯轻量云服务器的到期提醒邮件, 看了一下续费价格 50元/月, 这价格还是算了吧, 就去买了阿里云的 99 元/年 的 esc 服务器, 2核2GiB 3M带宽, 恩 真香服务器上我都说用docker 部署的, 本以为全部复制过去, 启动就行, 没想到 frp 用不了, 登上服务器查看了一下日志居然没有使用我自定义的配置文件上网搜了下, 原来是修改了 启动命令, 把。CMD 改成 ENTRYPOINT 命令了应该使用CMD来传递frp参数, 而不是放在ENTRYPOINT里, 方便用户覆盖 · Issue #42 · snowdreamtech/frp · GitHub再看看 官方仓库的 Dockerfile 文件, 启动命令被改成 ENTRYPOINT ["/usr/bin/frps"] , 如下:文件地址: frp/dockerfiles/Dockerfile-for-frps at dev · fatedier/frp · GitHub既然知道了问题所在, 那么在运行 docker run 命令的时候, 在最后加上 -c 配置文件 就能解决了, 如下:docker run <省略一部分参数> ghcr.io/fatedier/frps:v0.61.0 /usr/bin/frps -c 配置文件 完整的 docker-compose.yaml 命令services: frps: image: ghcr.io/fatedier/frps:v0.61.0 container_name: frps restart: always entrypoint: - /usr/bin/frps command: ["-c", "/etc/frp/frps.toml"] ports: - 8848:8848 - 17000:17000 - 10080:10080 - 17500:17500 - 10020-10030:10020-10030 volumes: - $PWD/frps.toml:/etc/frp/frps.toml
2026年01月13日
2 阅读
0 评论
0 点赞
2026-01-13
在mac上如何优雅的获取二维码里的内容
MAC 本身不能直接识别二维码, 需要通过一款叫做 ZBar 的软件来识别ZBar 是一款开源软件套件,用于从视频流、图像文件和原始强度传感器等各种来源读取条形码。它支持许多流行的符号(条形码类型),包括 EAN-13/UPC-A、UPC-E、EAN-8、Code 128、Code 39、Interleaved 2 of 5 和 QR Code。安装 ZBar官方下载地址:ZBar bar code reader - DownloadMac 用户可以用下面的命令来安装:brew install zbarzbar 的使用命令非常简单, 只需要执行如下命令就行了zbaring "图片路径"执行结果如下:QR-Code: 后面的就是二维码的内容了用是能用, 就是不太方便, 可以借助MAC 系统自带的 一款软件来实现自动化操作了自动操作.app打开 自动操作 app打开后选择 快速操作 点击选取后进入如下页面, 配置如下:一些参数的解释工作流程收到当前: 表示只在图片文件上起作用位于: 表示只在 访达 app 里显示此操作添加shell执行步骤在 资源库 -> 实用工具 -> 运行Shell脚本 拖到操作区域, 如下参数如下设置shell: /bin/bash传递输入: 作为自变量执行内容: # /opt/homebrew/Cellar/zbar/0.23.93/bin/zbarimg: zbarimg 的全路径, 获取方法在最后的补充说明里 # $@: 获取上面图像文件的全路径 /opt/homebrew/Cellar/zbar/0.23.93/bin/zbarimg "$@"2. 把识别结果自动复制到剪切板里3. 添加一个变量用来接收识别结果4. 在通知栏显示识别结果5. 保存脚本现在可以关掉软件了检验效果找一张二维码图片, 右键识别结果就会自动复制到剪切板里和在通知栏显示拉补充内容获取 zbaring 的全路径brew info zbar/opt/homebrew/Cellar/zbar/0.23.93 就是文件就是在该路径下了
2026年01月13日
22 阅读
0 评论
0 点赞
2026-01-13
移动光猫获取超级管理员密码
测试光猫型号: HG51e光猫ip地址: 192.168.1.1注意: 每次重启光猫后管理员密码都会变一、开启telnet用光猫背后的用户密码登陆进后台, 登陆成功后, 访问此连接开启 telnet: 192.168.1.1/webcmcc/telnet.html二、用 telnet 登录进路由器后台Mac 电脑可以执行 brew install telnet 安装 telnet 192.168.1.1用户名和密码是路由器后面的默认账号输入以下命令查看管理员密码grep 'aucTeleAccountPassword' /config/work/lastgood.xml如下图所示, Tc*HhD5$ 就是密码 管理员账号为: CMCCAdmin 拿到刚刚的用户名进入页面进行登录测试, 成功进入后台
2026年01月13日
23 阅读
0 评论
0 点赞
2025-12-27
如何在 Unraid 中根据不同场景选择最佳文件系统
对于家庭服务器和存储系统来说,文件系统不仅仅是存储数据的格式,它决定了你数据的安全性、读写性能以及未来的扩展难度。这也是一篇关于 “如何在 Unraid 中根据不同场景选择最佳文件系统” 的工程指南。1. 核心概念与背景在深入对比之前,我们需要明确几个在 Unraid 环境下的关键概念。Unraid 阵列 (Array):Unraid 的核心机制。特点是硬盘独立工作,校验盘提供冗余。如果两个硬盘同时坏掉(且只有一个校验盘),你只丢失这两个盘的数据,其他盘不受影响。缓存池 (Pool):通常由 SSD 或 NVMe 组成,用于跑 Docker 容器、虚拟机 (VM) 或作为写入缓存。这里通常需要更高的 I/O 性能和数据保护。静默数据损坏 (Bit Rot):数据在磁盘上由于物理磁性衰减导致变成了乱码。传统的 XFS/ext4 无法自动发现这一点,而 ZFS/Btrfs 可以。2. 选手入场:四大文件系统深度解析XFS:稳如老狗的阵列之王是什么:一个高性能的 64 位日志文件系统,由 SGI 开发,也是 RHEL (Red Hat Enterprise Linux) 的默认文件系统。干啥用:擅长处理大文件(如电影、ISO 镜像),极其稳定。Unraid 中的地位:主阵列(Array)的首选。为什么要用:稳定性:经过了数十年的企业级验证。恢复性:在 Unraid 阵列机制下,XFS 的单盘独立性极佳。如果文件系统损坏,xfs_repair 工具通常能找回绝大多数数据。低开销:不需要大量的 CPU 和 RAM 资源。ZFS:现代文件系统的终极形态是什么:集卷管理器和文件系统于一身,具有写时复制(COW)特性。干啥用:数据完整性校验、快照(Snapshot)、透明压缩、内存缓存(ARC)。Unraid 中的地位:缓存池(Pool)的最佳选择,也是“数据强迫症”患者的阵列选择。为什么要用:防腐烂:自动检测并修复(在有冗余的情况下)数据静默损坏。快照:配置好后,如果中了勒索病毒,或者误删了文件,可以一秒回滚到之前的状态。代价:它是个“内存吞噬者”,建议每 1TB 存储配 1GB ECC 内存(虽然非 ECC 也能用,但在 Unraid 上通常建议 16GB 起步)。Btrfs:灵活的中间派是什么:Linux 的原生 COW 文件系统,旨在替代 ext4 并提供类似 ZFS 的功能。干啥用:支持快照、软 RAID(Unraid 早期依靠它做缓存池的 RAID 1)。Unraid 中的地位:曾经的缓存池霸主,现在逐渐被 ZFS 取代。为什么要用:灵活性:它比 ZFS 轻量,支持不同大小的硬盘组 RAID 1。Docker 友好:Unraid 的 Docker 镜像文件通常默认为 Btrfs(以此利用其“写时复制”特性来节省空间)。缺点:在 RAID 5/6 模式下历史上存在稳定性问题(Write Hole),虽然在 Unraid 的 RAID 1 模式下很稳定,但名声受损。ext4:传统的守旧派是什么:Linux 系统中最通用的文件系统。Unraid 中的地位:由于 XFS 的存在,ext4 在 Unraid 中稍显尴尬。结论:在 Unraid 环境下,相对于 XFS,它在处理超大文件和极其断电恢复上的优势不明显。除非你有特定的 Linux 兼容性需求(比如拔下硬盘插到老旧的 Linux 机器上读取),否则不推荐在 Unraid 中作为首选。3. 工程师的决策框架:我该选哪个?不要试图用一种格式通吃所有磁盘。Unraid 的魅力在于混合搭配。以下是基于实际应用场景的推荐配置:场景 A:数据盘/主阵列 (The Array)推荐:XFS (加密版可选 XFS - Encrypted)理由:Unraid 的主阵列由机械硬盘组成,主要存储媒体文件(电影、剧集、备份)。这些数据通常很大,且一次写入多次读取。逻辑:如果使用 ZFS 放在主阵列单盘中,虽然获得了数据校验,但失去了 ZFS 最核心的“多盘条带化性能”优势,且增加了内存负担。XFS 在这里是性能与资源消耗的最佳平衡点。场景 B:缓存池/应用盘 (Cache/App Pool)推荐:ZFS (组建 Mirror/RAID 1)理由:这里存放着你的 Docker 容器(Plex, HomeAssistant)和虚拟机。这些应用会频繁产生小文件读写。逻辑:快照救命:如果你的 HomeAssistant 配置搞崩了,或者 Nextcloud 数据库坏了,ZFS 快照可以瞬间恢复。压缩:开启 ZFS 的 LZ4 压缩,可以显著节省 SSD 空间并提高文本类数据的读取速度。性能:ZFS 的 ARC (一级缓存) 会利用你的空闲内存加速读取。场景 C:只有一块 SSD 做缓存推荐:XFS 或 Btrfs理由:单盘 ZFS 虽然可用,但无法利用 ZFS 的“自我修复”功能(因为它需要另一份数据副本),且内存开销依旧存在。如果内存紧张,XFS 最稳;如果需要快照功能,Btrfs 是个轻量级的妥协。4. 实战操作:如何更改文件系统注意:更改文件系统意味着必须格式化硬盘,数据会全部丢失。请务必先将数据移出该硬盘。操作步骤:停止阵列:在 Unraid 界面 Main 选项卡底部,点击 Stop。选择磁盘:点击你想要更改格式的磁盘名称(例如 Disk 1 或 Cache)。更改格式:找到 File System type 选项。下拉选择目标格式(例如 XFS 或 ZFS)。点击 Apply。格式化:回到 Main 界面。你会看到该磁盘显示 "Unmountable: Unsupported partition layout"。在页面下方勾选 Format 旁边的确认框,然后点击 Format 按钮。此处想象一个截图:Unraid 界面底部,红色的 Format 按钮旁边有一个复选框,提示数据将被清除。启动阵列:格式化完成后,该磁盘即可挂载,点击 Start 启动阵列。5. 总结作为工程师,我们追求的是 "Right Tool for the Right Job"(工具适配场景)。磁盘位置推荐格式核心理由主阵列 (HDD)XFS极其稳定,大文件性能好,资源占用极低。缓存池 (SSD/NVMe)ZFS支持快照(防手残),支持压缩,数据完整性高。老旧/小内存机器XFS无论在哪都选 XFS,别让文件系统拖慢系统。一句话建议:如果你不想折腾,主阵列无脑选 XFS,缓存池由两块 SSD 组成 ZFS Mirror。 这是目前 Unraid 6.12+ 版本中最稳健、最符合现代数据安全标准的“黄金组合”。
2025年12月27日
30 阅读
0 评论
0 点赞
1
2