3 个不稳定版本
0.2.0 | 2023年11月13日 |
---|---|
0.1.1 | 2023年11月12日 |
0.1.0 | 2023年9月11日 |
#3 在 #incoming-connection
每月 25 次下载
38KB
363 行

yprox
一个修改的、多路复用的 TCP 代理服务器工具和库。
用法
作为可执行文件
要将 yprox
作为可执行文件使用,只需使用 Cargo 安装它
cargo install yprox
然后,你可以运行它
yprox <listen_addr> <target_addr1>...<target_addrN>
例如
yprox 127.0.0.1:8080 127.0.0.1:9000 127.0.0.1:9001
这将启动一个监听 127.0.0.1:8080 并将传入连接转发到 127.0.0.1:9000 和 127.0.0.1:9001 的代理服务器。
作为库
要将 yprox 作为库使用,将其添加到你的 Cargo.toml 文件中
[dependencies]
yprox = "0.1"
然后,你可以在你的代码中使用它
use yprox::proxy::Proxy;
#[tokio::main]
async fn main() {
let listen_addr = "127.0.0.1:8080";
let target_addrs = vec!["127.0.0.1:9000", "127.0.0.1:9001"];
proxy(listen_addr, target_addrs).await.unwrap();
}
这将启动一个监听 127.0.0.1:8080 并将传入连接转发到 127.0.0.1:9000 和 127.0.0.1:9001 的代理服务器。
使用修改函数
你可以选择在转发到目标之前修改数据流。你可以使用 start_modifying
函数来做到这一点
use yprox::proxy::Proxy;
#[tokio::main]
async fn main() {
let listen_addr = "127.0.0.1:8080";
let target_addrs = vec!["127.0.0.1:9000", "127.0.0.1:9001"];
let modify_fn = |data: Vec<u8>| -> Vec<u8> {
// Modify data here
data
};
proxy(listen_addr, target_addrs, Some(modify_fn)).await.unwrap();
}
依赖关系
~1.2–1.7MB
~33K SLoC