在 Alpine Linux 上使用 LXC 容器搭建 V2Ray 和 Caddy 服务,提供基于 IPv6 的 SSL WebSocket 代理
前言
在现代互联网环境中,代理服务变得越来越重要,特别是在需要突破地域限制和提升隐私保护的时候。本文将详细介绍如何在 Alpine Linux 3.19 操作系统的 LXC 容器上,使用 V2Ray 和 Caddy 来搭建一个通过 IPv6 和域名提供的 SSL WebSocket 代理服务。
环境准备
- 确保你的 LXC 容器运行并已分配 IPv6 地址。
- 确保你的域名已解析到你的 LXC 容器的 IPv6 地址。
步骤 1:安装和配置 V2Ray
1.1 进入你的 LXC 容器
1
| lxc exec <your-container-name> /bin/ash
|
1.2 安装必要的软件包
1 2
| apk update apk add curl unzip
|
1.3 下载并安装 V2Ray
1 2 3 4 5 6 7 8
| mkdir -p /root/TOOLS/v2ray cd /root/TOOLS/v2ray curl -L -o v2ray.zip https://github.com/v2fly/v2ray-core/releases/latest/download/v2ray-linux-64.zip unzip v2ray.zip -d /root/TOOLS/v2ray mv /root/TOOLS/v2ray/v2ray /root/TOOLS/v2ray/v2ray_bin mv /root/TOOLS/v2ray/v2ctl /root/TOOLS/v2ray/v2ctl_bin chmod +x /root/TOOLS/v2ray/v2ray_bin chmod +x /root/TOOLS/v2ray/v2ctl_bin
|
1.4 创建 V2Ray 配置文件
编辑 /root/TOOLS/v2ray/config.json
,添加如下配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| { "inbounds": [ { "port": 10000, "protocol": "vmess", "settings": { "clients": [ { "id": "your-uuid", "alterId": 64 } ] }, "streamSettings": { "network": "ws", "wsSettings": { "path": "/your-websocket-path" } } } ], "outbounds": [ { "protocol": "freedom", "settings": {} } ] }
|
注意:your-uuid
可以通过 /root/TOOLS/v2ray/v2ctl_bin uuid
生成,your-websocket-path
是 WebSocket 连接的路径,可以自定义。
1.5 创建 V2Ray 服务文件
编辑 /etc/init.d/v2ray
,添加如下内容:
1 2 3 4 5 6 7
| #!/sbin/openrc-run
name="v2ray" description="V2Ray Service" command="/root/TOOLS/v2ray/v2ray_bin" command_args="run -config /root/TOOLS/v2ray/config.json" pidfile="/var/run/v2ray.pid"
|
1.6 设置服务文件权限并启动 V2Ray
1 2 3
| chmod +x /etc/init.d/v2ray rc-update add v2ray default service v2ray start
|
步骤 2:安装和配置 Caddy
2.1 安装 Caddy
1 2 3
| mkdir -p /root/TOOLS/caddy wget -O /root/TOOLS/caddy/caddy 'https://caddyserver.com/api/download?os=linux&arch=amd64' chmod +x /root/TOOLS/caddy/caddy
|
2.2 创建 Caddyfile 配置文件
编辑 /root/TOOLS/caddy/Caddyfile
,内容如下:
1 2 3 4 5 6 7 8 9 10 11
| abc.com { encode gzip tls [email protected] reverse_proxy /your-websocket-path localhost:10000 { header_up Host {host} header_up X-Real-IP {remote} header_up X-Forwarded-For {remote} header_up X-Forwarded-Port {server_port} header_up X-Forwarded-Proto {scheme} } }
|
注意:your-websocket-path
应与 V2Ray 配置中的路径一致,[email protected]
用于自动获取 SSL 证书。
2.3 创建 Caddy 服务文件
编辑 /etc/init.d/caddy
,添加如下内容:
1 2 3 4 5 6 7
| #!/sbin/openrc-run
name="caddy" description="Caddy Web Server" command="/root/TOOLS/caddy/caddy" command_args="run --config /root/TOOLS/caddy/Caddyfile --adapter caddyfile" pidfile="/var/run/caddy.pid"
|
2.4 设置服务文件权限并启动 Caddy
1 2 3
| chmod +x /etc/init.d/caddy rc-update add caddy default service caddy start
|
验证配置
3.1 确保 V2Ray 和 Caddy 服务在运行
1 2
| service v2ray status service caddy status
|
3.2 使用浏览器或 WebSocket 客户端测试 WebSocket 连接
1
| wss://abc.com/your-websocket-path
|
常见问题排查
查看 V2Ray 日志:
1
| tail -f /var/log/v2ray/error.log
|
查看 Caddy 日志:
1
| tail -f /var/log/caddy/access.log
|
手动启动 V2Ray 进行调试:
1
| /root/TOOLS/v2ray/v2ray_bin run -config /root/TOOLS/v2ray/config.json
|
通过这些详细步骤,你应该能够成功在 Alpine Linux 3.19 的 LXC 容器上搭建 V2Ray 和 Caddy 服务,提供基于 IPv6 的 SSL WebSocket 代理服务。如果你在过程中遇到任何问题,欢迎在评论区留言讨论。