newanyproxy
v4.1.2
Published
A fully configurable HTTP/HTTPS proxy in Node.js
Readme
AnyProxy
AnyProxy is A fully configurable HTTP/HTTPS proxy in NodeJS.
Home page : AnyProxy.io
Issue: https://github.com/alibaba/anyproxy/issues
AnyProxy是一个基于NodeJS的,可供插件配置的HTTP/HTTPS代理服务器。
主页:AnyProxy.io,访问可能需要稳定的国际网络环境

Legacy doc of version 3.x : https://github.com/alibaba/anyproxy/wiki/3.x-docs
TLS 指纹(JA3/JA4)配置说明
本分支新增了对“按请求设置上游 TLS 指纹”的支持。可通过请求头或规则两种方式使用:
通过请求头(单次请求生效)
- JA3 字符串:
- 头名:
X-Anyproxy-JA3 - 示例值:
771,4865-4866-4867,0-11-10,29-23-24,0
- 头名:
- 简化 JA4 对象(JSON 字符串):
- 头名:
X-Anyproxy-JA4 - 示例值:
{"tlsVersion":"TLSv1.2","ciphers":["ECDHE-RSA-AES128-GCM-SHA256"],"curves":["X25519","P-256"],"sigalgs":["rsa_pss_rsae_sha256"]}
- 头名:
- curl 示例:
curl -x http://127.0.0.1:8001 -H 'X-Anyproxy-JA3: 771,4865-4866-4867,0-11-10,29-23-24,0' https://example.com/curl -x http://127.0.0.1:8001 -H 'X-Anyproxy-JA4: {"tlsVersion":"TLSv1.2","ciphers":["ECDHE-RSA-AES128-GCM-SHA256"],"curves":["X25519","P-256"],"sigalgs":["rsa_pss_rsae_sha256"]}' https://example.com/
- JA3 字符串:
通过规则(可按域名/路径灵活控制)
- 在
rule_sample/sample_set_tls_fingerprint.js中有完整示例:- 返回 JA3 字符串或简化 JA4 对象到
beforeSendRequest的返回值中,字段名为tlsFingerprint
- 返回 JA3 字符串或简化 JA4 对象到
- 在
说明:
- 该能力仅影响代理与上游服务器的 TLS 握手,不改变客户端原始指纹。
- Node.js/openssl 对 ClientHello 的可控性有限,无法 100% 复刻任意 JA3/JA4;主要可控协议版本、cipher、曲线、签名算法。
- 自定义头
X-Anyproxy-JA3/X-Anyproxy-JA4会在转发给上游前自动移除。
