naiveproxy与wstunnel共存

naiveproxy简介

NaïveProxy 使用 Chromium 的网络协议栈来伪装流量,具有很强的抗审查能力和低可探测性。使用 Chrome 浏览器的堆栈还能确保最佳性能和安全性。

github项目地址:https://github.com/klzgrad/naiveproxy

naiveproxy设计模式

naiveproxy的服务端被整合到一个正向代理(foward proxy)模块中,理论上其他的代理软件如Nginx haproxy都能整合进入,官方给出的方法是在caddy forwardproxy模块编译的时候将naiveproxy整合进入。

naiveproxy服务端官方安装

首先要安装go语言,这个参考go官方文档。安装好执行下列命令。

go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy=github.com/klzgrad/forwardproxy@naive

编译完成后会得到一个caddy的二进制文件。

编写Caddyfile配置文件,官方配置如下:

{
  order forward_proxy before file_server
}
:443, example.com {
  tls me@example.com
  forward_proxy {
    basic_auth user pass
    hide_ip
    hide_via
    probe_resistance
  }
  file_server {
    root /var/www/html
  }
}

以上完全就是caddy web服务器的配置,只不过配置文件多了forward_proxy而已。

上一篇文章中给出了wstunnel的配置,我们将编译了naiveproxy的caddy文件的配置文件稍微修改一下,使得naiveproxy与wstunnel 共存。

me.example.com {
        route {
                forward_proxy {  
                        basic_auth yourname pass
                        hide_ip
                        hide_via
                        probe_resistance
                }
                @websocket {
                        path /wstunnel/*
                        header Upgrade websocket
                }

                reverse_proxy @websocket 127.0.0.1:8080 {
                        header_up Host {http.request.header.Host}
                        header_up X-Forwarded-For {http.request.header.X-Forwarded-For}
                        header_up Upgrade {http.request.header.Upgrade}
                        header_up Connection "upgrade"
                }

                reverse_proxy https://me.reverseproxy.com {
                        header_up Host {upstream_hostport}
                        transport http {
                                tls
                        }
                }
        }
}


:443 {
        route {
                forward_proxy {
                        basic_auth yourname pass
                        hide_ip
                        hide_via
                        probe_resistance
                }
                reverse_proxy https://me.reverseproxy.com {
                        header_up Host {upstream_hostport}
                        transport http {
                                tls
                        }
                }
        }
}

配置说明:

  1. forward_proxy与官方配置相同,其中能够正确匹配用户名(yourname)密码(pass)的流量走naiveproxy。
  2. 如果为websocket协议路径匹配/wstunnel由caddy反向代理到后端wstnnel服务端。这一步堪称艺术。
  3. 不符合以上流量的反代后端me.reverseproxy.com网站

给出wstunnel服务端配置,wstunnel配置明文没有tls加密的websocket协议,加密过程由caddy进行。

/usr/local/bin/wstunnel server ws://127.0.0.1:8080 --restrict-http-upgrade-path-prefix wstunnel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值