梯子

NAS 和群晖怎么走梯子:Docker 拉镜像、下载工具、套件更新分别设置

群晖、威联通或自组 NAS 上 docker pull 超时、GitHub Release 下不动、第三方套件源更新失败?本文对比旁路由整机代理、指向局域网代理、容器内运行 Mihomo 三种做法,讲清 Docker 守护进程、下载工具和套件更新各自怎么配,以及为什么 BT / PT 要保持直连。

简短回答

最省事的是让 NAS 只把需要出海的服务指向局域网里已开启“允许局域网连接”的代理(或旁路由),Docker 守护进程单独配置代理,BT / PT 下载保持直连,订阅链接不要写进公开的配置文件。

最后更新:作者:梯子Z编辑部3 分钟阅读首发 2026年10月4日

快速步骤 · 6 步

  1. 01
    准备一个局域网代理

    在常开的电脑、软路由或旁路由上运行代理客户端,开启允许局域网连接,记下该设备的局域网 IP 和 HTTP / 混合端口。

  2. 02
    配置 NAS 系统代理

    在 NAS 系统的网络设置中填写代理服务器地址,供系统更新和套件检查使用,具体选项位置以所用系统版本为准。

  3. 03
    单独配置 Docker 守护进程

    拉镜像由 Docker 守护进程执行,需要为守护进程设置 HTTPS_PROXY 与 NO_PROXY,并重启 Docker 服务。

  4. 04
    给需要出海的容器加环境变量

    在 compose 文件的 environment 中写入代理地址和 NO_PROXY,不需要代理的容器不加。

  5. 05
    让 BT / PT 保持直连

    下载器不设置代理;若用旁路由整机代理,把 NAS 的下载流量按来源 IP 或端口设为直连。

  6. 06
    验证并收紧权限

    拉取一个镜像、下载一个 Release 文件确认生效,再检查代理端口没有暴露到公网、订阅链接没有写进共享目录。

NAS 哪些流量需要走梯子

NAS 上真正需要出海的流量很集中:Docker Hub 等镜像仓库的 docker pull、GitHub Release 里的程序包、托管在海外的第三方套件源,以及部分应用的元数据刮削。它们在国内直连时常见超时或只有几十 KB/s。最稳妥的思路是只让这几类流量走代理,其余全部直连:NAS 通常 7×24 小时在线,整机全局代理既浪费机场流量,也会拖慢局域网和远程访问。下面先选接入方式,再按 Docker、下载工具、套件更新分别配置。

三种接入方式怎么选

方式做法优点缺点
旁路由整机代理把 NAS 的网关指向旁路由NAS 上零配置,容器也自动生效要额外设置 BT / PT 直连,否则流量全进机场
指向局域网代理NAS 各服务填写 192.168.x.x:7890 这类地址按服务开关,最可控每个服务要单独配
容器里运行内核在 NAS 上跑 Mihomo 或 sing-box 容器不依赖其他设备常开要自己维护配置和订阅更新

家里已经有软路由的,直接参考 路由器梯子方案 和 OpenWrt 插件对比。没有的话,第二种最适合新手:在一台常开的电脑或路由上运行客户端,打开“允许局域网连接”类选项,记下它的局域网 IP 和端口(下文写作 192.168.1.10:7890,以实际为准)。

Docker:守护进程和容器分开配

拉镜像的是 Docker 守护进程,不读你在 SSH 终端里 export 的变量。标准 Linux 上用 systemd drop-in 为 dockerd 设置代理,完整命令见 程序员梯子 一文,这里不重复。群晖 Container Manager、威联通 Container Station 的守护进程启动方式与标准 Linux 不完全相同,修改方法以官方文档或所用版本的社区说明为准;嫌麻烦就用旁路由让 NAS 整机走代理,最省心。

容器内的应用(例如需要访问 GitHub API 的工具)要在 compose 文件里单独加环境变量:

services:
  app:
    image: example/app:latest
    environment:
      - HTTPS_PROXY=http://192.168.1.10:7890
      - HTTP_PROXY=http://192.168.1.10:7890
      - NO_PROXY=localhost,127.0.0.1,192.168.0.0/16

NO_PROXY 一定要包含局域网网段,否则容器之间、容器访问 NAS 自身服务也会被送去代理。改完守护进程配置后,执行一次 docker pull hello-world 验证:几秒内完成说明代理已生效;仍然超时,先在 NAS 上用 curl -x 指定同一个代理地址访问一次外网,区分是代理不通还是守护进程没读到配置。

在 NAS 上运行 Mihomo 容器

不想依赖其他设备时,可以在 NAS 上运行 Mihomo 内核:用 host 网络模式启动,把配置目录挂载进容器,配置里开启 allow-lan 并设置 authentication,其他容器和设备再指向 NAS 的 IP 与端口。注意一个“先有鸡还是先有蛋”的问题:拉取 Mihomo 镜像本身也要访问镜像仓库,第一次可以先借用局域网代理拉取,或在电脑上 docker save 导出后到 NAS 上 docker load 导入。

下载工具与套件更新

  • HTTP 下载:aria2 这类工具可以用 all-proxy 选项指定代理,适合下载 GitHub Release 等海外文件。
  • BT / PT:保持直连。BT 流量大且连接数多,走机场会迅速耗尽套餐;不少 PT 站点要求固定 IP 或明确禁止代理,很多机场的服务条款也不允许 BT 下载。旁路由方案下,用 Mihomo 的 SRC-IP-CIDR 规则把下载器所在 IP 设为直连,镜像拉取改用局域网代理。
  • 系统与套件更新:在 NAS 系统网络设置的代理服务器选项中填入局域网代理,官方更新和多数套件通常直连即可,海外托管的第三方套件源才需要它。

订阅链接与端口安全

检查项做法
订阅链接只放在仅管理员可读的目录,不写进会同步到网盘或 GitHub 的 compose 文件
代理端口不做公网端口转发,开启 authentication
控制面板external-controller 设置 secret,只监听局域网
设备数NAS 也算一台在线设备

订阅泄露后的处理见 订阅链接安全。设备数方面,按本站数据二猫云、宇宙云、微风网络都标注不限同时在线设备,NAS 加进来不必担心超出限制。

常见问题

QNAS 上能直接装 Clash Verge 这类桌面客户端吗?

多数 NAS 系统没有图形桌面,桌面客户端不适用。常见做法是在容器里运行 Mihomo、sing-box 这类命令行内核,或者干脆让 NAS 使用局域网里另一台设备提供的代理。

Q局域网代理地址填了,NAS 还是连不上?

依次检查三点:代理设备上是否开启了允许局域网连接;该设备的系统防火墙是否放行了代理端口;填写的是代理设备的局域网 IP,而不是 127.0.0.1。

Q容器里的程序为什么不走 NAS 上设置的代理?

容器有自己的网络环境,通常不会继承 NAS 系统层面的代理设置,需要在容器的环境变量里单独写 HTTPS_PROXY,而且地址要写容器能访问到的局域网 IP。

QNAS 走梯子会用掉很多机场流量吗?

只让镜像拉取、Release 下载和更新检查走代理时,流量通常不大;真正吃流量的是 BT / PT 和大文件同步,这些应保持直连。

Q用旁路由整机代理后,NAS 的远程访问还能用吗?

一般可以,但要确认 DDNS、内网穿透等服务的域名与回程流量走直连,否则外部访问可能变慢或失败。改完后用手机流量实际访问一次验证。

Esc

热门搜索

    ↑↓ 选择 · Enter 打开 · Esc 关闭打开搜索页