目录
- 前言
- v2ray 简介
- 为什么选择 ws+tls
- docker 容器部署 4.1. 准备工作 4.2. 拉取 v2ray 镜像 4.3. 编写 v2ray 配置文件 4.4. 启动 v2ray 容器
- 客户端连接配置 5.1. Windows 5.2. macOS 5.3. Android 5.4. iOS
- 常见问题 FAQ
前言
随着互联网的高速发展,网络环境也日益复杂化。一些国家或地区的网络审查和封锁问题日益严重,普通用户想要自由地访问互联网变得越来越困难。v2ray 作为一款功能强大的代理工具,能够帮助用户突破网络封锁,安全地访问互联网资源。本文将详细介绍如何使用 v2ray 配合 ws 协议和 tls 加密在 docker 容器中部署一个安全稳定的代理服务。
v2ray 简介
v2ray 是一个功能强大的代理软件,它支持多种传输协议,如 VMess、VLESS、Trojan 等,能够帮助用户突破网络封锁,安全地访问互联网资源。v2ray 采用模块化设计,支持多种传输方式,如 TCP、mKCP、WebSocket 等,可以有效地隐藏代理流量,降低被封锁的风险。
为什么选择 ws+tls
在众多的传输协议中,ws+tls 是一种非常优秀的选择。WebSocket 是一种基于 HTTP 的双向通信协议,它可以在单个 TCP 连接上进行全双工通信,相比于传统的 HTTP 请求-响应模式,WebSocket 能够更高效地传输数据。同时,WebSocket 流量可以伪装成正常的 HTTPS 流量,从而很好地隐藏了代理的痕迹。TLS 加密则可以确保传输数据的安全性,防止流量被窃听或篡改。
docker 容器部署
在本节中,我们将详细介绍如何在 docker 容器中部署 v2ray 服务。
准备工作
在开始部署之前,请确保您已经具备以下条件:
- 一台可以访问互联网的 Linux 服务器,并且已经安装好 docker 环境。
- 一个可用的域名,并且已经将域名解析到服务器的 IP 地址。
- 一个有效的 SSL/TLS 证书,可以通过 Let’s Encrypt 或其他免费 CA 服务申请。
拉取 v2ray 镜像
首先,我们需要从 Docker Hub 拉取 v2ray 的官方镜像:
bash docker pull v2fly/v2fly-core
编写 v2ray 配置文件
接下来,我们需要编写 v2ray 的配置文件。创建一个名为 config.json
的文件,并将以下内容复制进去:
{ “log”: { “access”: “/var/log/v2ray/access.log”, “error”: “/var/log/v2ray/error.log”, “loglevel”: “info” }, “inbounds”: [ { “port”: 8080, “protocol”: “vmess”, “settings”: { “clients”: [ { “id”: “your-uuid-here”, “alterId”: 64 } ] }, “streamSettings”: { “network”: “ws”, “wsSettings”: { “path”: “/your-path-here” }, “security”: “tls”, “tlsSettings”: { “certificates”: [ { “certificateFile”: “/path/to/your/certificate.crt”, “keyFile”: “/path/to/your/private.key” } ] } } } ], “outbounds”: [ { “protocol”: “freedom”, “settings”: {} } ]}
请注意,您需要替换以下内容:
your-uuid-here
: 请使用 UUID 生成器生成一个唯一的 UUID。your-path-here
: 请设置一个自定义的 WebSocket 路径,例如/v2ray
。certificate.crt
和private.key
: 请替换为您自己的 SSL/TLS 证书文件路径。
启动 v2ray 容器
最后,我们可以使用以下命令启动 v2ray 容器:
bash docker run -d –name v2ray -v $(pwd)/config.json:/etc/v2ray/config.json -v $(pwd)/certificate.crt:/etc/v2ray/certificate.crt -v $(pwd)/private.key:/etc/v2ray/private.key -p 8080:8080 v2fly/v2fly-core
这个命令会将本地的 config.json
、certificate.crt
和 private.key
文件挂载到容器内部,并将容器的 8080
端口映射到宿主机的 8080
端口。
客户端连接配置
现在,您的 v2ray 服务已经成功部署在 docker 容器中了。接下来,我们需要配置客户端来连接到这个代理服务。
Windows
- 下载并安装 v2rayN 客户端软件。
- 在 v2rayN 中,点击
订阅
->添加订阅源
。 - 输入订阅链接
https://raw.githubusercontent.com/v2fly/v2ray-step-by-step/master/command/vmess_ws_tls/config.json
。 - 点击
更新订阅
。 - 选择服务器,点击
连接
。
macOS
- 下载并安装 V2RayX 客户端软件。
- 在 V2RayX 中,点击
Preferences
->Servers
。 - 点击
+
按钮,选择Import from Clipboard
。 - 将以下配置信息复制到剪贴板:
{ “inbounds”: [ { “port”: 1080, “protocol”: “socks”, “settings”: { “auth”: “noauth” } } ], “outbounds”: [ { “protocol”: “vmess”, “settings”: { “vnext”: [ { “address”: “your-domain.com”, “port”: 8080, “users”: [ { “id”: “your-uuid-here”, “alterId”: 64 } ] } ] }, “streamSettings”: { “network”: “ws”, “wsSettings”: { “path”: “/your-path-here” }, “security”: “tls” } } ]}
- 点击
Add
按钮保存配置。 - 选择服务器,点击
Start
按钮启动代理。
Android
- 下载并安装 V2RayNG 客户端应用。
- 在 V2RayNG 中,点击
+
按钮添加新的服务器配置。 - 在
地址
栏中输入您的域名,端口
填写8080
。 - 在
用户 ID
栏中输入您的 UUID。 - 在
额外 ID
栏中输入64
。 - 在
加密
栏中选择auto
。 - 在
传输类型
中选择ws
。 - 在
路径
中填写您之前设置的自定义路径,例如/v2ray
。 - 在
TLS
中选择tls
。 - 点击
确定
保存配置,然后点击连接
启动代理。
iOS
- 下载并安装 Shadowrocket 客户端应用。
- 在 Shadowrocket 中,点击
+
按钮添加新的服务器配置。 - 在
地址
栏中输入您的域名,端口
填写8080
。 - 在
用户 ID
栏中输入您的 UUID。 - 在
额外 ID
栏中输入64
。 - 在
加密
栏中选择auto
。 - 在
传输类型
中选择ws
。 - 在
路径
中填写您之前设置的自定义路径,例如/v2ray
。 - 在
TLS
中选择tls
。 - 点击
完成
保存配置,然后点击连接
启动代理。
常见问题 FAQ
以下是一些常见问题及解答:
Q: 为什么使用 ws+tls 协议? A: WebSocket 协议可以伪装成正常的 HTTPS 流量,从而有效隐藏代理的痕迹。TLS 加密则可以确保传输数据的安全性,防止流量被窃听或篡改。这种组合能够提供较高的隐藏性和安全性。
Q: 为什么选择 docker 容器部署? A: Docker 容器具有轻量、隔离、可移植等特点,非常适合部署代理服务。使用 Docker 可以方便地管理和部署 v2ray 服务,并且能够确保服务的稳定性和可靠性。
Q: 如何查看 v2ray 容器的日志? A: 您可以使用以下命令查看 v2ray 容器的日志:
bash docker logs v2ray
Q: 如何更新 v2ray 容器? A: 要更新 v2ray 容器,您可以先停止当前运行的容器,然后拉取最新的镜像并重新启动容器。具体步骤如下:
- 停止当前运行的 v2ray 容器:
bash docker stop v2ray
- 拉取最新的 v2ray 镜像:
bash docker pull v2fly/v2fly-core
- 使用新的镜像重新启动容器:
bash docker run -d –name v2ray -v $(pwd)/config.json:/etc/v2ray/config.json -v $(pwd)/certificate.crt:/etc/v2ray/certificate.crt -v $(pwd)/private.key:/etc/v2ray/private.key -p 8080:8080 v2fly/v2fly-core
Q: 如何自定义 v2ray 配置? A: 您可以根据自己的需求修改 config.json
文件中的配置项,例如更改监听端口、添加多个入站/出站代理等。修改完成后,只需要重新启动 v2ray 容器即可生效。