
Proxy.py 是一款高性能、可扩展的 Python 网络代理工具,能够帮助开发者快速构建定制化代理服务器,适用于多种网络场景。
核心功能
- 高性能与可扩展性:充分利用多核系统资源,支持 asyncio 无线程执行,轻松处理每秒数万连接。
- 轻量级设计:内存占用仅 5-20 MB,无内存泄漏问题,启动后无需重启即可稳定运行。
- 高度可编程:通过插件 API 自定义代理行为,实现代理池、URL 缩短、数据修改等高级功能。
- 多地址与多端口支持:可监听多个网络接口,灵活配置地址和端口。
- 实时监控仪表盘:提供代理服务器实时状态监控和配置调整,支持 Chrome DevTools 协议。
- 安全与隐私保护:支持端到端加密通信,集成 DNS-over-HTTPS 功能,保障用户数据安全。
- TLS 拦截能力:可解密客户端与上游服务器间的 TLS 流量,适用于安全审计和调试场景。
- 多协议兼容:全面支持 HTTP(s)、HTTP1/1.1、HTTP2、WebSocket 及 HAProxy 等 网络协议。
安装方法
使用 PIP 安装
使用 Docker 部署
- 多平台容器:
- Docker Hub(稳定版):
docker pull abhinavsingh/proxy.py:latest
- GitHub 容器注册表(开发版):
docker pull ghcr.io/abhinavsingh/proxy.py:latest
运行示例
从 Docker Hub 启动稳定版:
docker run -it -p 8899:8899 --rm abhinavsingh/proxy.py:latest
从 GHCR 启动开发版:
docker run -it -p 8899:8899 --rm ghcr.io/abhinavsingh/proxy.py:latest
启动代理服务
命令行启动(PIP 安装后):
安装完成后,系统 $PATH 中会添加 proxy 可执行文件。
运行默认配置:
proxy
TLS 拦截配置
默认不解密 HTTPS 流量。启用 TLS 拦截需生成根 CA 证书,并通过相应参数启动 proxy.py。
使用 Docker 运行 Grout:
docker run --rm -it \
--entrypoint grout \
-v ~/.proxy:/root/.proxy \
abhinavsingh/proxy.py:latest \
http://host.docker.internal:29876
嵌入模式应用
阻塞模式:
通过 proxy.main 方法嵌入启动,使用默认配置:
import proxy
if __name__ == '__main__':
proxy.main()
自定义配置示例:
import ipaddress
import proxy
if __name__ == '__main__':
proxy.main(
hostname=ipaddress.IPv6Address('::1'),
port=8899
)
非阻塞模式:
使用上下文管理器启动,适用于异步场景:
import proxy
if __name__ == '__main__':
with proxy.Proxy() as p:
# 在此添加应用逻辑
proxy.sleep_loop()
总结
Proxy.py 作为功能全面的网络代理解决方案,覆盖从基础 HTTP 代理到高级 TLS 拦截和插件开发需求。其高性能、易扩展的特性使其成为开发者、安全研究人员构建 Docker 化代理服务的理想选择。
项目地址:https://github.com/abhinavsingh/proxy.py
|