Proxy.py:一个强大且灵活的网络代理工具,助你轻松构建自己的定制化代理服务器,满足各种网络需求

文摘   2024-12-30 00:01   湖南  

Proxy.py 是一个强大且灵活的网络代理工具,它能让你轻松构建自己的定制化代理服务器,满足各种网络需求。它以其快速、可扩展、可编程的特点而闻名,并且提供各种功能,例如:

强大的功能

  • • 快速且可扩展: 充分利用系统所有核心,并支持使用 asyncio 实现无线程执行,轻松处理数万个连接每秒。

  • • 轻量级: 仅占用 5-20 MB 的内存,无内存泄漏,启动后即可运行,无需重启。

  • • 可编程: 通过插件 API 定制代理行为,例如实现代理池、短链接、数据修改等。

  • • 多地址、多端口: 可监听多个地址和端口,并通过配置选择所需的网络接口。

  • • 实时仪表盘: 支持实时监控和配置代理服务器,并提供 Chrome DevTools 协议支持。

  • • 安全和私密: 支持端到端加密,保护客户端与代理服务器之间的通信安全,并提供 DNS-over-HTTPS 功能保护用户隐私。

  • • 中间人攻击: 支持解密客户端与上游服务器之间的 TLS 通信,用于安全审计、调试等目的。

  • • 支持多种协议: 支持 HTTP(s)、HTTP1、HTTP1.1、HTTP2、WebSocket 以及 HAProxy 协议。

使用 PIP安装

  • • 稳定版本:

    • • 从 PyPi 安装:

      pip install --upgrade proxy.py
    • • 从 GitHub 主分支安装:

      pip install git+https://github.com/abhinavsingh/proxy.py.git@master
  • • 开发版本:

    pip install git+https://github.com/abhinavsingh/proxy.py.git@develop

使用 Docker

  • • 多平台容器:

    • • Docker Hub: 最新标签指向最新稳定版本

      docker pull abhinavsingh/proxy.py:latest
    • • GitHub 容器注册表 (GHCR): 最新标签指向最新开发版本

      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

启动 proxy.py

从命令行运行(使用 PIP 安装)

使用 PIP 安装 proxy.py 后,一个名为 proxy 的可执行文件会被放置在你的 $PATH 中。

运行:

只需在命令行中键入 proxy 即可使用默认配置启动。

proxy

TLS 拦截

默认情况下,proxy.py 不会解密客户端与服务器之间的 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.py

阻塞模式

使用 proxy.main 方法以嵌入模式启动 proxy.py,并使用默认配置。例如:

import proxy

if __name__ == '__main__':
  proxy.main()

通过传递 kwargs 可以自定义启动标志。例如:

import ipaddress
import proxy

if __name__ == '__main__':
  proxy.main(
    hostname=ipaddress.IPv6Address('::1'),
    port=8899
  )

非阻塞模式

使用 Proxy 上下文管理器以非阻塞嵌入模式启动 proxy.py,并使用默认配置。例如:

import proxy

if __name__ == '__main__':
  with proxy.Proxy() as p:
    # 在这里实现你的应用程序逻辑
    proxy.sleep_loop()

总结

总之,Proxy.py 是一个功能强大且灵活的网络代理工具,它能够满足各种网络需求,从简单的 HTTP 代理到更高级的 TLS 拦截和自定义插件开发。它以其快速、可扩展、可编程的特点而闻名,并提供了丰富的功能和工具来帮助你构建自己的定制化代理服务器,满足各种网络场景下的需求。无论你是开发者、安全研究人员还是普通用户,Proxy.py 都能为你提供强大且灵活的网络代理解决方案。

项目地址:https://github.com/abhinavsingh/proxy.py


小白这样学Python
专注Python编程开发知识分享!
 最新文章