本文最后更新于 2024-09-22,文章内容可能已经过时。

前提准备:

一台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执行以下命令
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执行以下命令
yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy
  • Centos8执行以下命令
dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf install caddy

配置Caddyfile

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

vi /etc/caddy/Caddyfile
  • 如果使用vps的IP直接访问,则在Caddyfile填写以下内容
:80 {
        reverse_proxy https://qyapi.weixin.qq.com {
                header_up Host {upstream_hostport}
        }
}

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

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

{upstream_hostport}为固定写法,不可改动;

  • 如使用已配置域名,则在Caddyfile填写以下内容
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:8080https://abc.xyz等。

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

docker方式

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

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

docker-compose

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

docker cli

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.comhttps://discord.gg

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