飞牛 NAS · Mihomo · Docker · 透明代理教程 · 刘小忙xiaomang

飞牛 NAS 用 Docker 部署 Mihomo,全家设备共用透明代理

这是一份面向普通用户的部署教程,目标很明确:把 Mihomo 跑在飞牛 NAS 里,让手机、电脑、平板、电视都能通过同一套透明代理稳定上网。 页面会先讲清楚这套方案是什么、适合谁、能解决什么,再进入部署、验收和避坑。

这套方案适合什么人

01
想把代理统一放在 NAS 上 不想每台设备单独装客户端、单独切节点、单独排问题。
02
想让家里设备尽量无感接入 手机、电脑、电视进同一个局域网后,能共用同一套代理能力。
03
希望后续维护成本低一些 订阅和 GEO 数据都能自动更新,不需要经常手工折腾。
04
希望配置清晰、可迁移、可备份 Docker 目录结构明确,迁移或重建时更容易恢复。
先讲清楚

飞牛 NAS、Mihomo、Docker、透明代理,这套教程到底在做什么

简单说,就是把 Mihomo 通过 Docker 部署到飞牛 NAS 上,再把 NAS 作为家庭网络里的透明代理网关使用。这样一来,不需要每台设备各自折腾,局域网里的设备都能共用同一套代理和分流能力。

这是什么

一套围绕飞牛 NAS + Mihomo + Docker 的教程页,目标是做出可长期运行的透明代理方案。

适合谁

适合想让全家设备共用代理、又不想让手机和电脑一台台单独配置的人。

为什么值得做

设备越多,这种集中式方案越省心。订阅可更新、GEO 可更新、迁移也更方便。

解决什么问题

它主要解决四件事:透明代理、DNS 防污染、订阅自动更新、GEO 数据自动更新,以及后续维护成本过高的问题。

网络路径怎么理解

主路由 → 飞牛 NAS 中运行的 Mihomo → 手机 / 电脑 / 平板 / 电视等局域网设备。理解这一点,后面的配置和验收就容易很多。

部署前准备

先做这 4 件事,再开始部署

这四项不是补充说明,而是前置条件。先准备到位,后面的部署过程会顺很多。

1. 先准备 4 个 GEO 文件

要做什么:提前把 `GeoSite.dat`、`GeoIP.dat`、`country-lite.mmdb`、`GeoLite2-ASN.mmdb` 放进 Mihomo 配置目录。为什么要做:首次启动时,NAS 往往还没连通代理,在线下载这些文件很容易失败。不做会怎样:常见结果是启动卡住、下载失败,或者日志里反复出现 `context deadline exceeded`。

2. 准备一个可用的订阅链接

要做什么:准备一个 Mihomo / Clash 能识别的订阅地址。为什么要做:节点来源不解决,后面的分组、规则和透明代理都没有实际意义。不做会怎样:容器即使能启动,面板里也没有可用节点,整个方案跑不起来。

3. 先确认 NAS 目录结构和挂载路径

要做什么:在飞牛 NAS 上先建好 Mihomo 目录,并确认 `docker-compose.yml` 中挂载路径和真实目录一致。为什么要做:Mihomo 的配置、providers 和 GEO 文件都依赖这个目录。不做会怎样:容器可能能启动,但配置不会按预期生效,排查起来最耗时间。

4. 提前记住你自己的 NAS IP

要做什么:确认飞牛 NAS 当前的局域网 IP。为什么要做:后面配置控制面板、局域网接入和验收都要用到这个地址。不做会怎样:很容易把文档里的示例 IP 当成自己的地址,导致面板打不开、设备接入失败。

避坑重点

最容易翻车的 3 个坑

新手最常见的问题,其实集中在少数几项。先把这些看明白,能少走很多弯路。

坑 1:GEO 文件没提前放

这是首启失败的高频原因。很多人以为 Mihomo 会自动拉好所有数据,但实际在代理没打通之前,NAS 往往拿不到这些文件。

坑 2:订阅链接、NAS IP 没替换

`proxy-providers.lazydoge.url` 不改,节点就不会进来;文档里的示例 NAS IP 不改,面板地址和接入配置也都会错。

坑 3:挂载路径和实际目录不一致

这是最隐蔽的一类问题。容器可能显示正常,但读到的不是你以为的那份配置,后面所有现象都会变得很怪。

目录结构

建议按这个目录放文件

这样摆的好处是清晰、好排查、方便迁移。后面无论是更新订阅还是备份配置,都会更顺手。

/vol1/1000/Docker/mihomo/
├── config.yaml
├── docker-compose.yml
├── GeoSite.dat
├── GeoIP.dat
├── country-lite.mmdb
├── GeoLite2-ASN.mmdb
├── cache.db
├── providers/
│   └── lazydoge.yaml
└── backup/
正式部署

飞牛 NAS 上用 Docker 部署 Mihomo:3 步走完

这部分按真实执行顺序来写。你不需要先理解所有参数,先把它正确跑起来,再回头细看配置会更轻松。

