目录
简介
v2ray 是一个功能强大的代理工具,支持多种传输协议,包括 VMess、VLESS 等。caddy 是一个现代化的 Web 服务器,支持自动化 HTTPS 证书管理。结合 v2ray 和 caddy,我们可以搭建一个基于 websocket 的代理服务,提供稳定可靠的代理连接。
环境准备
安装 v2ray
可以通过官方脚本快速安装 v2ray:
bash bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
安装 caddy
Caddy 可以通过包管理器安装,以 Ubuntu 为例:
bash sudo apt-get install -y caddy
配置 v2ray
配置 inbound
打开 /etc/v2ray/config.json
文件,找到 inbounds
部分,添加以下配置:
{ “port”: 10000, “listen”: “0.0.0.0”, “protocol”: “vmess”, “settings”: { “clients”: [ { “id”: “your-uuid”, “alterId”: 64 } ] }, “streamSettings”: { “network”: “ws”, “wsSettings”: { “path”: “/your-path” } }}
其中 your-uuid
可以使用 uuidgen
命令生成,/your-path
是 WebSocket 的路径,可以自行设置。
配置 outbound
在 outbounds
部分,添加以下配置:
{ “protocol”: “freedom”, “settings”: {}}
配置 caddy
配置 Caddyfile
创建 /etc/caddy/Caddyfile
文件,添加以下内容:
your-domain.com { reverse_proxy localhost:10000 { header_up Host {host} header_up X-Real-IP {remote} header_up X-Forwarded-For {remote} header_up X-Forwarded-Proto {scheme} }}
将 your-domain.com
替换为你的域名。
启动服务
启动 v2ray 和 caddy 服务:
bash systemctl start v2ray systemctl start caddy
客户端配置
在客户端配置文件中,添加以下内容:
{ “log”: { “loglevel”: “warning” }, “inbound”: { “port”: 1080, “listen”: “127.0.0.1”, “protocol”: “socks”, “settings”: { “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” } } }}
将 your-domain.com
和 your-uuid
替换为对应的值。
FAQ
为什么要使用 caddy 而不是 nginx?
Caddy 相比 nginx 有以下优势:
- 自动化 HTTPS 证书管理,免去手动配置的麻烦
- 配置文件简单易读
- 支持动态加载配置文件
- 内置 HTTP/2 支持
为什么要使用 WebSocket 而不是 TCP?
使用 WebSocket 可以更好地伪装流量,绕过一些网络限制。WebSocket 协议建立在 HTTP 之上,可以更好地隐藏代理的痕迹。
如何查看 v2ray 和 caddy 的日志?
可以使用以下命令查看日志:
bash journalctl -u v2ray journalctl -u caddy
如何更新 v2ray 和 caddy?
可以使用包管理器更新 v2ray 和 caddy,以 Ubuntu 为例:
bash sudo apt-get update sudo apt-get upgrade -y v2ray caddy