最近,或许你已经感觉到V2Ray节点受到干扰的频率越来越高,同时很多机场相继增加了Trojan节点,甚至有机场完全转型为纯Trojan机场,但仍没有更好地绕过GFW的检测干扰。在特殊时期,我们发现大量使用Trojan协议VPS的IP地址被阻断,致使Trojan协议的机场节点暂时不再更新订阅。伴随Trojan技术逐渐被GFW精准识别,NaiveProxy迅速走上了前台。NaiveProxy是一种基于 HTTP/2 协议,并类似于Trojan协议,伪装成最流行的HTTPS流量的新代理技术协议。另外,据我推测,NaiveProxy协议可能跟 Trojan-Qt5 有关系,因为曾经最终版本的Trojan-Qt5已经支持了NaiveProxy,还有Snell。今天,我们抛开这些暂且不谈,一灯不是和尚跟大家聊聊NaiveProxy一键搭建教程。
本文目录
1、NaiveProxy是什么?
NaiveProxy,挪威语叫NaïveProxy,翻译成中文:“天真的代理”,是2019年底由klzgrad大神开发的一种突破GFW网络审查的新型科学上网代理技术,它使用Chrome的网络堆栈来伪装流量,具有较强的抗审查能力和较低的可检测性,重用Chrome网络堆栈是确保性能和安全性的最佳实践。
NaiveProxy还可以缓解以下流量攻击:
- 网站指纹识别/流量分类:通过 HTTP/2 中的流量多路复用来缓解。
- TLS参数指纹识别:因重用Chrome的网络堆栈而失败。
- 主动探测:被应用程序前端击败,即通过应用层路由将代理服务器隐藏在常用前端的后面。
- 基于长度的流量分析:通过长度填充缓解。
该代码由一系列补丁程序组成,这些补丁程序在每个新的Chrome版本中都经过了变形和重新设计。
NaiveProxy项目地址:https://github.com/klzgrad/naiveproxy
2、NaiveProxy的工作原理
工作原理架构:[浏览器 → NaiveProxy客户端] ⟶ GFW ⟶ [常用前端 → NaiveProxy服务端] ⟶ 互联网
由于 NaiveProxy 使用Chrome的网络堆栈,GFW审查截获的流量行为与Chrome和标准前端(如 Caddy、HAProxy)之间的常规 HTTP/2 流量完全相同。前端还会将未经身份验证的用户和活动探测器重新路由到后端HTTP服务器,从而使得无法检测到代理的存在,比如像这样:探查⟶常用前端⟶网站页面。
从 NaiveProxy V84 版本开始,用户可以在没有Naive服务器的情况下运行Caddy转发代理的Naive分支。
3、NaiveProxy与Trojan的优点与区别
Trojan最大的优点就是伪装成互联网最常见的HTTPS流量,而NaiveProxy最大的优势不仅伪装成 HTTP/2 的流量,而且使用互联网最常用的浏览器Chrome网络堆栈的指纹,更加难以被识别,而且这些也是Go语言模仿不了的。
4、NaiveProxy服务器搭建教程
(1)优质国外VPS推荐
国外VPS哪家好?搭梯子VPS推荐您选择 Vultr(推荐)、搬瓦工(BandwagonHOST) 或 Hostwinds 等大公司的VPS。其中,Vultr可以方便且无限制地免费更换IP,而且在全球拥有30个数据中心,但线路没有对亚洲和中国大陆进行特别优化,不同数据中心对中国大陆不同地区的速度和稳定性有差别,综合性价比最高,请选择最适合自己当网络环境的机房;其次,我推荐你使用 BandwagonHOST(搬瓦工),因为它的速度和稳定性更好,尤其是 CN2/CN2 GIA/香港线路,速度和稳定性都是首屈一指的,而CN2线路套餐的综合性价比高,但现在搬瓦工VPS换IP非常贵;鉴于Hostwinds在国外口碑非常好,服务器非常安全稳定,支持中文客服,而且在中国大陆的知名度相对没有Vultr和搬瓦工高,所以其IP可用率较好,速度也很稳定,而且还支持免费更换IP,所以我比较推荐您选Hostwinds,其客户服务是我见过最好的,没有之一。
关于 Vultr 的账户注册、套餐购买和VPS服务器系统安装与远程管理的详细使用教程,请参考 最新Vultr账户注册、VPS套餐购买与服务器系统安装以及SSH远程管理的详细图文教程,鉴于图文教程已经非常详尽,我这里就不再赘述,我后面的图文教程均以 Vultr VPS 为例进行演示。
如果你是老鸟的话,任何一家VPS都有值得推荐的优势,如果你追求速度和稳定性的话,我推荐您使用有中国电信 CN2 GIA、中国联通 CUVIP(AS9929) 或移动CMI,甚至日本软银等高端线路的VPS。不过,三网回程走联通AS4837线路的VPS,性价比也比较高。当然如果有香港/台湾/日本地区的数据中心就更好,网络延迟低,速度也比较快。虽然这些线路很好,但价格也是比较贵,尤其香港/台湾/日本地区的 CN2/CN2 GIA/CUVIP 线路过于昂贵,普通用户真心用不起,我们一般选择美国或欧洲机房的这些高端线路,性价比相对非常高。
(2)手动搭建Naiveproxy教程
1)安装基础组件
apt update && apt -y install libnss3 wget unzip cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2)安装 Caddy && Naiveproxy
wget https://github.com/charlieethan/firewall-proxy/releases/download/2.1.1/caddy chmod +x caddy && setcap cap_net_bind_service=+ep ./caddy
3)下载伪装网站模板
mkdir -p /var/www/html && cd /var/www/html wget https://github.com/charlieethan/firewall-proxy/releases/download/2.1.1-t/6.zip && unzip 6.zip
4)修改配置文件
cd && cat > caddy.json <<EOF { "apps": { "http": { "servers": { "srv0": { "listen": [":443"], "routes": [{ "handle": [{ "handler": "forward_proxy", "hide_ip": true, "hide_via": true, "auth_user": "user_name", #改为你的用户名 "auth_pass": "your_password", #改为你的密码 "probe_resistance": {"domain": "unsplash.com:443"} }] }, { "match": [{"host": ["your_domain.com"]}], #改为你的域名 "handle": [{ "handler": "file_server", "root": "/var/www/html" }], "terminal": true }], "tls_connection_policies": [{ "match": {"sni": ["your_domain.com"]} #改为你的域名 }] } } }, "tls": { "automation": { "policies": [{ "subjects": ["your_domain.com"], #改为你的域名 "issuer": { "module": "acme", "email": "your@email.com" #改为你的邮箱地址 } }] } } } } EOF
5)启动服务
nohup ./caddy run --config caddy.json >caddy.log 2<&1 &
6)安装并启用 BBR 加速
cd /usr/src && wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh
温馨提醒:如果修改版BBR加速模块工作不正常,请使用原版BBR模块加速。
由于新版本Linux系统自带BBR加速模块,所以你可以直接执行以下命令,启用原版BBR加速。命令如下:
bash -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf' bash -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf' sysctl -p
至此,NaiveProxy服务器端就搭建完成了。
(3)NaiveProxy一键搭建脚本(推荐)
1)执行一键搭建脚本命令
wget -N --no-check-certificate https://raw.githubusercontent.com/blog-misaka/naiveproxy-script/main/naiveproxy.sh && bash naiveproxy.sh
执行后,如下图所示:
2)NaiveProxy一键配置脚本参数设置
我们需要按脚本提示,依次输入“需要使用在NaiveProxy的域名、NaiveProxy的用户名和NaiveProxy的密码”,回车后,即可自动生成NaiveProxy配置文件和二维码,使用起来也挺简单的。
(4)NaiveProxy一键安装工具
ProxySU不仅仅是NaiveProxy一键搭建工具,它还是 V2ray/Trojan/NaiveProxy/Trojan-Go/ShadowsocksR(SSR)/Shadowsocks-libev及相关插件 一键安装工具。ProxySU支持BBR一键开启,但目前仅支持CentOS7/8、Debian9/10、Ubuntu18.04及以上系统,支持语言包括:English、简体中文、正体(繁体)中文。
由此可见,ProxySU功能是非常强悍的,以后我也许会单独写ProxySU教程文章介绍。此工具是一个仅支持Windows系统的工具软件,ProxySU 4.1.6 版运行后界面如下图所示:
ProxySU项目官网:https://github.com/proxysu/windows
ProxySU工具官方下载:点击下载ProxySU工具
ProxySU科学上网工具官方最新版网盘备份下载:
关于 ProxySU 一键安装工具的介绍与使用教程,请参考文章 ProxySU – 一款支持 V2ray/Trojan/NaiveProxy/Trojan-Go/ShadowsocksR(SSR)/Shadowsocks-libev/MTProto+TLS 全协议全能的一键安装工具
5、NaiveProxy客户端下载
NaiveProxy客户端支持Android/Windows/MacOS/Linux及各种OpenWrt系统平台,但我们应该始终使用最新版本来保持与Chrome相同的签名。目前,虽然NaiveProxy有官方客户端,但非常简陋难用。一灯不是和尚推荐大家使用支持NaiveProxy协议的第三方客户端,如AnXray、Trojan-Qt5、Qv2ray(需要配合NaiveProxy 插件 v1.0)和 NaiveSharp(作者已删库,最新版为 NaiveSharp 0.6.4 Preview)等。现在,主流的代理客户端都已经开始支持NaiveProxy协议,比如 V2RayN、V2RayNG、Anxray 和 Matsuri 等,所以我推荐大家使用这些一直在更新的主流客户端,放弃那些老旧的客户端。
注意事项:在Linux上,必须先安装libnss3,然后才能使用预构建的二进制文件。
NaiveProxy客户端下载:点击下载NaiveProxy客户端官方版
【知识科普】
Qv2ray是使用 Qt 框架的跨平台 V2Ray 客户端,支持 Windows/Linux/macOS,配合插件系统支持 SSR / Trojan / Trojan-Go / NaiveProxy 等,已经停止更新。
Qv2ray项目地址:https://github.com/Qv2ray/Qv2ray
实际上,Qv2ray 插件是 Qv2ray 的扩展,能让你使用更多功能特性。当前,Qv2ray 项目组共发布以下 6 个我们维护的插件:
- QvSSPlugin – 让你能在 Qv2ray 中启用 Shadowsocks SIP003 完整支持
- QvSSRPlugin – 让你能在 Qv2ray 中使用 ShadowsocksR
- QvTrojanPlugin – 让你能在 Qv2ray 中使用 Trojan
- QvNaiveProxyPlugin – 让你能在 Qv2ray 中使用 NaiveProxy
- QvCommandPlugin – 当特殊事件发生时,运行任意指定的命令
- QvTrojan-GoPlugin – 让你能在 Qv2ray 中使用 Trojan-Go
6、SS/SSR/V2Ray/Trojan机场推荐
现在,虽然已经有大神开发了可以在本地直接执行的NaiveProxy一键安装工具,但相关配套技术和工具还不够成熟,NaiveProxy速度也没有优势,而且使用起来有些麻烦,至今还没有NaiveProxy机场使用这种技术。如果你无法独立完成搭建NaiveProxy服务器节点或对NaiveProxy速度不够满意的话,那么我建议 Shadowsocks(SS)/ShadowsocksR(SSR)/V2Ray(VMess/VLESS)/Trojan/Xray 等协议搭建代理服务器,技术更加成熟稳定。当然,如果你是新手小白,或者不想折腾,而是把更多精力放在工作和生活上,那么我建议你付费购买优质SS/SSR/V2Ray/Trojan机场节点,可以参考文章 优质高速稳定SS/SSR/Xray/Trojan/V2Ray机场推荐 | 网络加速器梯子推荐,挑选一家最适合自己的优质机场加速器梯子,更省事、省时、省心。
本文由一灯不是和尚于2023年3月17日更新;如果您有什么意见或建议,请在文章下面评论区留言反馈。
脚本的链接失效了,可以更新一下吗?谢谢!
wget https://github.com/charlieethan/firewall-proxy/releases/download/2.1.1/caddy
https://github.com/charlieethan/firewall-proxy/releases/download/2.1.1-t/6.zip
我推荐你使用ProxySU工具搭建,更简单、方便。
我用这个ProxySU安装,更换其他端口,会报错。客户端日志如下
:ERROR:ssl_client_socket_impl.cc(983)] handshake failed; returned -1, SSL error code 1, net_error -107
443端口被封 想换其他端口
换工具呗,用一键脚本搭建不是更好吗?另外,NaiveProxy是基于Chromium内核的浏览器的,就是为了利用80或443端口,换其他的失去了意义,还不如使用其他协议搭建呢。
好,支持。
问一下naiveproxy支持把非代理流量反代理到其他端口吗?还是只能用file server? 谢谢
现在不可以,后期也许有大老开发。
尝试一波
一哥,这个官方客户端能不能不借助v2rayN等其他工具直接在win11运行的?改好config文件后直接双击naive.exe不能用呀
应该是可以的,因为11跟10是同样的内核,只是壳不一样而已。
请问一下有哪个openwrt固件可以用这个协议吗?大部分ssrplus+都不支持这个协议呀
目前不支持,等以后的新版,肯定慢慢就会有大佬去开发支持了。
passwall和ssrplus+应该都支持的呀 我R2S软路由就在用
固件用的这个
https://github.com/DHDAXCW/NanoPi-R2S-rk3328
naiveproxy的客户端其实是真的不方便,不过暂时感觉trojan+nginx反代没有JARM的问题,也算能用,tls with tls的特征感觉墙应该不是很好利用,在网络流量巨大的环境下精确识别数据包大小也太牛逼了(这算力太恐怖了吧)。不过阻断也断断续续遇到过,不过都是过一会就恢复了,让人摸不着头脑,不知道naiveproxy能不能改善,不过也许值得一试。
从目前来看,Naiveproxy值得尝试,据说最近所有关于TLS代理模式的流量都受到了影响,而Naiveproxy没有发现异常,未知真假。
反正我443和80端口都封了,用的xray xtls
可以使用其他端口的,现在一般不直接封IP,经常封端口。
Trojan最大的优点就是伪装成互联网最常见的HTTPS流量,而NaiveProxy最大的优势不仅伪装成 HTTP/2 的流量,而且使用互联网最常用的浏览器Chrome网络堆栈的指纹,更加难以被识别,而且这些也是Go语言模仿不了的。
?????
麻烦看下naiveproxy开发语言是啥?
用不着杠,我这原来都是从人家官方文档复制过来的。另外,回去好好学习语文,多做阅读理解试题,顺便再多喝核桃露。
navieproxy 好像也不能用了,我测试过的,至少重庆联通和四川电信是不能用了。
新技术也被针对了?相信以后会有更多开发者跟进的。但是,我还是不太相信这么快就被针对了,因为它非常小众,应该是目前最牛逼的伪装技术之一。
从2020年暑假折腾起Naive的我表示你绝对是某个地方配置错了,用原版客户端加V2RayN的PAC挺稳啊 成都和绵阳电信实测
以上代码来自于官方文档,如果你说错了,那就是官方自己都错了,而且我自己测试过,这代码是没有问题的。