Virtual Network Adapter that forwards request to a SOCKS proxy

12,232

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:

Share:
12,232

Related videos on Youtube

ramazan polat
Author by

ramazan polat

Updated on September 18, 2022

Comments

  • ramazan polat
    ramazan polat almost 2 years

    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
    
    • harrymc
      harrymc almost 6 years
      Windows 10 supports a global system proxy in Settings > Network & Internet > Proxy, under Manual proxy setup. This setup doesn't allow user-name and password, for that see this workaround.
    • ramazan polat
      ramazan polat almost 6 years
      @harrymc that setting doesn't work OSwide, it only works if the application respects those settings.
  • iopq
    iopq about 4 years
    This is exactly what I needed. I don't see why I should choose between a proxy and a VPN.
  • ramazan polat
    ramazan polat about 4 years
    Because I have my own proxy server.
  • iopq
    iopq about 4 years
    That's what I meant, I have my own proxy server, I don't see why there's no easy way to VPNize it
  • amirhamini
    amirhamini about 3 years
    It was very practical, thank you!
  • hawaii
    hawaii over 2 years
    is latency any good while using this strategy? im getting around 90ms latency to target server, while my ping to socks is 25ms and from socks to target server its 10ms.
  • ramazan polat
    ramazan polat over 2 years
    @hawaii as far as I remember, latency was also an issue for me.
  • Toto
    Toto about 2 years
    While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - From Review