一:什么是 NaiveProxy
NaiveProxy,挪威语叫 NaïveProxy ,翻译成中文:“天真的代理”,是2019年底由 klzgrad 大神开发的一种新型网络代理技术,它使用Chrome的网络堆栈来伪装流量,具有较强的保护隐私能力和较低的可检测性,重用 Chrome 网络堆栈是确保性能和安全性的最佳实践,目前使用人数相对较少,在2022年几个特殊日子存活率据说还不错!搭建也是比较简单的。
NaiveProxy还可以缓解以下流量攻击:
- 网站指纹识别/流量分类:通过 HTTP/2 中的流量多路复用来缓解。
- TLS参数指纹识别:因重用Chrome的网络堆栈而失败。
- 主动探测:被应用程序前端击败,即通过应用层路由将代理服务器隐藏在常用前端的后面。
- 基于长度的流量分析:通过长度填充缓解。
该代码由一系列补丁程序组成,这些补丁程序在每个新的Chrome版本中都经过了变形和重新设计。
NaiveProxy项目地址:https://github.com/klzgrad/naiveproxy
NaiveProxy 是 Caddy Web 服务器的转发代理插件,一个插件都这么厉害。那么 Caddy 又是什么东西?
Caddy是什么
Caddy 是一个开源的,使用 Golang 编写,支持 HTTP/2 的 Web 服务端。它使用Golang 标准库提供HTTP 功能。 Caddy 一个显著的特性是默认启用HTTPS。它是第一个无需额外配置即可提供HTTPS 特性的Web 服务器。
作者 Matt Holt 于 2014 年 12 月开始开发 Caddy ,并于 2015 年 4 月发布第一个版本。在发布后的一年里,它的下载量超过了 20000 次,并在 GitHub 上获得了 4500 个 Star。
Caddy 支持各种 Web 技术,提供静态编译的二进制文件,支持 i386、amd64 和 ARM 架构上的 Windows、Mac、Linux、Android 和 BSD 操作系统。
Caddy 具有自动 HTTPS 的快速且可扩展的多平台 HTTP/3 Web 服务器
Caddy官网:https://caddyserver.com/
GitHub项目地址:https://github.com/caddyserver/caddy
二:NaiveProxy服务器搭建教程
需要注意的是443端口必须没有被Nginx等占用,也就是说以后建立网站不能用Nginx、apache作为web服务端。
1,手动搭建
安装 GO
Go官网下载地址:https://go.dev/dl/
在安装之前,首先使用 lscpu 查看一下服务器的CPU架构。“linux-amd64” cpu不同这里需要修改代码。
1 2 3 4 5 6 7 8 9 10 11 12 |
## 下载 GO 最新版
wget "https://go.dev/dl/$(curl https://go.dev/VERSION?m=text).linux-amd64.tar.gz"
## 解压至/usr/local/
tar -xf go*.linux-amd64.tar.gz -C /usr/local/
## 添加 Go 环境变量:
echo 'export GOROOT=/usr/local/go' >> /etc/profile
echo 'export PATH=$GOROOT/bin:$PATH' >> /etc/profile
## 使变量立即生效
source /etc/profile
|
检测golang有没有安装上,输入命令
go version
能够正常显示GO语言版本,就表示已经安装成功了。
安装NaiveProxy
由于NaiveProxy是和Caddy捆绑在一起编译的,所以你不能单独安装Caddy,务必按照命令执行。caddy 是用golang编译的具有自动TLS功能的HTTPS服务程序。
一定要安装带 forwardproxy 和 naive 插件的 caddy ,否则需要单独安装这两个 caddy 插件。
安装之后可以使用caddy list-modules | grep forward_proxy
命令来查看。
xcaddy项目地址:https://github.com/caddyserver/xcaddy
Xshell命令行输入命令:
apt install golang-go
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive
cp caddy /usr/bin/
/usr/bin/caddy version
setcap cap_net_bind_service=+ep /usr/bin/caddy
#使用setcap命令设置 /usr/bin/caddy 可以非ROOT用户启动1024以下端口。
setcap -r /usr/bin/caddy #清除附加权限。
编译完成后,将 caddy 文件夹拷贝到 /usr/bin 目录,之后查看一下是否编译成功。显示版本号,就已经编译成功了。
编译成功后,可以看到当前目录中存在一个名为caddy的文件。
Caddy.json配置文件:
https://www.vrrmr.net/Code/caddy.json 自己去下载修改。
使用 acme.sh 申请和自动续签 SSL 证书
#新建存放caddy.json的目录 mkdir /etc/caddy/ #把上边自己修改好的caddy.json放到/etc/caddy/里 #生成强密码,输入下面命令,在服务器上自动生成一串强密码。 cat /dev/urandom | tr -dc a-zA-Z0-9 | head -c32; echo;
启动服务
修改好配置文件后,启动 caddy 。在启动 caddy之前,你需要先格式化配置文件,否则会报错
# /etc/caddy/caddy.json 自己把caddy.json放在哪里下边代码就修改哪里
#格式化配置文件 caddy fmt --overwrite "/etc/caddy/caddy.json" caddy run --config "/etc/caddy/caddy.json"
# 以后台的方式启动 caddy caddy start --config /etc/caddy/caddy.json # 以前台的方式启动 caddy caddy run --config /etc/caddy/caddy.json # 停止 caddy stop # reload 配置文件 caddy reload --config /etc/caddy/caddy.json # 安装 CA 证书到本地目录 caddy trust # 格式化 Caddyfile caddy fmt --overwrite /etc/caddy/caddy.json
#关闭后台依然运行命令 nohup ./caddy run --config /etc/caddy/caddy.json >caddy.log 2<&1 &
如果需要可以手动创建一个自启动配置文件。注意不要使用命令来启动caddy。
vi /etc/systemd/system/naive.service
将下面内容粘贴到 naive.service 文件中后 :wq 保存退出vi编辑模式。
[Unit] Description=Caddy Documentation=https://caddyserver.com/docs/ After=network.target network-online.target Requires=network-online.target [Service] Type=notify User=root Group=root ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/caddy.json #根据自己的地址修改 ExecReload=/usr/bin/caddy reload --config /etc/caddy/caddy.json # #根据自己的地址修改 TimeoutStopSec=5s LimitNOFILE=1048576 LimitNPROC=512 PrivateTmp=true ProtectSystem=full AmbientCapabilities=CAP_NET_BIND_SERVICE [Install] WantedBy=multi-user.target
自启动文件创建完毕后,启动caddy:
#daemon-reload 加载新的 unit 配置文件 systemctl daemon-reload #enable 创建 unit 配置文件的软链 systemctl enable naive #start 启动配置文件 systemctl start naive #status 查看配置文件当前状态 systemctl status naive
查看以喜爱配置文件的当前状态,绿灯表示 caddy 已经启动成功了。
检查 Caddy 是否正在侦听端口80和443:
ss -tulpn | grep caddy
手动安装配置完毕:
2,一键安装脚本:3个一键脚本,大家自己选择用吧
1)执行一键搭建脚本命令:
yum install wget -y # 如果是debian系统是apt install wget wget https://raw.githubusercontent.com/imajeason/nas_tools/main/NaiveProxy/install.sh bash install.sh
2)执行一键搭建脚本命令:
apt update
apt install -y curl
bash <(curl -L https://github.com/crazypeace/naive/raw/main/install.sh)
3)执行一键搭建脚本命令:
wget -N https://gitlab.com/rwkgyg/naiveproxy-yg/raw/main/naiveproxy.sh && bash naiveproxy.sh
暂无评论内容