Virtual Network Adapter that forwards request to a SOCKS proxy

Being forced to use a proxy is a nightmare. You have to configure almost every software for the proxy, if the software supports it. It would be great if we could configure our network adapter to use a SOCKS proxy by default. Since it's not an option for Windows 10, I am looking for a virtual adapter that does the tick.

Something like this:

Software -> Virtual Network Adapter -> SOCKS Proxy

Solution 1:

Here is what I did to make it work.

  1. Use OpenVPN tap drivers to install a virtual network adapter(use NDIS5 drivers).
  2. Name it as taplan.
  3. Assign 10.0.0.1 to your network adapter named taplan. Use 255.255.255.0 as subnet mask.
  4. Have a socks server or use public server you owned to do a ssh tunnel socks proxy connection.

If you don't have a socks proxy, you need a public server. You can use putty to establish an ssh connection along with a tunnel which acts as a socks proxy. Sample command is something like this:

ssh -D 8123 -f -C -q -N socksserverip.com

After that, you have a socks proxy on your localhost at port 8123.

  1. Check your socks proxy with Firefox by pointing localhost:8123 as socks proxy. If you have an internet connection then so far so good.

  2. Download tun2socks from prebuilt windows binaries. For this question, I used badvpn-1.999.128-win32.zip file.

Extract bin/badvpn-tun2socks.exe file to somewhere in system PATH and rename it as t2s.

  1. Configure tun2socks to make your taplan adapter to use socks proxy.

Enter command prompt with admin privileges and type:

$ t2s --tundev "tap0901:taplan:10.0.0.1:10.0.0.0:255.255.255.0" --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:8123

Now you have a virtual network adapter named as taplan which uses the socks proxy configured as your localhost to connect to internet. All requests forwarded to this adapter will tunnel through your public/remote server.

  1. Configure your internet routes.

In command prompt type:

$ route PRINT

this will show you your current routes. The default gateway is the top one. Note that IP.

$ route CHANGE 0.0.0.0 MASK 0.0.0.0  your_current_gateway_ip METRIC 400
$ route add ip_of_ssh_server your_current_gateway_ip metric 60
$ route ADD 0.0.0.0 MASK 0.0.0.0 10.0.0.2 METRIC 50

Now all your internet traffic will be using 10.0.0.2 as gateway which is configured in a virtual network adapter.

Solution 2:

You are looking for a system-wide proxy for all programs, including those that bypass the Windows 10 proxy that is defined in Settings > Network & Internet > Proxy under "Manual proxy setup".

You will need for that a third party product, since Windows 10 does not have a built-in mechanism for that.

I list below the products I know of, although you will need to try them out to see how well they work with your environment:

  • SocksCap64 (freeware dating from November 2017)
  • WideCap and its much older predecessor FreeCap (freeware dating from 2009)
  • AllProxy Lite (freeware dating from 2018) and its commercial brother AllProxy ($9.95)
  • ProxyCap ($36 with 30 day trial)
  • Proxifier ($36 with 30 day trial, dating from December 2016)