使用Caddy反向代理Project V

简介

Caddy是一款轻量化的软件,下面记录Caddy反向代理 Project V 的步骤

下载安装

假设使用64位的Linux系统, 并使用systemd管理方式(Centos7+,Debian8+)管理软件的启动,输入以下命令即可安装成功:

1
2
curl https://getcaddy.com | bash -s personal http.filemanager,http.forwardproxy,http.proxyprotocol
curl -s https://raw.githubusercontent.com/GEM7/My_scripts/master/caddy/caddy.service -o /etc/systemd/system/caddy.service

生成配置文件

因为启动管理器中固化的配置文件路径是/etc/Caddyfile,所以我们直接创建这个文件:

1
touch /etc/Caddyfile

编辑Caddyfile

Caddyfile 是 Caddy 的配置文件,编辑它来寻求我们需要的功能。主要要实现以下两种分流方式,二选一即可

路径分流

1
2
3
4
5
6
7
8
9
10
11
12
yourdomain.com:443 {
root /www
gzip
index index.html
tls /etc/v2ray/v2ray.crt /etc/v2ray/v2ray.key
proxy /ws localhost:9999 {
websocket
header_upstream Connection {>Connection}
header_upstream Upgrade {>Upgrade}
header_upstream Host {Host}
}
}

其中
yourdomain.com 改成自己的域名
/ws 改成自己的路径,(无须追求复杂,不容易猜出来即可)
9999 改成 Project V 的 WS 监听的内网地址

Host 分流

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
yourdomain.com:443 {
root /www
gzip
index index.html
tls /etc/v2ray/v2ray.crt /etc/v2ray/v2ray.key
}
fakedomain.com:443 {
tls /etc/v2ray/v2ray.crt /etc/v2ray/v2ray.key
proxy / localhost:9999 {
websocket
header_upstream Connection {>Connection}
header_upstream Upgrade {>Upgrade}
header_upstream Host "yourdomain.com"
}
}

其中:
yourdomain.com 改成自己的域名
fakedomain.com 改成伪装的Host值,(可随意设置),服务端不做改变
9999 改成 Project V 的 WS 监听的内网地址

启动与停止

  • 启动
1
systemctl start caddy
  • 停止
1
systemctl stop caddy
  • 重启
1
systemctl restart caddy
  • 开机启动
1
systemctl enable caddy

附加玩法(非必须)

Caddy自身可以实现 http2 代理,只需要在上述配置中tls那一行下添加以下内容即可开启HTTP2 代理,HTTP2 代理性能不差并且可以与Project V 共存。

1
2
3
forwardproxy {
basicauth PROXY_USER PROXY_PASS
}

例如:第一个路径分流的配置添加HTTP2代理后全部配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
yourdomain.com:443 {
root /www
gzip
index index.html
tls /etc/v2ray/v2ray.crt /etc/v2ray/v2ray.key
forwardproxy {
basicauth PROXY_USER PROXY_PASS
}
proxy /ws localhost:9999 {
websocket
header_upstream Connection {>Connection}
header_upstream Upgrade {>Upgrade}
header_upstream Host {Host}
}
}

PROXY_USER是用来验证代理的用户名,务必设置!同理PROXY_PASS代表验证代理的密码,务必设置!!!

配置完成后,就相当于同时拥有了Project V 和 HTTP2代理了。

HTTP2 代理客户端配置

- Chrome:     ProxySwitchyOmega 插件,代理类型选择 https, 端口填443, 再点击右侧的小锁,输入用来验证代理的用户名和密码即可。
- Firefox:    Foxyproxy 插件,配置方式大同小异。
- IOS         SURGE   ,代理类型选择HTTPS,余下配置大同小异

完毕