13

I have two internet connections - one via a 3G modem, and the other via wireless. The modem is faster so I normally browse with it, but it does not support torrent downloads while my wireless does. When the two are connected, my PC automatically makes every connection through the modem.

Is there a way I can force a particular program, e.g. uTorrent, to browse through my wireless internet connection instead?

1
  • 2
    search term: "link aggregation" or "link bonding".
    – akira
    Jun 30, 2013 at 10:08

6 Answers 6

6

To my knowledge, Windows has no built-in feature for this, but there are third party applications that will help you do the trick. In my experience, ForceBindIP has always worked quite nicely. It does exactly what it says on the tin: running a program through ForceBindIP will make sure it uses a specified interface.

In your case, it would be a matter of installing the program (or extracting the portable version) and running µTorrent using ForceBindIP.exe 1.2.3.4 %PROGRAMFILES%\uTorrent\uTorrent.exe, replacing 1.2.3.4 with the address of the wireless interface.

In case there is no route from your wireless interface to the destination, you need to add one. It can be any route you want, but for an application such as µTorrent, you will probably want to route traffic to all destinations instead of specific IP ranges.

To do this, bring up the elevated command prompt, type ipconfig and take note of the gateway of your wireless connection, which is probably the IP address of your access point (e.g. 192.168.2.1). Next, type route print and check the two-digit identifier of your wireless card in the interface list (e.g. 12), as well as the metric of the 0.0.0.0 entry in the routing table. Then, add the route using: route -p add 0.0.0.0 mask 0.0.0.0 192.168.2.1 metric 50 if 12.

The -p switch ensures the route survives a reboot, but it might still break if the wireless interface gets a new identifier. The '0.0.0.0 mask 0.0.0.0' means the route is valid for all destinations. '192.168.2.1' refers to the address of the gateway you want to use. 'Metric 50' adds a certain cost to this route and you'll want to set it well above the metric of the other 0.0.0.0 entry to avoid programs not bound to a given interface of using it instead of the wired connection. Finally, 'if 12' sets the interface to which the route applies.

9
  • Thanks, but eh, how do I get the address of the wireless interface on my PC? Apr 10, 2012 at 1:24
  • ok, finally found how to.. I should be able to confirm whether it works in the morning, but sure looks like the perfect solution. I'd like to make a GUI for this so others can do it as well (if it works...) Apr 10, 2012 at 1:42
  • Seems nice, but what about routing? If the application is bound to interface A but the system's default gateway is configured on interface B, how can outgoing packets be routed through interface A?
    – Massimo
    Apr 10, 2012 at 5:39
  • +1 for mentioned ForceBindIP, however it never worked as expected for me. Apr 10, 2012 at 12:20
  • @Massimo: I'm not acquainted with networking but after using Forcebindip i get the error: "A socket operation was attempted to an unreachable network." in my uTorrent, so this unfortunately, doesn't seem to work... Apr 10, 2012 at 12:31
4

I do something similar to this. I'm connected to my network with my wired NIC. I tether my phone with my wireless NIC. I've set up my computer to use the wired over the wireless first. Then I made a VirtualBox which I run in seamless mode (Ubuntu, but it doesn't matter). Then everywhere I browse in the VirtualBox will not go through the wired connection. VirtualBox allows shared folders, so all downloads go to the same download directory. The only thing is that I'm wasting CPU and memory, however, I am most secure. I also run the seamless on my second monitor, so now I'm Über kewl.

You could run a Torrent Client in the VirtualBox

1
  • 1
    nice idea. This might eventually be the only available solution, though I'd use VMWare, but let's see... Apr 10, 2012 at 12:35
3

No, this can't be done for a particular program, it can only be done for a particular target IP address (or subnet): you could add a static route to your system in order to tell it to reach all sites via the modem connection but use the wireless connections to reach a specific IP address or subnet.

But since you want to do this for torrent downloads, and torrent downloads (by their very definition) make lots of connections to lots of remote systems anywhere in the world, this can't really be applied to your situation.

3
  • Yet, the functionality seems so basic? With my little knowledge of programming, I'm assuming I should be able to achieve this with some sort of api hooking hack... Apr 10, 2012 at 1:17
  • 1
    This is related to how the OS' networking stack handles IP routing, which is something applications are totally not concerned about (and not able to influence in any meaningful way, either).
    – Massimo
    Apr 10, 2012 at 5:36
  • I know for certain it's possible to monitor network access from an application, so hooking it should also be possible, if this can be done, then I guess you could automatically route each connection to a remote IP by the program through the wireless network? Apr 10, 2012 at 12:44
2

Just throwing this out there but wouldn't a simpler method be to use an Emulator like Virtualbox? You can boot a separate OS in VB and bind it's Virtual Connection to a specified Network Interface. So you could boot a small Linux OS running a Torrent program to one of your connections, while your normal Windows OS just uses the default. Wouldn't this bypass the Windows iptables?

1

Yes you can, for your specific problem: use the modem for browsing only.

  1. Set up the wireless network to be used all the time, by changing the order of your network adapters (wireless first): http://windows.microsoft.com/en-US/windows-vista/Change-the-order-of-network-protocol-bindings

  2. Next you need an HTTP Proxy server which will redirect the http packets through the modem connection. FreeProxy seems to know adapter binding (I googled this one, I guess it can be any proxy software that knows bindings), so I guess it will work: http://www.softpedia.com/get/Internet/Servers/Proxy-Servers/FreeProxy.shtml. Now you have to set up the server to use the connection from the modem. So, in the Proxy Service configuration window, let's say you set the local binding to the wireless adapter and Remote binding to the modem (I hope it's this way or not the other way around as I have only one adapter to check this out, so for me both are the same). Click "Done". Click "Start/Stop", and then "Start" for console mode (I checked this app just now, and for service mode perhaps there is more to configure).

  3. In the connection settings of your browser select connecting through your proxy server (<WIRELESS_IP_ADDRESS>:<port>, port should be 8080 by default).

That's about it.

5
  • Albeit, you laid out three steps, I still don't understand what exactly your solution is all about, I just wish you can explain in lay terms what we're trying to achieve here... Apr 10, 2012 at 12:34
  • It's about using the wireless connection as default for any programs except your browser (as it seems you need high speed for browsing). Your browser will use your modem connection via the HTTP Proxy server software.
    – user127350
    Apr 10, 2012 at 12:40
  • I actually use a proxy for my modem, so this will lead to a proxy chain? Apr 10, 2012 at 12:46
  • I'm confused. What proxy are you using with the modem? If there were a HTTP proxy, than only the browser should have used this connection, as the other apps don't use http protocol, thus the OS will try to resolve the connection through the wireless connection.
    – user127350
    Apr 10, 2012 at 12:49
  • If you use a HTTP proxy, but the modem acts like a normal network interface as well, I guess you have all that I describe ready to go. You only have to change the order of the network interfaces, so the wireless is first.
    – user127350
    Apr 10, 2012 at 12:51
0

you can use connectify dispatch to join two internet connections into one and dedicate the sockets download connectify dispatch and see the magic also make sure to select right options either Gen 2 or Round Robin and thats it. BOOM!

http://www.connectify.me/dispatch/

0

Not the answer you're looking for? Browse other questions tagged .