v2ray+nginx TLS 配置教程

目录

  1. 前言
  2. 服务端配置
  3. 客户端配置
  4. 常见问题解答

前言

v2ray 是一款功能强大的网络代理工具,支持多种传输协议和加密方式。结合 nginx 作为反向代理,可以实现 TLS 加密传输,提高网络安全性和隐私保护。本文将详细介绍如何配置 v2raynginx 实现 TLS 加密,并解答常见问题。

服务端配置

安装 v2ray

  1. 访问 v2ray 官网下载对应系统的安装包。

  2. 解压安装包并运行安装脚本:

    bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

配置 v2ray

  1. 编辑 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,用于提高安全性
  2. 启动 v2ray 服务:

    systemctl start v2ray

安装 nginx

  1. 根据操作系统安装 nginx:
    • CentOS/RHEL: yum install nginx
    • Debian/Ubuntu: apt-get install nginx

配置 nginx

  1. 编辑 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_certificatessl_certificate_key: 证书文件路径
  2. 重启 nginx 服务:

    systemctl restart nginx

证书申请

为了使用 HTTPS,需要申请 SSL/TLS 证书。可以使用免费的 Let’s Encrypt 证书:

  1. 安装 certbot 工具:

    • CentOS/RHEL: yum install certbot
    • Debian/Ubuntu: apt-get install certbot
  2. 申请证书:

    certbot certonly –standalone -d your-domain.com

  3. 证书文件保存在 /etc/letsencrypt/live/your-domain.com 目录下。

测试连接

在客户端配置完成后,可以通过以下方式测试连接:

curl https://your-domain.com

如果能正常访问网站,说明 v2ray 和 nginx 已经成功配置。

客户端配置

Windows 客户端

  1. 下载 V2RayN 客户端程序。
  2. 解压并运行 V2RayN.exe。
  3. 点击左上角 Servers 按钮,选择 Add VMess Server
  4. 填写服务器信息:
    • Address: 你的域名
    • Port: 443
    • UUID: 刚才设置的 user ID
    • alterId: 64
    • Security: auto
  5. 点击 OK 保存。
  6. 选择刚添加的服务器,然后点击 VPN 按钮开始使用。

macOS 客户端

  1. 下载 V2RayX 客户端程序。
  2. 解压并运行 V2RayX.app。
  3. 点击菜单栏中的 V2RayX 图标,选择 Preferences
  4. Servers 标签页中,点击 + 按钮添加新服务器。
  5. 填写服务器信息:
    • Address: 你的域名
    • Port: 443
    • UUID: 刚才设置的 user ID
    • alterId: 64
    • Security: auto
  6. 点击 OK 保存。
  7. 选择刚添加的服务器,然后点击菜单栏中的 V2RayX 图标,选择 Start 开始使用。

Android 客户端

  1. 下载 V2RayNG 客户端程序。
  2. 安装并运行 V2RayNG。
  3. 点击 + 按钮添加新服务器。
  4. 填写服务器信息:
    • Address: 你的域名
    • Port: 443
    • UUID: 刚才设置的 user ID
    • alterId: 64
    • Security: auto
  5. 点击 Save 保存。
  6. 选择刚添加的服务器,然后点击右上角的开关按钮开始使用。

iOS 客户端

  1. 下载 Shadowrocket 客户端程序。
  2. 安装并运行 Shadowrocket。
  3. 点击 + 按钮添加新服务器。
  4. 选择 VMess 协议,并填写服务器信息:
    • Address: 你的域名
    • Port: 443
    • UUID: 刚才设置的 user ID
    • alterId: 64
    • Security: auto
  5. 点击 Done 保存。
  6. 选择刚添加的服务器,然后点击屏幕上方的开关按钮开始使用。

常见问题解答

为什么会出现 TLS 握手失败的错误?

出现这个错误的常见原因包括:

  • 服务器证书配置错误,请检查 ssl_certificatessl_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 到最新版本?

  1. 更新 v2ray:

    bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

  2. 更新 nginx:

    • CentOS/RHEL: yum update nginx
    • Debian/Ubuntu: apt-get update && apt-get upgrade nginx

更新后,请记得重启相应的服务。

正文完