01
先修改 `config.yaml`,把示例配置换成你自己的环境

打开仓库里的 `config.yaml`,优先处理和你环境直接相关的内容,不需要一上来改全部细节。

  • 把 `proxy-providers.lazydoge.url` 改成你自己的真实订阅链接。
  • 把文档中的示例 NAS IP 改成你自己的局域网地址。
  • 如果你知道自己要什么节点分组,再改代理组名称和筛选规则;如果暂时不确定,先用默认结构也可以。
02
把配置文件和 GEO 文件上传到飞牛 NAS 对应目录

这一阶段的目标是让 Mihomo 的运行目录完整可用,而不是只把 `docker-compose.yml` 丢进去就开跑。

  • 至少放入 `config.yaml`、`docker-compose.yml` 和 4 个 GEO 文件。
  • `providers/` 目录建议提前建好,后续订阅更新文件会放在这里。
  • `providers/lazydoge.yaml` 和 `cache.db` 会在运行后自动生成,所以第一次没有是正常的。
03
在飞牛 NAS 的 Docker 界面里创建 Compose 项目并启动

前两步准备好之后,再进入飞牛 NAS 的 Docker 管理界面创建项目。这里不要跳步骤,先确认路径,再点击部署。

  • 进入 `Compose -> 新增项目`。
  • 项目名称可以写 `mihomo`。
  • 项目路径选择你的 Mihomo 配置目录。
  • 如果系统检测到已有 `docker-compose.yml`,直接使用现有配置创建项目。
  • 部署完成后,先看容器是否持续运行,再进入后面的验收步骤。
Compose 参考

如果你想核对 Docker 部署配置,可以对照这里

这个文件本身不复杂,重点还是三个:`host` 网络模式、`NET_ADMIN` 权限和正确的挂载路径。

services:
  mihomo:
    image: metacubex/mihomo:latest
    container_name: mihomo
    restart: unless-stopped
    network_mode: host
    privileged: true
    cap_add:
      - NET_ADMIN
    volumes:
      - /vol1/1000/Docker/mihomo:/root/.config/mihomo
验收清单

部署成功,不等于容器只是绿色的

真正的验收要按清单做完。容器能跑只是开始,后面还要确认面板、出口 IP、日志和规则命中都正常。

验收 checklist
  • 容器 `mihomo` 持续运行,没有反复重启。
  • 控制面板 `http://你的NASIP:9090` 能正常打开。
  • 出口 IP 已经变成当前代理节点的出口,而不是你本地宽带 IP。
  • 日志里没有持续的 GEO 下载失败或 DNS 解析报错。
  • 国内流量走 `DIRECT`,OpenAI / Telegram 等规则能命中代理分组。
面板怎么连

可以直接打开 `http://你的NASIP:9090`。如果你更习惯图形化界面,也可以使用 metacubexd,把 API Base URL 填成你的 NAS 控制器地址。

curl -I https://www.google.com
curl ifconfig.me
docker logs mihomo
怎么判断结果对不对
  • `curl -I` 能正常返回响应头,说明外网连通没问题。
  • `curl ifconfig.me` 返回的应是当前代理节点的出口 IP。
  • `docker logs mihomo` 里要重点看规则命中、GEO 更新和 DNS 解析是否正常。
  • 如果容器是绿色的,但以上几项不对,就不能算真正部署成功。
关键配置

这些配置值得知道,但不用一开始就全啃完

前面先让你把它跑起来,这里再解释几个真正影响稳定性的关键配置,方便你后续自己调整。

`tun.enable: true`

这是透明代理能成立的基础。没有它,NAS 就更像一个普通代理客户端,而不是局域网里的代理网关。

`dns.enhanced-mode: fake-ip`

这项主要用于更稳定地做 DNS 分流,减少污染和错误命中,也是这套方案稳定运行的重要部分。

`proxy-providers`

订阅节点通过 provider 自动拉取,而不是手写在主配置里。这样后续更新节点时更省事,也更适合长期使用。

`geo-auto-update: true`

它负责后续自动更新 GEO 数据,但第一次启动依然建议你先把 GEO 文件放到本地,别把首启成功率赌给网络环境。

`proxy-server-nameserver`

这项建议不要删。它会更稳定地解析代理节点域名,很多启动慢、链路建立失败的问题,都和这里有关。

稳定推荐

如果你还没选好订阅来源,这个更省心一些

推荐它的原因很简单:稳定、少折腾、长期使用更省心。对新手来说,能少踩很多没必要的坑。

推荐理由

如果你更在意稳定性和后续维护成本,而不是频繁折腾节点来源,这个会更适合长期使用。想直接用更省心的方案,可以点这里的 稳定订阅入口

更自然的使用建议
额外赠送

送你一个额外资源

如果你顺手也想收下,就放在这里,直接点开即可。

2026新版Seedance2.0,保姆级教程5套

这份资料我也一并放上了,点击领取:2026新版Seedance2.0,保姆级教程5套