#反向代理 #TCP/UDP #代理服务器 #UDP 服务器 #互操作性 #网络 #数据

程序+库 mproxy-reverse

MPROXY:反向代理。将上游数据发送到下游套接字监听器。

8 个版本

0.1.8 2023 年 9 月 26 日
0.1.7 2023 年 6 月 1 日
0.1.6 2023 年 3 月 31 日
0.1.3 2022 年 12 月 20 日

网络编程 中排名第 1473

MIT 许可证

60KB
843

MPROXY:多播网络调度器和代理

在网络中传输数据。

关于

此存储库包括四个包:正向代理、反向代理、UDP 客户端和 UDP 服务器。代理允许在 TCP 和 UDP 之间进行转换,因此可以将这些块组合在一起以实现与现有网络的完全互操作性。主要功能是与 UDP 多播 的兼容性,用于中间路由和反向代理,实现简单的一对多或多对多组通信,并实现可扩展的反向代理。包可以从命令行运行或作为库包含。

  • 简单易用的完整网络堆栈
    • 同时发送、代理、反向代理和接收来自多个端点
  • 快速
    • 可在 5 分钟内部署
    • 500+ Mbps 读取/传输/写入速度(UDP)
    • 无状态多线程并发
  • 最小化
    • 无需配置、日志或缓存
    • 极小的内存占用,编译后的二进制文件大小约为 350KB
    • 少于 1500 行代码
  • 利用 UDP 的优势
    • 简单的流聚合
    • 高效的代理和反向代理
    • UDP 多播实现可扩展的反向代理

快速入门

从简单的客户端/服务器网络开始。使用 cargo 安装命令行工具,并在端口 9920 上启动 UDP 监听服务器。

cargo install mproxy-client mproxy-server
mproxy-server --listen-addr "localhost:9920" --path "streamoutput.log" --tee

然后从客户端向服务器发送一些字节。路径选项 "-" 告诉客户端从 stdin 读取输入。也可以使用文件路径、描述符或句柄。

mproxy-client --path "-" --server-addr "localhost:9920"
> Hello world!

现在你应该会在 streamoutput.log(如果使用 --tee,则还会在 stdout)中看到你的消息。

兼容性

  • Windows/Linux/Mac
  • IPv4/IPv6
  • UDP
  • TCP/TLS
    • 通过正向和反向代理
    • rustls 提供部分客户端 TLS 支持(需要在 mproxy-forward 中启用 tls 功能)

文档

请参阅安装和操作说明的文档

依赖项

~0.1–25MB
~329K SLoC