🚀 使用 Docker Compose 部署 v2rayA
v2rayA 是一款功能强大、易于使用的开源网络代理工具,支持多种代理协议。它提供了友好的 Web 界面,让您能轻松管理代理设置,非常适合在 Linux 服务器、NAS 或软路由上部署。
📦 项目简介
v2rayA 致力于提供最简单的操作,满足绝大部分代理需求。以下是它的主要特点:
| 特性 | 说明 |
|---|---|
| 全局透明代理 | 为几乎所有应用程序提供代理服务,而不必考虑该应用程序是否支持 |
| 多协议支持 | 支持 V2Ray、SS、SSR、Trojan、Tuic 和 Juicity 等协议 |
| 跨平台 | 使用 Golang 和 Vue.js 编写,可跨平台运行,通过任意浏览器操作 |
| 分流策略 | 支持大陆白名单模式、GFWList 模式,以及自定义 RoutingA 路由规则 |
核心优势: - 简化操作:Web 客户端使部署在路由器或 NAS 上变得简单 - 外部访问:对于无图形界面的系统,可借助其他设备通过浏览器完成操作 - 隐私安全:所有用户数据保存在本地容器中,不会将任何用户数据保存在云端
⚙️ 部署前准备
-
环境要求
- 已安装 Docker 和 Docker Compose
- 系统内存:建议 1GB 以上
- 确保服务器的 2017 端口未被占用
-
环境检查 ```bash # 检查 Docker 版本 docker --version
检查 Docker Compose 版本
docker-compose --version ```
-
创建项目目录
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=off 和 IPTABLES_MODE=legacy 是针对使用 iptables 而非 nftables 的系统设置 |
注意:如果您的宿主系统使用原生的 nftables,需要将
V2RAYA_NFTABLES_SUPPORT设置为on。
🚀 启动与验证
-
启动服务
bash docker-compose up -d -
检查服务状态
bash docker-compose ps # 或 docker ps | grep v2raya -
查看实时日志
bash docker-compose logs -f v2raya -
访问 Web 界面
- 打开浏览器,访问
http://你的服务器IP:2017 - 如果一切正常,你将看到 v2rayA 的 Web 管理界面
- 打开浏览器,访问
⚙️ 基础配置与使用
-
添加节点或订阅
- 进入 Web 界面后,点击"创建"或"导入"
- 粘贴单个节点链接或订阅地址
- 点击"更新"获取节点列表
-
配置代理设置 点击"设置"图标(⚙),建议如下配置:
设置项 推荐值 说明 透明代理/系统代理 启用:大陆白名单模式 决定何时使用代理 实现方式 redirect 保留请求的源 IP 规则端口的分流模式 大陆白名单模式 国内直连,国外走代理 防止 DNS 污染 仅防止 DNS 劫持(快速) 或选择"转发"避免 DNS 泄漏 -
选择并连接节点
- 在更新出来的节点列表中,选择要使用的节点
- 点击"选择"然后点击"保存并应用"
🔒 维护与管理
- 服务管理:
- 停止服务:
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: true 和 network_mode: host |
| DNS 泄漏或污染 | 在设置中使用 DNS 请求转发,让 DNS 请求通过代理解析 |
| 节点连接失败 | 检查节点订阅地址是否有效;确认服务器网络连接正常 |
💡 网络模式选择:使用 host 网络模式可以避免桥接网络可能带来的复杂配置,特别适合在软路由或需要为局域网其他设备提供代理服务的场景。
现在你已经成功部署了 v2rayA,可以开始享受安全、便捷的网络代理服务了!