终极教程:在NAS上部署智能网络网关,实现全家设备免配置科学上网 | Docker Clash 透明代理

手把手教你使用Docker Compose在NAS上部署Mihomo(Clash)和Metacubexd面板,打造家庭智能网络中枢。实现一次部署,手机、电脑、电视、智能家居等全屋设备自动加速访问海外资源,国内网站直连不受影响。

本文介绍如何在 NAS 部署智能网络调度服务,实现家庭设备统一海外资源访问优化,彻底解决 Docker 镜像拉取缓慢、开发资源下载失败等痛点。

📌 一、方案价值:为什么需要这个?

 
🔥 解决的四大核心痛点
 
场景
困扰现状
方案效果
🐳 Docker 镜像拉取
官方源连接超时、速度极慢(几KB/s)
⚡ 流畅获取海外镜像,30秒完成
💻 开发资源下载
GitHub/NPM/PyPI 频繁断连
✅ 提升下载成功率,稳定高效
🏠 智能家居设备
部分海外服务无法连接
🌐 统一网络出口管理
📱 多设备配置繁琐
每台设备单独设置代理
🎯 NAS 一次部署,全屋零配置共享

✨ 架构三大优势

  • 🔄 一次部署,全家设备零配置接入 — 手机/电脑/电视自动受益
  • 🧠 智能分流,国内网站不受影响 — 百度、淘宝、视频平台直连极速
  • 🎛️ Web 面板可视化,操作门槛低 — 节点切换、状态监控一目了然

🛠️ 二、Docker Compose 一键部署

飞牛NAS图形化部署:一共两个容器

6986a2fe580d16986a2fe5605d

通用命令行部署:

目录准备

mkdir -p /vol1/1000/docker/flclash/config
cd /vol1/1000/docker/flclash

部署文件 docker-compose.yml

version: '3.8'  # 明确指定 Compose 版本,提升兼容性

services:
  clash:
    image: docker.io/metacubex/mihomo:latest  # mihomo 是 Clash 的社区维护版本,性能更好
    container_name: clash
    restart: unless-stopped
    network_mode: host  # 主机网络,确保 TUN 设备和端口监听正常
    privileged: true    # 特权模式:用于创建 TUN 设备实现透明代理
    cap_add:
      - NET_ADMIN       # 网络管理权限(必需,修复原配置注释缺失问题)
      - SYS_ADMIN       # 系统管理权限(必需)
    devices:
      - /dev/net/tun:/dev/net/tun  # 映射 TUN 设备,透明代理必需
    volumes:
      - /vol1/1000/docker/flclash/config:/root/.config/clash  # 挂载配置目录
    working_dir: /root/.config/clash
    environment:
      - TZ=Asia/Shanghai  # 配置时区,避免日志时间错乱
    entrypoint: ["/mihomo"]
    command: ["-f", "/root/.config/clash/config.yaml", "-d", "/root/.config/clash"]  # 启动命令:指定使用 mihomo 核心,加载 config.yaml 配置文件

  dashboard:
    image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/metacubex/metacubexd:v1.237.0  # 国内加速镜像源
    container_name: clash-dashboard
    restart: unless-stopped
    network_mode: host  # 改为主机网络,避免桥接网络的通信问题
    # 注释掉桥接端口映射,改用主机网络后直接访问 80 端口
    # ports:
    #   - "9099:80"
    environment:
      - CLASH_API_URL=http://192.168.31.197:9095  # 指向 Clash 核心的 API 地址
      - TZ=Asia/Shanghai  # 补充时区配置

核心配置文件 config.yaml

将您的网络服务配置导出保存为 config.yaml

6986a2fe583af 

启动验证 🎉

# 启动服务
docker compose up -d

🎛️ 三、Metacubexd 面板可视化操作

浏览器访问:http://NAS_IP:9099,添加配置clash地址,点击添加进入首页。

6986a2fe5858f6986a2fe8e09b

1️⃣ 连接最优节点

操作流程:

进入 「代理」 页面 📊点击 ⚡ 图标测试全部节点延迟选择 绿色数字(低延迟) 的节点6986a2fe5732b

2️⃣ 核心参数设置

进入 「配置」 页面:

配置项
设置值
说明
✅ 允许局域网访问
开启
🔑 关键!允许其他设备连接
🔄 运行模式
Rule
智能分流,国内直连
🔌 HTTP 端口
7890
电脑/手机通用代理
🧦 SOCKS 端口
7891
部分应用/终端需要

6986a2fe619b1

三种模式对比

