4 个版本 (2 个破坏性更新)
0.4.0 | 2023 年 9 月 6 日 |
---|---|
0.3.1 | 2022 年 10 月 16 日 |
0.3.0 | 2022 年 10 月 16 日 |
0.1.0 | 2017 年 8 月 12 日 |
#9 in #tcp-server
每月下载量 26 次
13KB
168 行
tcpproxy
一个简单、跨平台的、多客户端 TCP 代理
tcpproxy
是一个用 Rust 编写的跨平台、多客户端 TCP 代理,专为那些“一次性”任务设计,在这些任务中,您通常花费的时间安装代理服务器和配置众多配置文件和选项,比实际使用的时间还多。
tcpproxy
完全异步,基于 tokio
异步运行时。它被编写为 Rust futures 和异步框架的双向异步网络代码的示例,故意保持易于理解。代码定期更新,以利用新的 tokio 功能和最佳实践(如果它们发生变化)。
用法
tcpproxy
是一个命令行应用程序。对于您希望代理数据到/从的每个远程端点,应该启动一个 tcpproxy
实例。所有配置都通过命令行参数完成,符合此项目的精神。
tcpproxy REMOTE_HOST:PORT [-b BIND_ADDR] [-l LOCAL_PORT]
Options:
-b, --bind BIND_ADDR
The address on which to listen for incoming requests,
defaulting to localhost.
-l, --local-port LOCAL_PORT
The local port to which tcpproxy should bind to
listening for requests, randomly chosen otherwise.
-d, --debug Enables debug mode w/ connection logging.
尽可能提供合理的默认参数值。
安装
tcpproxy
通过 cargo
,Rust 包管理器提供。安装如下
cargo install tcpproxy
某些平台的预编译二进制文件可能可以从 tcpproxy
主页 https://neosmart.net/tcpproxy/ 获取
项目状态
根据您来自哪个语言生态系统,此项目可能看起来像是“未维护”。不要被一段时间内的一些更新所迷惑 - 此项目会定期根据需要更新以修复错误、提高代码质量、使用更现代的 Rust 编码模式和约定以及更新依赖项。然而,该项目不是为更新而更新,目前,根据作者的谦虚观点,功能相当完整。意图始终是提供一个简洁(但仍有用!)的 TCP 代理,可以快速从命令行启动并投入使用。它无意成为任何和所有外围功能的全面集合,并会尊重但坚决拒绝尝试捆绑“一切和厨房用具”。
贡献
欢迎拉取请求,但对于任何重大工作,请先打开一个问题,以确保我们都在同一页面上!
许可证和著作权
tcpproxy
由NeoSmart Technologies的Mahmoud Al-Qudsi开发和维护。 tcpproxy
是开源的,根据MIT公共许可证授权,向公众免费提供,不附带任何保证,希望它既能启发又有用。
依赖关系
~4–12MB
~125K SLoC