目录
简介
v2ray 是一个功能强大的代理工具,支持多种传输协议和加密方式,可以有效地突破网络限制,保护用户隐私。其中 v2ray websocket + TLS + Nginx 的组合方式是一种常见的高安全性代理方案,可以有效地隐藏代理流量,抵御各种网络审查和封锁。
本文将详细介绍如何使用这种方式搭建代理服务,包括 v2ray 的服务端和客户端配置,以及 Nginx 的相关配置。同时也会针对一些常见问题进行解答,帮助读者更好地理解和使用该方案。
环境准备
- 一台支持 v2ray 的服务器,推荐使用 CentOS 7 或 Ubuntu 18.04 系统。
- 一个可用的域名,并完成 DNS 解析。
- v2ray 客户端软件,可在官网下载适用于各平台的客户端。
v2ray 配置
服务端配置
-
安装 v2ray:
bash curl -L https://run.gap.im/v2ray | bash
-
修改 v2ray 配置文件
/etc/v2ray/config.json
,主要配置如下:{ “log”: { “loglevel”: “warning” }, “inbounds”: [ { “port”: 10000, “protocol”: “vmess”, “settings”: { “clients”: [ { “id”: “your-uuid”, “alterId”: 64 } ] }, “streamSettings”: { “network”: “ws”, “wsSettings”: { “path”: “/your-path” } } } ], “outbounds”: [ { “protocol”: “freedom”, “settings”: {} } ] }
port
: 监听端口,可自行修改。id
: 用户 ID,可使用uuidgen
命令生成。alterId
: 额外ID,用于增加传输的复杂性。path
: WebSocket 路径,可自行修改。
-
启动 v2ray:
bash systemctl start v2ray
客户端配置
以 Windows 客户端为例:
-
下载 v2ray Windows 客户端并解压。
-
编辑
config.json
文件,主要配置如下:{ “inbound”: { “port”: 1080, “listen”: “127.0.0.1”, “protocol”: “socks”, “settings”: { “auth”: “noauth”, “udp”: true } }, “outbound”: { “protocol”: “vmess”, “settings”: { “vnext”: [ { “address”: “your-domain.com”, “port”: 443, “users”: [ { “id”: “your-uuid”, “alterId”: 64, “security”: “auto” } ] } ] }, “streamSettings”: { “network”: “ws”, “security”: “tls”, “wsSettings”: { “path”: “/your-path” } } }, “outboundDetour”: [ { “protocol”: “freedom”, “settings”: { “domainStrategy”: “AsIs”, “userLevel”: 0 }, “tag”: “direct” } ], “routing”: { “rules”: [ { “type”: “field”, “outboundTag”: “direct”, “domain”: [ “geosite:private” ] } ] } }
address
: 服务器域名。id
: 用户 ID,与服务端配置一致。alterId
: 额外 ID,与服务端配置一致。path
: WebSocket 路径,与服务端配置一致。
-
启动 v2ray 客户端。
Nginx 配置
域名解析
- 将域名解析到 v2ray 服务器的 IP 地址。
Nginx 配置文件
-
安装 Nginx:
bash yum install -y nginx
-
修改 Nginx 配置文件
/etc/nginx/conf.d/default.conf
,主要配置如下:nginx server { listen 80; server_name your-domain.com; return 301 https://$server_name$request_uri; }
server { listen 443 ssl http2; 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-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA; ssl_prefer_server_ciphers on;
location /your-path { proxy_redirect off; proxy_pass http://127.0.0.1:10000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection “upgrade”; proxy_set_header Host $http_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
: 证书文件路径。your-path
: 与 v2ray 服务端配置中的path
保持一致。
-
重启 Nginx:
bash systemctl restart nginx
验证测试
- 在客户端配置中设置代理,并尝试访问一些网站,确保代理可用。
- 使用在线工具检查代理是否成功隐藏了真实 IP 地址。
- 检查 v2ray 和 Nginx 的日志,确保没有报错。
常见问题
WebSocket 连接失败
- 检查 v2ray 服务端和客户端的配置是否一致,特别是
path
参数。 - 检查 Nginx 配置文件中
location
块的设置是否正确。 - 检查服务器防火墙是否放行了 Nginx 和 v2ray 的端口。
证书问题
- 确保 Nginx 配置文件中的证书文件路径是正确的。
- 如果使用自签名证书,需要在客户端信任该证书。
- 可以使用 Let’s Encrypt 免费申请 HTTPS 证书。
性能问题
- 检查服务器的 CPU、内存、网络等资源是否足够。
- 尝试调整 v2ray 的线程数和缓存设置,提高性能。
- 如果负载过大,可以考虑使用负载均衡等方式。
结语
通过本文的详细介绍,相信读者已经掌握了如何使用 v2ray websocket + TLS + Nginx 搭建安全稳定的代理服务。这种方案不仅能有效隐藏代理流量,还能提供 HTTPS 加密传输,是一种非常实用的代理解决方案。如果在使用过程中还有任何疑问,欢迎随时与我们交流。