Net4People的一篇Issue了解到,本次被封禁的协议包括TrojanXrayV2Ray TLS+WebsocketVLESSgRPC。采用uTLS客户端连接代理服务器后,伪装成chrome指纹,暂时未发现端口封禁的情况。

由于NaïveProxy 使用 Chromium 的网络堆栈来伪装流量绕过GFW检测,所幸逃过一劫。现提供一种基于Docker搭建NaïveProxy服务器的思路,本文所涉及的服务端工具有CaddyDockerdocker-compose ,客户端工具有NaïveProxyV2RayN

Docker相关环境部署

Docker环境部署参照Docker Engine installation overview | Docker Documentation

docker-compose工具安装

  1. Releases · docker/compose选择VPS所对应的docker-compose文件下载,笔者选择的是docker-compose-linux-x86_64

  2. 重命名文件为docker-compose,并赋予运行权限chmod +x docker-compose

  3. 将docker-compose移动到/usr/local/bin目录下

Docker镜像编译

这里提供一份Dockerfile文件

FROM golang:alpine
​
WORKDIR /app
RUN go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
RUN xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive
RUN chmod +x caddy
​
​
FROM caddy:alpine
COPY --from=0 /app/caddy /usr/bin/caddy

新建文件夹caddy_docker,在此文件夹下创建文件Dockerfile并写入我所提供的配置,然后在caddy_docker文件夹下运行

docker build -t caddy .

此命令运行成功后会生成名为caddy的镜像文件。

由于编译过程中会生成约2GB左右的中间镜像,所以得确保VPS剩余磁盘空间有2G以上,生成完成后通过docker image ls可以查看到一个没有tag的镜像,大小约2G,可以用docker rmi [Image_ID]删除该镜像释放空间,其中[Image_ID]为临时镜像的ID。

当然你也可以直接采用笔者编译好的docker镜像,直接pull下来就行

docker pull s0ph0n/caddy:latest

原理: 由于caddy不能采用官方提供的版本,需自行编译,参考naiveproxy Wiki可知,需要包含naïvecaddy forwardproxy分支编译的Caddy v2才会具有forward_proxy的相关功能

服务端配置

在刚才的caddy_docker文件夹下新建两个文件写入以下信息

Caddyfile
:443 [你的域名]:443 {
        tls [你的邮箱]
        route {
                forward_proxy {
                        basic_auth [用户名] [密码]
                        hide_ip
                        hide_via
                        probe_resistance
                }
                root * /usr/share/caddy
                file_server
        }
}
docker-compose.yml
version: '3'
​
#这里的image如果采用笔者提供的镜像,应该是s0ph0n/caddy:latest
services:
  caddy:
    image: caddy
    privileged: true
    container_name: caddy
    restart: always
    tty: true
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./data:/data
      - ./Caddyfile:/etc/caddy/Caddyfile

上述域名、用户、密码、邮箱需要换成自己的,不带方括号,然后运行docker-compose up -d即可成功运行服务端,如果想将伪装网站换成自己的,需要将网站目录挂载到container下的/usr/share/caddy

客户端配置

本次采用的客户端为NaïveProxyV2RayN

  1. Releases · 2dust/v2rayN下载最新版的V2RayN.zipV2RayN-core.zip,解压V2RayN.zip,并将V2RayN-core.zip解压后覆盖解压后的V2RayN.zip

  2. Releases · klzgrad/naiveproxy,下载win-x64版本的压缩文件,解压后找到naive.exe放入V2RayN根目录

  3. 创建config.json文件,内容如下

    {
      "listen": "socks://127.0.0.1:8088",
      "proxy": "https://[用户名]:[密码]@[你的域名]",
      "log": ""
    }

    其中用户名,密码,域名填你自己之前在Caddyfile里面配置的,不带方括号

  4. 开启V2RayN,依次进入服务器 添加自定义配置服务器 别名(随便写) 浏览(选择写好的config.json文件) core类型(navieproxy) socks端口(8088) 确定

  5. 右键屏幕右下角V字小图标系统代理自动配置系统代理

至此,服务端与客户端配置完成。


本站由 TrillionByte 使用 Stellar 创建。