extremecoders-re / go-dispatch-proxy

SOCKS5/Transparent load balancing proxy developed in Go, combines multiple internet connections
MIT License
278 stars 45 forks source link

Add more sophisticated method to split connections over multiple socks proxies. #26

Open Spamm00r opened 2 years ago

Spamm00r commented 2 years ago

I'd like to see the following feature added.

Set a limit on max connections to a specific host through the socks proxies.

I download from hosts, that do not allow more than three connections from same ip. But this limit does not max out my download bandwidth.

My solution right now is to use two socks proxy to get two ip's to allow me to have 6 concurrent connections, which pretty much maxes out my download bandwidth. But right now I have to do that manually.

Right now go dispatch proxy only allows to spilt up connections through multiple proxies, without checking how many connections already are established over socks proxy A and socks proxy B. This has the risk, that in my case my 4th request is blocked by the download host.

Please add a feature that allows that check and allows one to configure allow for example three connections from Application A through Socks Proxy A and the rest over Socks Proxy B.

I hope it gets clear what I want.

Baiscally I want an option like: Max connections per socks proxy to host "microsoft.com" = 3

extremecoders-re commented 2 years ago

I'll look into it. No ETA though :(

Spamm00r commented 2 years ago

Yeah I know its a more advanced request and maybe out of scope of this tool. But I wanted to make the suggestion anyway.

Spamm00r commented 2 years ago

Another idea I had was to add a function to limit max concurrent connections per socks proxy.

If for example there are already 5 concurrent connections running over Proxy 1, then don't add more connections over that proxy and instead skip this proxy until slots become available again.

This will also help load balance more.