在 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 容器
lxc exec <your-container-name> /bin/ash
1.2 安装必要的软件包
apk update
apk add curl unzip
1.3 下载并安装 V2Ray
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
,添加如下配置:
{
"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
,添加如下内容:
#!/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
chmod +x /etc/init.d/v2ray
rc-update add v2ray default
service v2ray start
步骤 2:安装和配置 Caddy
2.1 安装 Caddy
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
,内容如下:
abc.com {
encode gzip
tls your-email@example.com
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 配置中的路径一致,your-email@example.com
用于自动获取 SSL 证书。
2.3 创建 Caddy 服务文件
编辑 /etc/init.d/caddy
,添加如下内容:
#!/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
chmod +x /etc/init.d/caddy
rc-update add caddy default
service caddy start
验证配置
3.1 确保 V2Ray 和 Caddy 服务在运行
service v2ray status
service caddy status
3.2 使用浏览器或 WebSocket 客户端测试 WebSocket 连接
wss://abc.com/your-websocket-path
常见问题排查
-
查看 V2Ray 日志:
tail -f /var/log/v2ray/error.log
-
查看 Caddy 日志:
tail -f /var/log/caddy/access.log
-
手动启动 V2Ray 进行调试:
/root/TOOLS/v2ray/v2ray_bin run -config /root/TOOLS/v2ray/config.json
通过这些详细步骤,你应该能够成功在 Alpine Linux 3.19 的 LXC 容器上搭建 V2Ray 和 Caddy 服务,提供基于 IPv6 的 SSL WebSocket 代理服务。如果你在过程中遇到任何问题,欢迎在评论区留言讨论。