8 个版本
0.2.7 | 2024 年 4 月 12 日 |
---|---|
0.2.6 | 2024 年 4 月 12 日 |
0.1.6 | 2024 年 4 月 9 日 |
#11 in #forward
每月 25 次下载
95KB
572 行
QProxy
QProxy 是一个简单的代理服务器,可以用来将请求转发到不同的服务器。它用 Rust 编写,并使用 socket
模块创建一个监听传入连接的服务器。当收到连接时,服务器读取请求并将其转发到指定的服务器。然后,将服务器的响应发送回客户端。
用法
cargo build --release
./target/release/qproxy <port> <proxy>
示例
./target/release/qproxy -p 8080 --proxy ip:port:username:password
代码示例
use clap::Parser;
use tokio::time;
use qproxy::{Config, ForwardProxy};
pub struct Config {
#[arg(short, long, default_value_t = 8080)]
pub port: i16,
#[arg(long)]
pub proxy: String,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::parse();
let server = ForwardProxy::try_from((config.port as u16, config.proxy))?;
let server_clone = server.clone();
tokio::spawn(async move {
time::sleep(time::Duration::from_secs(4)).await;
server_clone.stop();
});
server.start().map_err(|e| e.into())
}
配置 FireFox 代理
socks5://127.0.0.1:8080
依赖项
~8–20MB
~297K SLoC