alexkirsz / dispatch

Combine internet connections, increase your download speed
Apache License 2.0
353 stars 28 forks source link

Is it possible to upload from one network interface and download from another? #22

Closed sr-prog closed 1 year ago

sr-prog commented 1 year ago

Is it possible to download from one network interface for example Ethernet and upload from another for example Wi-Fi? If this is already not a feature, I would like to propose it as a feature request.

alexkirsz commented 1 year ago

It's not possible to split a connection between two different network interfaces. A connection maps to a single TCP socket, which is bi-directional (download and upload). As such, it's not possible to differentiate between mostly-download and mostly-upload connections in a generic manner until after the connection is already dispatched and established, and we've had time to compute some stats.

However, if your use case is to map an application to a network interface and another to another network interface, you can start two different proxies that only dispatch to a single address each:

dispatch start 10.0.0.1 # will listen on 127.0.0.1:1080
dispatch start 10.0.0.2 --port 1081 # will listen on 127.0.0.1:1081
# etc. if you have more than two interfaces

Where you would replace 10.0.0.1 and 10.0.0.2 with the IP addresses of your network interfaces.

Then, you will need to either configure each application to use its own SOCKS proxy. If the application doesn't have a SOCKS proxy setting, you can use another software such as Proxifier to force it. Proxifier also supports filtering on IP addresses and hosts.