目录
前言
v2ray 是一款功能强大的网络代理工具,支持多种传输协议和加密方式。结合 nginx 作为反向代理,可以实现 TLS 加密传输,提高网络安全性和隐私保护。本文将详细介绍如何配置 v2ray 和 nginx 实现 TLS 加密,并解答常见问题。
服务端配置
安装 v2ray
-
访问 v2ray 官网下载对应系统的安装包。
-
解压安装包并运行安装脚本:
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
配置 v2ray
-
编辑 v2ray 配置文件
/etc/v2ray/config.json
,修改以下关键信息:{ “inbounds”: [ { “port”: 10000, “protocol”: “vmess”, “settings”: { “clients”: [ { “id”: “your-uuid”, “alterId”: 64 } ] } } ], “outbounds”: [ { “protocol”: “freedom”, “settings”: {} } ] }
port
: 服务端监听端口id
: 用户 ID,可以使用uuidgen
命令生成alterId
: 额外ID,用于提高安全性
-
启动 v2ray 服务:
systemctl start v2ray
安装 nginx
- 根据操作系统安装 nginx:
- CentOS/RHEL:
yum install nginx
- Debian/Ubuntu:
apt-get install nginx
- CentOS/RHEL:
配置 nginx
-
编辑 nginx 配置文件
/etc/nginx/conf.d/default.conf
,添加以下内容: nginx server { listen 443 ssl; server_name your-domain.com;ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256; ssl_prefer_server_ciphers on;
location / { proxy_pass http://127.0.0.1:10000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
server_name
: 你的域名ssl_certificate
和ssl_certificate_key
: 证书文件路径
-
重启 nginx 服务:
systemctl restart nginx
证书申请
为了使用 HTTPS,需要申请 SSL/TLS 证书。可以使用免费的 Let’s Encrypt 证书:
-
安装 certbot 工具:
- CentOS/RHEL:
yum install certbot
- Debian/Ubuntu:
apt-get install certbot
- CentOS/RHEL:
-
申请证书:
certbot certonly –standalone -d your-domain.com
-
证书文件保存在
/etc/letsencrypt/live/your-domain.com
目录下。
测试连接
在客户端配置完成后,可以通过以下方式测试连接:
curl https://your-domain.com
如果能正常访问网站,说明 v2ray 和 nginx 已经成功配置。
客户端配置
Windows 客户端
- 下载 V2RayN 客户端程序。
- 解压并运行 V2RayN.exe。
- 点击左上角
Servers
按钮,选择Add VMess Server
。 - 填写服务器信息:
- Address: 你的域名
- Port: 443
- UUID: 刚才设置的 user ID
- alterId: 64
- Security: auto
- 点击
OK
保存。 - 选择刚添加的服务器,然后点击
VPN
按钮开始使用。
macOS 客户端
- 下载 V2RayX 客户端程序。
- 解压并运行 V2RayX.app。
- 点击菜单栏中的 V2RayX 图标,选择
Preferences
。 - 在
Servers
标签页中,点击+
按钮添加新服务器。 - 填写服务器信息:
- Address: 你的域名
- Port: 443
- UUID: 刚才设置的 user ID
- alterId: 64
- Security: auto
- 点击
OK
保存。 - 选择刚添加的服务器,然后点击菜单栏中的 V2RayX 图标,选择
Start
开始使用。
Android 客户端
- 下载 V2RayNG 客户端程序。
- 安装并运行 V2RayNG。
- 点击
+
按钮添加新服务器。 - 填写服务器信息:
- Address: 你的域名
- Port: 443
- UUID: 刚才设置的 user ID
- alterId: 64
- Security: auto
- 点击
Save
保存。 - 选择刚添加的服务器,然后点击右上角的开关按钮开始使用。
iOS 客户端
- 下载 Shadowrocket 客户端程序。
- 安装并运行 Shadowrocket。
- 点击
+
按钮添加新服务器。 - 选择
VMess
协议,并填写服务器信息:- Address: 你的域名
- Port: 443
- UUID: 刚才设置的 user ID
- alterId: 64
- Security: auto
- 点击
Done
保存。 - 选择刚添加的服务器,然后点击屏幕上方的开关按钮开始使用。
常见问题解答
为什么会出现 TLS 握手失败的错误?
出现这个错误的常见原因包括:
- 服务器证书配置错误,请检查
ssl_certificate
和ssl_certificate_key
的路径是否正确。 - 客户端不信任服务器证书,可以尝试在客户端设置信任服务器证书。
- 网络环境问题,如防火墙或代理服务器阻挡了 TLS 连接。
如何修复 “Your current network environment may not support the protocol” 错误?
这个错误通常是由于网络环境限制了 WebSocket 或 mKCP 协议的使用。可以尝试以下方法:
- 切换到 TCP 传输协议
- 使用 TLS 加密传输
- 更换服务器地址或端口号
如何查看 v2ray 的运行日志?
可以使用以下命令查看 v2ray 的运行日志:
journalctl -u v2ray
如果使用的是老版本的 Linux 系统,可以使用以下命令:
tail -n 100 /var/log/v2ray/access.log tail -n 100 /var/log/v2ray/error.log
这些日志信息可以帮助你诊断和解决问题。
如何更新 v2ray 和 nginx 到最新版本?
-
更新 v2ray:
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
-
更新 nginx:
- CentOS/RHEL:
yum update nginx
- Debian/Ubuntu:
apt-get update && apt-get upgrade nginx
- CentOS/RHEL:
更新后,请记得重启相应的服务。