I looked through the eddie settings, and there is an option for routes. I told it to put everything outside of the tunnel, and then binded qBittorent to the interface. In theory, only traffic from qBittorent should go through the tunnel, but instead it won't allow qbittorrent to send any data through the tunnel. What's the best practice/recommended way to ensure torrent traffic goes through the tunnel but nothing else does.
Make sure that "Network Lock" is disabled.
Also you will need to use Windows Firewall (I am assuming that you use Windows) to allow qBittorrent to receive incoming connections. The rule that will have been added for qBittorent by default will only apply to "private" interfaces. But Windows considers the TAP interface used by OpenVPN/Eddie to be "public".
And you cannot just do "--route-nopull". The routing table entries with the "220.127.116.11" mask do need to be added for source address routing to work in Windows.
For Windows, in order to have a program bind to the VPN interface and be able to get general traffic through it, the VPN gateway definition with the 18.104.22.168 mask must remain there hidden by a real gateway definition with a 192.0.0.0 mask.
See these Microsoft TechNet pages for a larger discussion:http://blogs.technet.com/b/networking/archive/2009/04/25/source-ip-address-selection-on-a-multi-homed-windows-computer.aspxhttps://technet.microsoft.com/en-us/magazine/2007.09.cableguy.aspx
"If the program specifies a source IP address, that IP address is used as the source IP address for connections sourced from that socket and the adapter associated with that source IP is used as the source interface. The route table is searched but only for routes that can be reached from that source interface."
UPDATE: I got Eddie and played with it. Choosing that "Outside the VPN tunnel" option in "Routes" definitely does not set up the routing table the way that it needs to be set up
If you use IPv6 either on your real interface or the VPN interface you will need to do the same thing for IPv6. See this:https://airvpn.org/topic/9491-guide-to-setting-up-vpn-just-for-torrenting-on-windows/page-4#entry66214
These are the .bat scripts I use to hide or show the VPN. They must all reside in the same folder. The scripts VPN_gateway_hide.bat and VPN_gateway_show.bat are the scripts that you call, as administrator (use a shortcut). The other two are used internally. I calll VPN_gateway_hide.bat before
I start the VPN.
I don't use Eddie. But I know that the OpenVPN client itself does not allow the override to be done for IPv6 using their "--route-ipv6" directive. It does not have the "net_gateway" option that "--route" does for IPv4.
No promises they will work for you. Hopefully useful as an example.
If NET_gateway_set.bat does not detect the gateway values correctly for you, set GATEWAY_IDX, GATEWAY_GW, GATEWAY_IDX6 and GATEWAY_GW6 in VPN_gateway_hide.bat yourself.
@netsh %2 %3 %4 %5 %6 %7 %8 | findstr /r /c:%1
@echo determining original gateway interface ...
@for /f "usebackq tokens=5,6" %%a in (`%~d0%~p0netsh_findstr.bat " 0\.0\.0\.0/0 " interface ipv4 show route`) do @set GATEWAY_IDX=%%a & set GATEWAY_GW=%%b
@rem exit /b
@if "%GATEWAY_IDX%" == "" @goto LEAVE
@for /f "usebackq tokens=3" %%a in (`%~d0%~p0netsh_findstr.bat " Address: " interface ipv4 show addresses %GATEWAY_IDX%`) do @set GATEWAY_IP=%%a
@rem exit /b
@for /f "usebackq tokens=5,6" %%a in (`%~d0%~p0netsh_findstr.bat " ::/0 " interface ipv6 show route`) do @set GATEWAY_IDX6=%%a & set GATEWAY_GW6=%%b
@rem exit /b
@if "%GATEWAY_IDX6%" == "" @goto LEAVE
@rem for /f "usebackq tokens=5" %%a in (`%~d0%~p0netsh_findstr.bat "Public " interface ipv6 show addresses %GATEWAY_IDX6% normal`) do @set GATEWAY_IP6=%%a
@for /f "usebackq tokens=5" %%a in (`%~d0%~p0netsh_findstr.bat "Temporary " interface ipv6 show addresses %GATEWAY_IDX6% normal`) do @set GATEWAY_IP6=%%a
@rem exit /b
@echo adding route entries to hide VPN ...
@route add 0.0.0.0 mask 192.0.0.0 %GATEWAY_GW% if %GATEWAY_IDX%
@route add 22.214.171.124 mask 192.0.0.0 %GATEWAY_GW% if %GATEWAY_IDX%
@route add 126.96.36.199 mask 192.0.0.0 %GATEWAY_GW% if %GATEWAY_IDX%
@route add 192.0.0.0 mask 192.0.0.0 %GATEWAY_GW% if %GATEWAY_IDX%
@if not "%GATEWAY_IDX6%" == "" @goto AROUND
@route -6 add ::/4 %GATEWAY_GW6% if %GATEWAY_IDX6%
@route -6 add 1000::/4 %GATEWAY_GW6% if %GATEWAY_IDX6%
@route -6 add 2000::/5 %GATEWAY_GW6% if %GATEWAY_IDX6%
@route -6 add 2800::/5 %GATEWAY_GW6% if %GATEWAY_IDX6%
@route -6 add 3000::/5 %GATEWAY_GW6% if %GATEWAY_IDX6%
@route -6 add 3800::/5 %GATEWAY_GW6% if %GATEWAY_IDX6%
@route -6 add fc00::/8 %GATEWAY_GW6% if %GATEWAY_IDX6%
@route -6 add fd00::/8 %GATEWAY_GW6% if %GATEWAY_IDX6%
@echo removing entries to show VPN ...
@route delete 0.0.0.0 mask 192.0.0.0
@route delete 188.8.131.52 mask 192.0.0.0
@route delete 184.108.40.206 mask 192.0.0.0
@route delete 192.0.0.0 mask 192.0.0.0
@route -6 delete ::/4
@route -6 delete 1000::/4
@route -6 delete 2000::/5
@route -6 delete 2800::/5
@route -6 delete 3000::/5
@route -6 delete 3800::/5
@route -6 delete fc00::/8
@route -6 delete fd00::/8