30个版本
0.11.0 | 2024年6月1日 |
---|---|
0.10.10 | 2024年4月1日 |
0.10.9 | 2024年1月22日 |
0.10.7 | 2023年9月27日 |
0.2.13 | 2021年3月12日 |
#358 in 网络编程
2,326 stars & 53 watchers
5KB
106 行
Leaf
一个功能丰富、高效的代理框架,适用于各种用例。
多路复用
有两种传输用于流量多路复用
- AMux:基于可靠流的复用传输,适用于基于TCP的协议和传输
- QUIC:基于UDP的复用和安全的传输
amux
的好处是我们可以重用连接以减少握手开销,它不是设计为内存高效的,因为它只关注重用连接而不减少连接数。而 quic
可以在不遭受队首阻塞问题的情况下减少握手开销和内存使用。
透明代理
为此目的,有 TUN 入站,这对于类似VPN的代理用例(如iOS和Android上的VPN应用)也非常重要。
高可用性
例如 failover
、tryall
、retry
、random
及其组合的出站可以实现根据其自己的指标灵活地将请求发送到其他出站,以实现高可用性或负载均衡行为。
请求路由
也支持基于规则的请求路由。可以根据域名、IP、GEOIP和端口号规则将请求路由到不同的出站。
入门指南
[General]
dns-server = 223.5.5.5
socks-interface = 127.0.0.1
socks-port = 1080
[Proxy]
Direct = direct
更多配置示例可以在这里找到。如果您想要对配置选项进行更灵活的控制,应使用JSON格式,最新的JSON格式示例可以在tests中找到,其中包含了客户端和服务器端的配置示例。
TUN模式与网关模式
TUN模式
此语法(tun = auto
)在macOS和Linux上受到支持。
[General]
dns-server = 223.5.5.5
tun = auto
[Proxy]
Direct = direct
网关模式
在网关模式下运行需要一个启用了TUN模式的配置。可以通过环境变量来启用网关模式。
GATEWAY_MODE=true leaf -c config.conf
Windows
- Maple:基于leaf的轻量级通用Windows代理应用
iOS & Android
构建
安装Rust: https://rust-lang.net.cn/tools/install
安装GCC或Clang。
克隆 & 构建
git clone --recursive https://github.com/eycorsican/leaf.git
cd leaf
cargo build -p leaf-bin
运行
./target/debug/leaf --help
许可证
本项目采用Apache License 2.0许可。
依赖项
~2.4–4MB
~70K SLoC