caddy自行编译, 同时打包 naive 和 trojan 插件共存, 同时可以作为V2ray/Xray的前置web服务器

搭建 Go 环境

wget https://go.dev/dl/go1.19.5.linux-amd64.tar.gz

rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz

export PATH=$PATH:/usr/local/go/bin

检查环境是否搭好了

go version

应该输出 go 的版本

编译

安装 xcaddy

go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

编译 caddy 带上插件 naive 和 trojan

~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive --with github.com/imgk/caddy-trojan


使用

配置Caddyfile

{
  order forward_proxy before file_server
  order trojan before file_server
  servers :443 {
    listener_wrappers {
      trojan
    }
  }
  trojan {
    caddy
    no_proxy
    users e16d9cb045d7  #trojan密码
  }
}
:443, npp.tzzhu.gq:443 {
  tls e16d9cb045d7@gmail.com
  forward_proxy {
    basic_auth e16d9cb045d7 e16d9cb045d7  #naieveproxy密码
    hide_ip
    hide_via
    probe_resistance
  }
  file_server {
    root /var/www/html
  }
}
trj.tzzhu.gq:443 {
  tls e16d9cb045d7@gmail.com
  trojan {
    connect_method
    websocket
  }
  file_server {
    root /var/www/html
  }
}
ray.tzzhu.gq
{
    tls e16d9cb045d7@gmail.com
    encode gzip

    handle_path /06863aab8b84 {  #节点路径
        reverse_proxy localhost:40947  #*Ray监听的内部端口
    }
    handle {
        reverse_proxy https://zelikk.blogspot.com {
            trusted_proxies 0.0.0.0/0
            header_up Host {upstream_hostport}
        }
    }
}

测试方法

在自己的VPS上运行NaiveProxy客户端 对接自己的服务端 排错 Troubleshoot

在自己的VPS上运行Trojan-go客户端 对接自己的服务端 排错 Troubleshoot

在自己的VPS上运行V2Ray客户端 对接自己的服务端 排错 Troubleshoot

参考

Go 官方安装过程

https://go.dev/doc/install

NaïveProxy 官方编译流程

https://github.com/klzgrad/naiveproxy

xcaddy使用说明

https://caddyserver.com/docs/build#xcaddy

naive编译参数

https://github.com/klzgrad/naiveproxy#server-setup

caddy-trojan编译参数

https://github.com/imgk/caddy-trojan#build-with-xcaddy

======

后记

单Trojan的Caddyfile

{
  order trojan before file_server
  servers :443 {
    listener_wrappers {
      trojan
    }
  }
  trojan {
    caddy
    no_proxy
    users e16d9cb045d7  #trojan密码
  }
}
trj.tzzhu.gq:443 {
  tls e16d9cb045d7@gmail.com
  trojan {
    connect_method
    websocket
  }
  file_server {
    root /var/www/html
  }
}

单Naive的Caddyfile

{
  order forward_proxy before file_server
}
:443, npp.tzzhu.gq:443 {
  tls e16d9cb045d7@gmail.com
  forward_proxy {
    basic_auth e16d9cb045d7 e16d9cb045d7  #naiveproxy密码
    hide_ip
    hide_via
    probe_resistance
  }
  file_server {
    root /var/www/html
  }
}

单*Ray的Caddyfile

ray.tzzhu.gq
{
    tls e16d9cb045d7@gmail.com
    encode gzip

    handle_path /06863aab8b84 {  #节点路径
        reverse_proxy localhost:40947  #*Ray监听的内部端口
    }
    handle {
        reverse_proxy https://zelikk.blogspot.com {
            trusted_proxies 0.0.0.0/0
            header_up Host {upstream_hostport}
        }
    }
}


评论

  1. 最新版的 caddy 用到最新版的 go
    现在是 go1.21.6.linux-amd64.tar.gz 了

    回复删除

发表评论

The Hot3 in Last 30 Days

RackNerd VPS搭V2Ray WSS梯子 年付 $10.98 1G端口 3T流量 17G存储 1GB内存