Margrop
Articles158
Tags353
Categories21
1password AC AP API AppDaemon Aqara Cron Date Diagrams.net HA HADashboard HomeAssistant IP IPv4 Java LVM‑Thin Linux MacOS MySQL NAS PPPoE PostgreSQL ProcessOn Proxmox VE SSL Shell TTS TimeMachine UML Uptime Kuma Web Windows activate ad adb adblock agent aligenie aliyun alpine annotation aop authy autofs backup baidupan bash bitwarden boot brew browser caddy2 cdn centos cert certbot charles chat chrome classloader client clone closures cloudflare cmd command commit container crontab ctyun ddsm demo dependency deploy developer devtools dll dns docker domain download draw drawio dsm dump dylib edge exception export fail2ban feign firewall-cmd flow frp frpc frps fuckgfw function gcc gfw git github golang gperftools gridea grub gvt-g hacs havcs heap hello hexo hibernate hidpi hoisting homeassistant hosts html htmlparser https idea image img img2kvm import index install intel io ios ip iptables iptv ipv6 iso java javascript jetbrains jni jnilib jpa js json jsonb jupter jupyterlab jvm k8s kernel key kid kms kodi koolproxy koolproxyr kvm lan lastpass launchctl learning lede letsencrypt linux live low-code lvm lxc m3u8 mac macos mariadb markdown maven md5 microcode mirror modem modules monitor mount mstsc mysql n2n n5105 nas network nfs node node-red nodejs nohup notepad++ npm nssm ntp oop openfeign openssl os otp ovz packet capture pat pdf pem perf ping pip plugin png powerbutton print pro proxy pve pvekclean python qcow2 qemu qemu-guest-agent rar reboot reflog remote remote desktop renew repo resize retina root route router rule rules runtime safari sata scipy-notebook scoping scp server slmgr so socks source spk spring springboot springfox ssh ssl stash string supernode svg svn swagger sync synology systemctl tap tap-windows tapwindows telecom template terminal tls token totp tvbox txt ubuntu udisk ui undertow uninstall unlocker upgrade url v2ray vhd vim vlmcsd vm vmdk web websocket wechat windows with worker wow xiaoya xml yum zip 中国电信 云电脑 交换机 光猫 公网IP 内存 内网IP 升级 启动 夏令时 天猫精灵 天翼云 安装 容器 导入 小米 常用软件 广告屏蔽 序列号 应用市场 异常 抓包 描述文件 时区 显卡虚拟化 智能家居 智能音箱 梯子 模块 流程 流程图 浏览器 漫游 激活 火绒 电信 画图 直播源 续期 网关 网络风暴 群晖 腾讯 虚拟机 证书 路由 路由器 软件管家 软路由 运维监控 镜像 镜像源 门窗传感器 防火墙 阿里云 阿里源 集客

Hitokoto

Archive

在 Alpine Linux 上使用 LXC 容器搭建 V2Ray 和 Caddy 服务,提供基于 IPv6 的 SSL WebSocket 代理

在 Alpine Linux 上使用 LXC 容器搭建 V2Ray 和 Caddy 服务,提供基于 IPv6 的 SSL WebSocket 代理

前言

在现代互联网环境中,代理服务变得越来越重要,特别是在需要突破地域限制和提升隐私保护的时候。本文将详细介绍如何在 Alpine Linux 3.19 操作系统的 LXC 容器上,使用 V2Ray 和 Caddy 来搭建一个通过 IPv6 和域名提供的 SSL WebSocket 代理服务。

环境准备

  1. 确保你的 LXC 容器运行并已分配 IPv6 地址
  2. 确保你的域名已解析到你的 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

常见问题排查

  1. 查看 V2Ray 日志

    1
    tail -f /var/log/v2ray/error.log
  2. 查看 Caddy 日志

    1
    tail -f /var/log/caddy/access.log
  3. 手动启动 V2Ray 进行调试

    1
    /root/TOOLS/v2ray/v2ray_bin run -config /root/TOOLS/v2ray/config.json

通过这些详细步骤,你应该能够成功在 Alpine Linux 3.19 的 LXC 容器上搭建 V2Ray 和 Caddy 服务,提供基于 IPv6 的 SSL WebSocket 代理服务。如果你在过程中遇到任何问题,欢迎在评论区留言讨论。

Author:Margrop
Link:http://blog.margrop.com/post/setting-up-v2ray-and-caddy-on-alpine-linux-lxc-container/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可