使用caddy搭建企微消息转发代理

一台 vps，国内外都可，需有公网 IPv4

系统支持：Debian、Ubuntu、Centos 均可

ssh 工具：

windows 平台：cmd、putty、finalshell 等

Mac 平台：terminal、iterm2、termius 等

懂基本 Linux 操作，如 vi，systemctl 等

Caddy 官方文档：https://caddyserver.com/docs/

安装 Caddy

按照系统版本，分行执行相关命令。

Debian、Ubuntu 执行以下命令

Copy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Centos7 执行以下命令

Copy
yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy

Centos8 执行以下命令

Copy
dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf install caddy

配置 Caddyfile ​

安装 Caddy 完成无报错后，使用 vi 在 /etc/caddy 下建立一个 Caddyfile 文件，如文件已存在，可删除文件内所有内容

Copy
vi /etc/caddy/Caddyfile

如果使用 vps 的 IP 直接访问，则在 Caddyfile 填写以下内容

Copy
:80 {
reverse_proxy https://qyapi.weixin.qq.com {
header_up Host {upstream_hostport}
}
}

其中 :80表示使用服务器的 80 端口，如使用其他端口，按需修改即可；

https://qyapi.weixin.qq.com为企微官方接口地址，不可改动；

{upstream_hostport}为固定写法，不可改动；

如使用已配置域名，则在 Caddyfile 填写以下内容

Copy
abc.xyz {
reverse_proxy https://qyapi.weixin.qq.com {
header_up Host {upstream_hostport}
}
}

其中，将abc.xyz修改为你的域名；

不带端口的情况下，根据域名证书情况，使用 https 或 http 访问，本教程无证书相关内容，请自行解决；

如需使用其他端口，在域名后增加即可，如abc.xyz:8080

重启 Caddy 服务

配置好 Caddyfile 文件保存后，使用systemctl restart caddy重启 Caddy 服务。如有报错，检查 Caddyfile 文件内容格式是否有误。

使用代理

在你需要使用此代理的软件内，将企微官方地址https://qyapi.weixin.qq.com修改为你在 Caddyfile 设置的地址或域名 + 端口 (80/443 无需填写端口)，如http://ip:8080，https://abc.xyz等。

如果网络不通，检查 vps 的防火墙是否开放了相关端口。

docker 方式

仅用微信转发的话，使用这个镜像htnanako/wxproxy，一条命令直接起容器就可用。映射的端口自定，容器启动之后按上一步使用代理填写即可用。

用代码实现的消息转发，不是反向代理了。

docker-compose

Copy
version: "3"
services:
wxproxy:
image: htnanako/wxproxy:latest
container_name: wxproxy
ports:
- 8000:8000
restart: unless-stopped

docker cli

Copy
docker run -d \
--name=wxproxy \
-p 8000:8000 \
--restart unless-stopped \
htnanako/wxproxy:latest

其他服务

telegram、discord 这类墙外软件，在 nas 无魔法环境时，也可使用 vps 进行代理。需要使用境外 vps。

与企业微信同理，将 Caddyfile 配置中的企微接口地址修改为相关接口地址。

telegram 接口地址：https://api.telegram.org

discord 接口地址：根据 discord 提供的 webhook 地址填写，如 https://discord.com、https://discord.gg 等

如果需要多个服务共存，复制多个完整配置，修改接口地址和域名或端口号，使用不同端口号或者不同子域名即可。

此文由 Mix Space 同步更新至 xLog
原始链接为 https://taikula.cool/posts/tutorial/shi-yong-caddy-da-jian-qi-wei-xiao-xi-zhuan-fa-dai-li