#sock #networking #proxy #dispatch #interface #round-robin

app dispatch-proxy

在网络接口之间平衡流量的SOCKS代理

5个版本

0.2.0 2024年4月7日
0.1.3 2023年5月6日
0.1.2 2023年5月6日
0.1.1 2023年5月6日
0.1.0 2021年7月18日

网络编程中排名第664

Download history 7/week @ 2024-04-22 3/week @ 2024-05-20 9/week @ 2024-06-03 8/week @ 2024-06-10 5/week @ 2024-06-24 19/week @ 2024-07-01 50/week @ 2024-07-29 1/week @ 2024-08-05

每月下载量51

MIT/Apache

45KB
1K SLoC

dispatch

在网络接口之间平衡流量的SOCKS代理。

应适用于macOS、Windows和Linux。目前仅在macOS上进行测试。

这是对dispatch-proxy的Rust重写,最初是用CoffeeScript编写的,针对Node.js。

安装

从预构建的二进制文件

您可以从发布页面下载macOS、Windows和Linux的预构建二进制文件。

从crates.io

您需要Rust版本1.51.0或更高版本。您可以使用rustup安装Rust编译器工具链的最新版本。

cargo install dispatch-proxy

原理

您经常发现自己有多个未使用的互联网连接——无论是5G移动热点还是免费的Wi-Fi网络——系统不允许您在主连接旁边使用它们。

例如,我第一个学生宿舍曾经为我提供有线和无线互联网接入。两者都分别限制在1,200kB/s的带宽。我的3G移动互联网接入为我提供了额外的400kB/s。将所有这些与dispatch和下载管理器结合使用,结果得到了2,800kB/s的有效带宽!

用例

可能性无限

  • 与下载管理器或BitTorrent客户端一起使用,在下载单个文件时结合多个连接的带宽;
  • 将您有权访问的所有接口组合成一个单一生成平衡接口;
  • 在多个代理(例如,用于平衡下载/上传)上运行不同的应用程序;
  • 在家中创建一个热点代理,通过以太网和5G卡连接到所有您的移动设备;
  • 等等。

使用方法

$ dispatch
A SOCKS proxy that balances traffic between network interfaces.

Usage: dispatch [OPTIONS] <COMMAND>

Commands:
  list   Lists all available network interfaces
  start  Starts the SOCKS proxy server
  help   Print this message or the help of the given subcommand(s)

Options:
  -d, --debug    Write debug logs to stdout instead of a file
  -h, --help     Print help
  -V, --version  Print version
$ dispatch start -h
Starts the SOCKS proxy server

Usage: dispatch start [OPTIONS] <ADDRESSES>...

Arguments:
  <ADDRESSES>...  The network interface IP addresses to dispatch to, in the form of <address>[/priority]

Options:
      --ip <IP>      Which IP to accept connections from [default: 127.0.0.1]
      --port <PORT>  Which port to listen to for connections [default: 1080]
  -h, --help         Print help

示例

$ dispatch list

列出所有可用的网络接口。

$ dispatch start 10.0.0.0 fdaa:bbcc:ddee:0:1:2:3:4

将入站连接分配到本地地址 10.0.0.0fdaa:bbcc:ddee:0:1:2:3:4

$ dispatch start 10.0.0.0/7 10.0.0.1/3

在10次中有7次将入站连接分配到 10.0.0.0,在10次中有3次分配到 10.0.0.1

工作原理

每当SOCKS代理服务器接收到对一个地址或域名的连接请求时,它将使用加权轮询算法从提供的本地地址中选择一个。此后所有连接流量都将通过所选本地地址对应的接口。

注意:如果请求的地址或域名解析为IPv4(或IPv6)地址,则必须提供IPv4(或IPv6)本地地址。

许可证

根据您的选择,此软件受Apache License,版本2.0MIT许可证许可。
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在此软件包中的任何贡献,都将按上述方式双重许可,而不附加任何额外条款或条件。

依赖项

~14–44MB
~686K SLoC