Yes, I have found a free solution that works on virtually any system. It's called Dispatch-Proxy and it can be found here... https://github.com/Morhaus/dispatch-proxy It won't do you any good if all of your Nics use the same gateway. There's no point in trying to squeeze more juice out of the same size pipe. Each Nic has to be connected to a different ISP. It's not a perfect solution, as it relies on a round robin approach to switching Nics, but it's better than nothing. I highly recommend that you use the installation instructions stored in his imgur album linked towards the top of the page. That will get everything you need in place. Configuring it correctly was another story. The main example he provides sets up an HTTP proxy that you can use in your browser's settings to surf with, except that it can't handle https pages. What you really want to setup is the Socks proxy which will handle everything. The HTTP proxy worked for browsers, but all of my background system apps that do things like check for program or weather updates were left out of the loop. Using the Socks proxy ties all traffic on your system into the sharing. The trick is that you have to change the system settings, and optionally the app settings, to get it to work. You can't use the Network & Internet setting page that's found in Windows 8 through 10. Whatever you enter there will end up screwing up the configuration. You have to go to the Contol Panel and open Internet Options and go to the Connections tab. From there you want to go to the Proxy Server section and check Use a proxy server for your LAN and Bypass proxy server for local addresses. Then you want to click the Advanced button and on the page that opens you want to make sure every field is empty except the Socks: fields. There you want to enter socks for the Proxy address to use and 1080 for the Port. Also, make sure that the Use the same proxy server for all protocols box is unchecked. After using this method, every app on my system uses Disptach-Proxy. So my console command looks like this dispatch start 192.168.0.103@6 192.168.19.2@4. If you don't add the weight proportions after each address, it seems to behave just like it does without the proxy, sending most of the traffic through the interface that had the lowest system metric before the proxy was installed. So I highly recommend you include those. One of those IP's is the onboard Nic in my desktop and the other is my tethered 4G phone. I disconnect the phone whenever I leave, but it looks like everything keeps working with the remaining Nic through the proxy until I plug my phone back in where it picks up using both. The one issue that remains is what happens when you reboot your computer. The proxy doesn't run as a service so you have to run the script ever time you log on. I found a solution if your Nics are permanent and don't require a setup procedure after log on, like my phone does. This doesn't work for me, but it might work for you if you want to automate launching the script... The best way to go about it is to add it as a startup task. Go to Control Panel and choose Administrative Tools, then run the Task Scheduler and follow these steps... Make sure that Task Scheduler (Local) is selected in the left pane and from the Actionmenu choose Create Basic Task On the first page enter a task name. I just entered Dispatch. On the next page select When I Log On. We do this instead of choosing When The Computer Starts so that we know the Nics are up and running before creating the proxy. On the next page choose Start a Program. On the next page enter Start in the Program/Script: field and then enter /b dispatch start and optionally the IP addresses with their weight proportions in the Add Arguments field. By using the Windows command Start /b we are telling the task to run without opening a new command window. If you prefer to have an open window, just enter Dispatch in the Program field and start, plus the IPs if you want them, in the Options field. On the last page check the Open The Properties Dialogue box and click Finish. On the General tab of the Properties page make sure that Run only when user is logged on is selected and then in the Configure For drop down at the bottom, select whatever version of Windows you are using. Go to the Conditions tab and uncheck everything. Go to the Settings tab and uncheck everything. Click OK and you're done. This has a few drawbacks. First, if you choose to launch the task without a command window, you won't know if Dispatch has stopped running due to errors. I spent many hours searching and still haven't been able to find a way to determine the running state of a script. Second, your Nics have to be up and running before the task is launched. If this doesn't happen in the right order on your system then you might have to play around with inserting some kind of delay for launching the task. Armed with this augmented information, it shouldn't take more than 20 minutes to get it all working.