模式
工作原理
适用场景
推荐指数
Rule
按规则智能分流,国内直连、海外优化
🏠 日常家用
⭐⭐⭐⭐⭐
Global
全部流量转发
🔧 调试测试
⭐⭐☆☆☆
Direct
全部直连
🚫 关闭服务
⭐☆☆☆☆

Rule 模式智能分流示例 🎯

┌─────────────────┐     ┌───────────────┐     ┌─────────────────┐
│  访问 baidu.com │ ──→ │ 识别为国内域名  │ ──→│   直连(5ms)    │
└─────────────────┘     └───────────────┘     └─────────────────┘

┌─────────────────┐     ┌──────────────┐     ┌─────────────────┐
│ 访问 github.com │ ──→ │ 识别为海外域名 │ ──→│ 经优化线路(80ms)│
└─────────────────┘     └──────────────┘     └─────────────────┘

┌─────────────────┐     ┌──────────────┐     ┌─────────────────┐
│ 访问 docker.io  │ ──→ │ 匹配镜像源规则 │ ──→│  自动加速拉取    │
└─────────────────┘     └──────────────┘     └─────────────────┘

✅ Rule 模式三大优势

🚀 国内体验无损 — 视频、购物、网银网站极速访问

🌍 海外资源流畅 — 开发工具、Docker 镜像、学术资料畅通

💰 带宽利用高效 — 仅必要流量走优化线路,稳定性更高

✅ 四、验证节点以及规则配置是否成功

步骤1:端口检查

ss -tlnp | grep -E "7890|7891|9099"
# 应显示 0.0.0.0:7890 等端口处于 LISTEN 状态

步骤2:连通性测试

curl -x http://192.168.31.197:7890 -s http://httpbin.org/ip
# 测试服务可用性(返回应为海外节点IP)
curl -x http://192.168.31.197:7890 -s http://www.google.com/generate_204 -w "%{http_code}"
# 访问海外数据网站应返回204代码
curl -s http://httpbin.org/ip
# 对比测试:不走代理时返回本地IP

6986a2fe62324

代理网络实时拓扑图

6986a2fe5fee2

具体连接节点数据

6986a2fe60c20

📲 五、全屋设备配置指南

💻 【电脑端】Windows 系统设置

设置 → 网络和 Internet → 代理 → 手动设置代理

6986a2fe61cda

6986a2fe621dc

📱 【手机端】

设置 → WLAN → 长按已连接网络 → 修改网络 → 高级选项 → 代理 → 手动

6986a2fe5fbd7

🖥️ 【NAS 本机】

方案A:Docker Daemon 全局代理(推荐)

sudo nano /etc/docker/daemon.json

添加配置:

{
  "proxies": {
    "http-proxy": "http://192.168.31.197:7890",
    "https-proxy": "http://192.168.31.197:7890",
    "no-proxy": "localhost,127.0.0.1,.local,192.168.0.0/16,10.0.0.0/8"
  }
}

重启生效:

sudo systemctl restart docker

方案B:单个容器配置

在 docker-compose.yml 中添加环境变量:

services:
  app:
    environment:
      - HTTP_PROXY=http://192.168.31.197:7890
      - HTTPS_PROXY=http://192.168.31.197:7890
      - ALL_PROXY=socks5://192.168.31.197:7891
      - NO_PROXY=localhost,127.0.0.1

🌐 【路由器】(进阶·全屋无感知)

将路由器网关指向 NAS,实现所有设备自动受益:

OpenWrt 配置示例

方法1:DHCP 下发网关

网络 → 接口 → LAN → DHCP 服务器 → DHCP 选项
添加:3,192.168.31.197(网关)
     6,192.168.31.197(DNS)

方法2:透明转发规则

# SSH 登录路由器执行
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 7890
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 7890

💡 路由器方案优势:智能家居、电视、游戏机等无法设置代理的设备也能受益

🎉 六、总结:NAS 网络中枢的价值

通过本文方案,你的 NAS 将成为:

能力
效果
✅ Docker 镜像加速器
开发效率倍增,告别漫长等待
✅ 全屋网络管理中心
一次部署,手机/电脑/电视全受益
✅ 智能分流网关
海外流畅、国内极速,两不误
✅ 可视化运维平台
节点切换、状态监控,轻松上手

💬 一句话总结:让 NAS 成为家庭网络的智能中枢,从此告别资源下载卡顿!

⚖️ 合规提示:请确保网络服务来源合法合规,遵守当地法律法规。本文仅供技术学习交流,请在法律允许范围内使用。

 

觉得内容不错?我要

评论0
暂无评论,快来抢沙发吧~