Skip to content

公告!

近期接到群友反馈,发现有其它网站复制抄袭本站文案内容,请大家注意甄别,避免上当受骗。

使用 Docker 搭建透明代理

透明代理可以仅给真正有需要的应用提供代理服务,相比旁路由虽然略显麻烦,但是网络结构清晰简单,能避免很多麻烦,比如就不会出现 PT 流量走代理导致被识别为盒子的问题。可以说,透明代理是 NAS 应用访问外网的最佳实现方式。

v2raya 和 mihomo 的 compose 文件都可以从 Docker Compose 模板 中获取。

V2rayA

提示

  • v2rayA 是一个支持全局透明代理的 V2Ray 客户端,同时兼容 SS、SSR、Trojan(trojan-go)、Tuic 与 Juicity协议。
  • v2rayA 致力于提供最简单的操作,满足绝大部分需求。
  • 得益于 Web 客户端的优势,你不仅可以将其用于本地计算机,还可以轻松地将它部署在路由器或 NAS 上。
yml
version: '3.8' 
services:
  v2raya:
    image: mzz2017/v2raya
    restart: always
    container_name: v2raya
    network_mode: host 
    privileged: true 
    cap_add:  
      - NET_ADMIN
      - SYS_MODULE
    ports:
      - "2017:2017"
      - "7890:7890"
    volumes:
      - ./etc:/etc/v2raya
  • V2rayA 的 WebUI 端口:2017
  • HTTP/HTTPS 协议:20171
  • SOCKS 协议:20170

如有使用疑问,可以查阅 官方文档

Mihomo(Clash Meta)

提示

Mihomo 原名 Clash Meta,是基于广受欢迎的开源网络代理工具 Clash 开发的增强网络代理工具。它不仅继承了 Clash 的核心功能,还增加了一些独特的特性,如支持更多的出站传输协议和复杂的规则控制等。

下面的配置文件包含了两个 docker,其中 mihomo 为核心,metacubexd 为控制 UI。

yml
services:
  mihomo:
    container_name: mihomo
    image: metacubex/mihomo
    restart: always
    pid: host
    ipc: host
    network_mode: host
    cap_add:
      - ALL
    security_opt:
      - apparmor=unconfined
    volumes:
      - ./:/root/.config/mihomo
      # 共享host的时间环境
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
  
  metacubexd:
    container_name: metacubexd
    image: ghcr.io/metacubex/metacubexd
    restart: always
    network_mode: bridge
    ports:
      - '9097:80'
    volumes:
      - ./metacubexd:/config/caddy
      # 共享host的时间环境
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro

除此之外,还需要在 compose 配置文件的同级文件夹中放入 clash 的 config.yaml 配置文件(如果你使用机场,可以从机场后台获取),以及用来识别 ip 地址的 geoip.datgeosite.dat 文件。

geoip.dat,geosite.dat 文件可以到 这里下载,也可以从 Docker Compose 模板 中获取。

  • metacubexd 的 WebUI 端口:9097
  • HTTP/HTTPS 协议:7890
  • SOCKS 协议:7891

Compose 安装成功之后,打开 metacubexd 的 WebUI 需要输入 mihomo 的地址,具体为 http://NAS IP:9090

如何使用?

如果有其它 Docker 应用需要使用上述代理服务,以 Metube 这个视频下载应用为例,可以直接在 Compose 中添加如下配置(environment 部分):

yml
name: metube
services:
  metube:
    image: alexta69/metube:latest
    container_name: metube
    restart: always
    ports:
      - 8081:8081
    volumes:
      - /vol2/1000/downloads:/downloads
    environment:
      # 192.168.2.2 为我的 NAS IP
      - HTTP_PROXY=http://192.168.2.2:7890
      - HTTPS_PROXY=socks5://192.168.2.2:7891

也有的应用支持在自己的 UI 中直接设置代理,比如下面是 Cloud Saver 的代理设置页面:

如果想要在 Window 中使用,可以在 Windows 中搜索代理,以 Mihomo 为例设置如下: