Noooste/azuretls-client

GitHub: Noooste/azuretls-client

一个基于 Go 的 HTTP 客户端库,能够伪造 TLS/JA3/JA4、HTTP/2 和 HTTP/3 指纹,让程序请求在服务器端呈现为真实浏览器流量。

Stars: 450 | Forks: 65

# AzureTLS Client [![GoDoc](https://godoc.org/github.com/Noooste/azuretls-client?status.svg)](https://godoc.org/github.com/Noooste/azuretls-client) [![codecov](https://codecov.io/gh/Noooste/azuretls-client/graph/badge.svg?token=XGHX707RK6)](https://codecov.io/gh/Noooste/azuretls-client) [![build](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/7bbda6cb83105319.svg)](https://github.com/Noooste/azuretls-client/actions/workflows/push.yml) [![Go Report Card](https://goreportcard.com/badge/Noooste/azuretls-client)](https://goreportcard.com/report/Noooste/azuretls-client) [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/Noooste/azuretls-client/blob/master/LICENSE) 一个专为 Go 打造的强大 HTTP 客户端,**简单易用**,同时在需要时为您提供**完全控制权**。 非常适合用于 API 客户端、网页抓取、测试,以及任何需要超越标准库功能但又不想增加复杂性的场景。 ## 安装 ``` go get github.com/Noooste/azuretls-client ``` ## 快速入门 - 30 秒上手 ``` package main import ( "fmt" "log" "github.com/Noooste/azuretls-client" ) func main() { session := azuretls.NewSession() defer session.Close() response, err := session.Get("https://api.github.com") if err != nil { log.Fatal(err) } fmt.Printf("Status: %d\n", response.StatusCode) fmt.Println(response.String()) } ``` **就是这样!** 只需创建一个 session 即可发起请求。它会自动使用 Chrome 的 TLS (JA3) 和 HTTP/2 指纹,让服务器认为这是一个真实的浏览器。 ## 常见任务 ### 发送带 JSON 的 POST 请求 ``` session := azuretls.NewSession() defer session.Close() data := map[string]string{ "name": "AzureTLS", "type": "HTTP Client", } response, err := session.Post("https://api.example.com/data", data) if err != nil { log.Fatal(err) } fmt.Printf("Status: %d\n", response.StatusCode) ``` ### 使用代理 ``` session := azuretls.NewSession() defer session.Close() // One line proxy setup: supports HTTP, HTTPS, SOCKS4, SOCKS5 err := session.SetProxy("http://username:password@proxy.example.com:8080") if err != nil { log.Fatal(err) } response, err := session.Get("https://api.ipify.org") ``` ### 浏览器模拟 ``` session := azuretls.NewSession() defer session.Close() // Default: Chrome fingerprint (already active, no configuration needed!) // Want to mimic a different browser? Just change it: session.Browser = azuretls.Firefox // or Safari, Edge, etc. response, err := session.Get("https://example.com") ``` ### 自定义 Header 顺序 ``` session := azuretls.NewSession() defer session.Close() // Precise control over header order session.OrderedHeaders = azuretls.OrderedHeaders{ {"User-Agent", "MyApp/1.0"}, {"Accept", "application/json"}, {"Authorization", "Bearer token123"}, } response, err := session.Get("https://api.example.com") ``` ## 为什么选择 AzureTLS 而不是标准库? | 功能 | net/http | AzureTLS | |---------|----------|------------------------------| | API 风格 | 基于包或 Client | 基于 Session | | 浏览器指纹 | ❌ 看起来像 Go | ✅ **默认使用 Chrome 指纹** | | Cookie 管理 | 需手动设置 | ✅ 自动 Cookie Jar | | Header 排序 | ❌ | ✅ 内置 | | 代理支持 | 需手动设置拨号器 | ✅ `session.SetProxy()` | | 多种代理类型 | 手动设置 | ✅ HTTP/SOCKS4/SOCKS5 | | 自定义 TLS (JA3/JA4) | ❌ | ✅ 简单易用 | | HTTP/2 自定义 | ❌ | ✅ 简单易用 | | HTTP/3 支持 | ❌ | ✅ 简单易用 | | 浏览器预设 | ❌ | ✅ Chrome/Firefox/Safari/Edge | ## 🌟 核心特性 - **🌐 现代协议**:支持 HTTP/1.1、HTTP/2 和 HTTP/3 - **🔧 TLS 指纹伪造**:完全控制 ClientHello(JA3/JA4) - **🎭 浏览器模拟**:内置 Chrome、Firefox、Safari、Edge 预设 - **🔗 高级代理支持**:支持带身份验证的 HTTP、HTTPS、SOCKS4、SOCKS5。 - **⛓️ 代理链**:支持多跳代理连接以增强匿名性 - **📋 Header 控制**:精确的排序和自定义 Header - **🍪 Cookie 管理**:使用持久化 Jar 进行自动处理 - **🔒 SSL Pinning**:通过证书验证增强安全性 - **🐛 调试工具**:请求日志记录和导出功能 ## 文档 - 📖 **[完整 API 参考](./examples/README.md)**:所有功能、方法和选项 - 💬 **[示例目录](./examples/)**:可运行的代码示例 - 🌍 **[CFFI 文档](./cffi/README.md)**:在其他语言中使用 AzureTLS ### 了解更多 - **发起请求**:GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS ([examples/README.md](./examples/README.md#make-requests)) - **TLS 指纹**:JA3/JA4 自定义 ([examples/README.md](./examples/README.md#modify-tls-client-hello-ja3)) - **HTTP/2 和 HTTP/3**:协议自定义 ([examples/README.md](./examples/README.md#modify-http2)) - **代理管理**:高级代理功能 ([examples/README.md](./examples/README.md#proxy)) - **Websockets**:WebSocket 支持 ([examples/README.md](./examples/README.md#websocket)) - **SSL Pinning**:证书验证 ([examples/README.md](./examples/README.md#ssl-pinning)) ## 使用场景 **适用于:** - 🔌 **API 集成**:默认伪装成真实浏览器的 REST 客户端 - 🌐 **网页抓取**:无需配置即可自动模拟浏览器指纹 - 🛡️ **测试反机器人系统**:利用真实的浏览器签名避免被检测为机器人 - 🔄 **代理轮换**:内置对多种代理类型的支持 - 🧪 **安全测试**:用于高级测试的自定义 TLS 配置 - 📊 **负载测试**:高性能并发请求 ## 通过 CFFI 实现多语言支持 AzureTLS 可以在任何支持 C 外部函数接口 的编程语言中使用。 阅读 [CFFI 文档](./cffi/README.md) 了解完整详情。 ## 社区与支持 - 💬 **[GitHub Discussions](https://github.com/Noooste/azuretls-client/discussions)**:提问、分享想法 - 🐛 **[GitHub Issues](https://github.com/Noooste/azuretls-client/issues)**:报告 Bug、请求新功能 - 📖 **[示例](./examples/)**:代码示例和教程 ## 致谢 由开源社区用 ❤️ 构建。特别感谢所有的 [贡献者](https://github.com/Noooste/azuretls-client/graphs/contributors)。
标签:API客户端, AzureTLS, DNS枚举, EVTX分析, Go语言, HTTP2, HTTP3, JA3指纹, Radare2, TLS指纹, Web抓取, 代理支持, 伪装浏览器, 协议分析, 反检测, 反爬虫, 告警, 底层编程, 开源库, 指纹伪造, 搜索引擎爬虫, 日志审计, 权限提升, 流量伪装, 程序破解, 网络安全, 网络安全工具, 网络请求, 隐私保护