特点
1.免配置,部署完成以后从日志直接查看导入字符串
2.支持自动申请证书,也支持上级反向代理申请证书
3.与官方版本保持同步更新
先放上开源地址:https://github.com/anerg2046/Caddy_V2ray
使用前提:
- 一台运行docker的主机
- 一个域名,可以是二级域名,并已解析A记录到你的主机IP
- 一个邮箱地址,用于caddy申请SSL证书,如果不填将不会申请证书,且caddy只监听80端口
如果你只在vps上跑v2ray,不跑其他的web服务,那么用法很简单,命令行模式如下:
docker run -d \
-v v2ray_v2ray:/etc/v2ray:rw \
-v v2ray_caddy:/etc/caddy:rw \
-p 80:80 \
-p 443:443 \
-e DOMAIN=v3.mooim.com \
-e [email protected] \
--restart=always \
--name=caddy_v2ray \
anerg/v2ray:latest
或者使用docker-compose
version: '3'
services:
caddy_v2ray:
image: anerg/v2ray
container_name: caddy_v2ray
restart: always
volumes:
- v2ray:/etc/v2ray:rw
- caddy:/etc/caddy:rw
environment:
- "DOMAIN=v3.mooim.com"
- "[email protected]"
ports:
- "80:80"
- "443:443"
volumes:
v2ray:
name: v2ray_v2ray
caddy:
name: v2ray_caddy
在docker-compose.yml文件的目录下执行docker-compose up -d即可
说明:
- DOMAIN:你的域名
- EMAIL:用于申请证书的邮箱地址
- 必须开放80端口用于证书的申请
如果没啥别的问题,执行命令docker logs caddy_v2ray,你会看到如下内容
=====================================
V2ray 配置信息
地址(address): v2.mooim.com
端口(port): 443
用户id(UUID): a736b1ef-a96e-4f35-8f6b-5b76a050e282
加密方式(security): 自适应
传输协议(network): ws
伪装类型(type): none
路径(不要落下/): /8768f5ff9/
底层传输安全: tls
=====================================
=========复制以下内容进行导入==========
vmess://ewogICAgInYiOiAiMiIsCiAgICAicHMiOiAidjIubW9vaW0uY29tIiwKICAgICJhZGQiOiAidjIubW9vaW0uY29tIiwKICAgICJwb3J0IjogIjQ0MyIsCiAgICAiaWQiOiAiYTczNmIxZWYtYTk2ZS00ZjM1LThmNmItNWI3NmEwNTBlMjgyIiwKICAgICJhaWQiOiAiMCIsCiAgICAibmV0IjogIndzIiwKICAgICJ0eXBlIjogIm5vbmUiLAogICAgImhvc3QiOiAidjIubW9vaW0uY29tIiwKICAgICJwYXRoIjogIi84NzY4ZjVmZjkvIiwKICAgICJ0bHMiOiAidGxzIgp9
=========复制以上内容进行导入==========
{"level":"info","ts":1656863534.6378205,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
{"level":"warn","ts":1656863534.6384249,"logger":"caddyfile","msg":"Unnecessary header_up X-Forwarded-For: the reverse proxy's default behavior is to pass headers to the upstream"}
.......
复制vmess://….这一串到你的passwall或者clash执行导入即可使用
如果你的vps还提供其他web服务
一般来说常用的就是nginx-proxy和traefik了,此时不要填EMAIL环境变量,这样就只会提供80端口的http服务,由nginx-proxy或者traefik来申请证书,并反代到后端即可。
这里给个traefik的docker-compose样例
version: '3'
networks:
work-net:
external: true
services:
caddy_v2ray:
image: anerg/v2ray
container_name: caddy_v2ray
restart: always
volumes:
- v2ray:/etc/v2ray:rw
- caddy:/etc/caddy:rw
networks:
- work-net
environment:
- "DOMAIN=v3.mooim.com"
labels:
- "traefik.enable=true"
- "traefik.http.routers.v2ray.rule=Host(`v3.mooim.com`)"
- "traefik.http.routers.v2ray.tls=true"
- "traefik.http.routers.v2ray.tls.certresolver=leresolver"
- "traefik.http.routers.v2ray.entrypoints=websecure"
- "traefik.http.routers.v2ray.service=v2ray"
- "traefik.http.services.v2ray.loadbalancer.server.port=80"
- "traefik.http.routers.v2ray.middlewares=gzip-compress"
volumes:
v2ray:
name: v2ray_v2ray
caddy:
name: v2ray_caddy
注意,这里的work-net需要与traefik使用相同的配置,如果你没有自定义的docker网络的话,把networks相关的配置都删掉
这样,由traefik去申请证书就可以了
当你访问你的默认域名的时候是一个伪装的域名出售页面,翻墙流量经由TLS加密走websocket,这是目前最安全的v2ray方式。