v2ray+websocket+tls+nginx/caddy 搭建翻墙代理服务

目录

前言

在日常上网过程中,我们经常会遇到各种网络限制和屏蔽,导致无法访问某些网站或服务。为了突破这些限制,我们需要使用代理服务来进行翻墙。

本文将详细介绍如何使用 v2ray 搭建基于 websocket+TLS 的代理服务,并结合 Nginx 或 Caddy 进行反向代理和 SSL/TLS 证书管理,为用户提供安全可靠的翻墙解决方案。

环境准备

系统要求

  • 操作系统: Linux (Ubuntu/CentOS/Debian 等)
  • 服务器配置: 最低 1GB 内存, 1 核 CPU

域名准备

为了保证服务的安全性,我们需要提前准备一个域名。域名可以是自己购买的,也可以使用免费的动态域名服务。

v2ray 服务端配置

安装 v2ray

v2ray 是一款功能强大的代理工具,可以提供各种协议的代理服务。我们这里选择使用 v2ray 的 websocket 协议,并配合 TLS 加密传输。

在服务器上安装 v2ray 可以使用以下命令:

bash

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

配置 v2ray

v2ray 的配置文件位于 /etc/v2ray/config.json。我们需要修改该文件,添加 websocket 和 TLS 相关的配置:

{ “inbounds”: [ { “port”: 443, “protocol”: “vmess”, “settings”: { “clients”: [ { “id”: “your-uuid”, “alterId”: 64 } ] }, “streamSettings”: { “network”: “ws”, “wsSettings”: { “path”: “/your-path” }, “security”: “tls”, “tlsSettings”: { “certificates”: [ { “certificateFile”: “/path/to/fullchain.pem”, “keyFile”: “/path/to/privkey.pem” } ] } } } ], “outbounds”: [ { “protocol”: “freedom” } ]}

在这个配置文件中,我们设置了以下关键项:

  • port: 监听端口,这里我们使用 443 端口,因为 HTTPS 默认使用该端口。
  • protocol: 协议类型,这里我们使用 vmess。
  • id: 用户 ID,需要填写你自己的 UUID。
  • network: 传输协议,这里我们使用 websocket。
  • path: websocket 的路径,可以自定义。
  • security: 安全性协议,这里我们使用 TLS。
  • certificateFilekeyFile: TLS 证书和私钥文件的路径。

修改完成后,保存文件并重启 v2ray 服务:

bash systemctl restart v2ray

Nginx 反向代理配置

安装 Nginx

Nginx 是一款功能强大的 Web 服务器,我们可以使用它来进行反向代理,并管理 SSL/TLS 证书。

在服务器上安装 Nginx 可以使用以下命令:

bash

apt-get update apt-get install -y nginx

配置 Nginx

Nginx 的配置文件位于 /etc/nginx/conf.d/default.conf。我们需要修改该文件,添加反向代理和 TLS 相关的配置:

nginx server { listen 80; server_name your-domain.com; return 301 https://$server_name$request_uri;} server { listen 443 ssl; server_name your-domain.com;

ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;

location /your-path {
    proxy_pass http://127.0.0.1:443;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
}}

在这个配置文件中,我们设置了以下关键项:

  • 监听 80 端口并自动跳转到 HTTPS。
  • 监听 443 端口并配置 TLS 证书。
  • 设置反向代理,将 /your-path 的请求转发到本地 v2ray 服务。

修改完成后,保存文件并重启 Nginx 服务:

bash systemctl restart nginx

Caddy 反向代理配置

安装 Caddy

Caddy 是一款功能强大的 Web 服务器,它可以自动管理 SSL/TLS 证书,并提供反向代理功能。

在服务器上安装 Caddy 可以使用以下命令:

bash

curl -s https://getcaddy.com | sudo bash -s personal

配置 Caddy

Caddy 的配置文件位于 /etc/caddy/Caddyfile。我们需要修改该文件,添加反向代理和 TLS 相关的配置:

your-domain.com { reverse_proxy 127.0.0.1:443 { header_up Host {host} header_up Upgrade {http.request.header.Upgrade} header_up Connection {http.request.header.Connection} }}

在这个配置文件中,我们设置了以下关键项:

  • 监听 your-domain.com 域名。
  • 将请求反向代理到本地 v2ray 服务。
  • 转发相关的 HTTP 头信息,确保 websocket 协议正常工作。

修改完成后,保存文件并重启 Caddy 服务:

bash systemctl restart caddy

客户端配置

Windows 客户端

  1. 下载并安装 V2RayN 客户端: https://github.com/2dust/v2rayN/releases
  2. 打开 V2RayN,选择 “订阅” -> “添加订阅地址”,输入 v2ray 服务端提供的订阅链接。
  3. 选择订阅中的节点,并点击 “连接” 即可。

Android 客户端

  1. 下载并安装 V2RayNG 客户端: https://github.com/2dust/v2rayNG/releases
  2. 打开 V2RayNG,选择 “订阅” -> “添加订阅”,输入 v2ray 服务端提供的订阅链接。
  3. 选择订阅中的节点,并点击 “连接” 即可。

iOS 客户端

  1. 下载并安装 Shadowrocket 客户端: https://apps.apple.com/us/app/shadowrocket/id932747118
  2. 打开 Shadowrocket,选择 “+” -> “Subscribe”,输入 v2ray 服务端提供的订阅链接。
  3. 选择订阅中的节点,并点击 “开启” 即可。

常见问题 FAQ

为什么要使用 websocket 协议?

websocket 协议是一种基于 HTTP 的全双工通信协议,它可以提供持久性的连接,并且可以穿越防火墙和 NAT 设备。这使得它非常适合用于代理服务,可以提高连接的稳定性和可靠性。

为什么要使用 TLS 加密?

TLS 加密可以确保通信过程的安全性,防止中间人攻击和数据窃取。在进行翻墙等敏感操作时,使用 TLS 加密非常重要,可以保护用户的隐私和安全。

Nginx 和 Caddy 有什么区别?

Nginx 和 Caddy 都是常用的 Web 服务器,它们都可以用于反向代理和 SSL/TLS 证书管理。主要区别在于:

  • Nginx 需要手动配置 SSL/TLS 证书,而 Caddy 可以自动获取和更新证书。
  • Caddy 配置相对简单,Nginx 配置相对复杂。
  • Caddy 默认启用 HTTP/2,Nginx 需要额外配置。

如何选择 Nginx 还是 Caddy?

如果你熟悉 Nginx 的配置,并且需要更多的定制化功能,那么选择 Nginx 会更合适。如果你希望更简单的配置和自动化的 SSL/TLS 证书管理,那么选择 Caddy 会更方便。两者各有优缺点,需要根据具体需求进行选择。

正文完