Skip to content

🚀 使用 Docker Compose 部署 v2rayA

v2rayA 是一款功能强大、易于使用的开源网络代理工具,支持多种代理协议。它提供了友好的 Web 界面,让您能轻松管理代理设置,非常适合在 Linux 服务器、NAS 或软路由上部署。

📦 项目简介

v2rayA 致力于提供最简单的操作,满足绝大部分代理需求。以下是它的主要特点:

特性 说明
全局透明代理 为几乎所有应用程序提供代理服务,而不必考虑该应用程序是否支持
多协议支持 支持 V2Ray、SS、SSR、Trojan、Tuic 和 Juicity 等协议
跨平台 使用 Golang 和 Vue.js 编写,可跨平台运行,通过任意浏览器操作
分流策略 支持大陆白名单模式、GFWList 模式,以及自定义 RoutingA 路由规则

核心优势: - 简化操作:Web 客户端使部署在路由器或 NAS 上变得简单 - 外部访问:对于无图形界面的系统,可借助其他设备通过浏览器完成操作 - 隐私安全:所有用户数据保存在本地容器中,不会将任何用户数据保存在云端

⚙️ 部署前准备

  1. 环境要求

    • 已安装 DockerDocker Compose
    • 系统内存:建议 1GB 以上
    • 确保服务器的 2017 端口未被占用
  2. 环境检查 ```bash # 检查 Docker 版本 docker --version

    检查 Docker Compose 版本

    docker-compose --version ```

  3. 创建项目目录 bash mkdir -p /opt/docker/v2raya cd /opt/docker/v2raya

🛠️ 配置 Docker Compose

基于你提供的配置并参考最佳实践,创建 docker-compose.yml 文件:

services:
  v2raya:
    image: mzz2017/v2raya  # 使用官方镜像
    container_name: v2raya  # 容器名称,便于识别
    restart: always  # 容器退出后自动重启(支持开机自启)
    privileged: true  # 授予容器特权模式(需操作系统网络配置)
    network_mode: host  # 使用主机网络(避免端口映射冲突,直接使用主机端口)
    environment:
      - V2RAYA_LOG_FILE=/tmp/v2raya.log  # 日志文件路径
      - V2RAYA_V2RAY_BIN=/usr/local/bin/v2ray  # V2Ray 核心程序路径
      - V2RAYA_NFTABLES_SUPPORT=off  # 关闭 nftables 支持(兼容更多系统)
      - IPTABLES_MODE=legacy  # 使用传统 iptables 模式(避免新系统兼容问题)
    # 不推荐低权限运行(新手易出权限问题)
    # - PUID=1000  # 可选:低权限用户 ID,需提前创建用户
    # - PGID=1000  # 可选:低权限用户组 ID
    volumes:
      - /lib/modules:/lib/modules:ro  # 只读挂载系统内核模块(网络配置依赖)
      - /etc/resolv.conf:/etc/resolv.conf  # 挂载 DNS 配置(确保容器内 DNS 正常)
      - ./v2raya:/etc/v2raya  # 持久化配置数据(节点、规则等保存在本地)
      #- /home/dockge_stacks/v2raya:/etc/v2raya


#v2rayA 是 V2Ray 的一个 Web 客户端。
#默认端口:
#2017: v2rayA后端端口
#20170: SOCKS协议
#20171: HTTP协议
#20172: 带分流规则的HTTP协议
#其他端口:
#32345: tproxy,透明代理所需

#进容器,ping&curl 谷歌网站,看联网情况,我需要直连,特定的走代理。


关键配置说明

配置项 说明与建议
privileged: true 授予容器特权模式,这是实现全局透明代理的必要条件
network_mode: host 使用主机网络模式,可以简化网络配置并改善本地网络下的设备发现和传输性能
volumes ./v2raya:/etc/v2raya 用于持久化存储v2rayA的配置,确保数据在容器重启后不丢失
environment V2RAYA_NFTABLES_SUPPORT=offIPTABLES_MODE=legacy 是针对使用 iptables 而非 nftables 的系统设置

注意:如果您的宿主系统使用原生的 nftables,需要将 V2RAYA_NFTABLES_SUPPORT 设置为 on

🚀 启动与验证

  1. 启动服务 bash docker-compose up -d

  2. 检查服务状态 bash docker-compose ps # 或 docker ps | grep v2raya

  3. 查看实时日志 bash docker-compose logs -f v2raya

  4. 访问 Web 界面

    • 打开浏览器,访问 http://你的服务器IP:2017
    • 如果一切正常,你将看到 v2rayA 的 Web 管理界面

⚙️ 基础配置与使用

  1. 添加节点或订阅

    • 进入 Web 界面后,点击"创建"或"导入"
    • 粘贴单个节点链接订阅地址
    • 点击"更新"获取节点列表
  2. 配置代理设置 点击"设置"图标(⚙),建议如下配置:

    设置项 推荐值 说明
    透明代理/系统代理 启用:大陆白名单模式 决定何时使用代理
    实现方式 redirect 保留请求的源 IP
    规则端口的分流模式 大陆白名单模式 国内直连,国外走代理
    防止 DNS 污染 仅防止 DNS 劫持(快速) 或选择"转发"避免 DNS 泄漏
  3. 选择并连接节点

    • 在更新出来的节点列表中,选择要使用的节点
    • 点击"选择"然后点击"保存并应用"

🔒 维护与管理

  • 服务管理
  • 停止服务:docker-compose down
  • 重启服务:docker-compose restart
  • 查看状态:docker-compose ps

  • 版本更新bash # 进入 docker-compose.yml 所在目录 docker-compose down docker-compose pull # 拉取最新镜像 docker-compose up -d

  • 数据备份:定期备份 docker-compose.yml 文件以及 v2raya 目录,这里面包含了所有配置信息。

🐛 常见问题排查

问题现象 可能原因与解决方法
无法访问 Web 界面 检查防火墙/安全组是否放行了 2017 端口;确认容器是否正常运行:docker-compose ps
透明代理不工作 确认配置中设置了 privileged: truenetwork_mode: host
DNS 泄漏或污染 在设置中使用 DNS 请求转发,让 DNS 请求通过代理解析
节点连接失败 检查节点订阅地址是否有效;确认服务器网络连接正常

💡 网络模式选择:使用 host 网络模式可以避免桥接网络可能带来的复杂配置,特别适合在软路由或需要为局域网其他设备提供代理服务的场景。

现在你已经成功部署了 v2rayA,可以开始享受安全、便捷的网络代理服务了!