57

How do I make Windows (Vista) to apply certain proxy server for all applications that use internet?

1
  • 3
    Can this question be applied to Win 7 & 8 as well ?
    – Simon
    Aug 26, 2013 at 13:45

6 Answers 6

55

The short answer is: you can't. There is no "global" proxy setting, because proxies are used by individual applications (like Internet Explorer, Firefox, etc.), not by Windows itself. However, some programs internally use Internet Explorer libraries to access the web, so they will use the IE setting, as posted by firedfly.

You can force individual applications to use proxies, even if the applications themselves don't support proxies, by using tools such FreeCAP or Socksify.

If you really do want to force all programs to go through a proxy it would have to be done at the network level, so you would need to establish a VPN connection to a service like Your Freedom or Steganos Internet Anonym.

3
  • This answer is more correct, as not all software uses the proxy settings for Internet Explorer. Some software gives you the option to use the same settings as Internet Explorer, but not all of them do that.
    – TFM
    Aug 26, 2009 at 5:30
  • 1
    +1 FreeCap is exactly what I needed for a very long time! Thanks. Oct 1, 2014 at 19:30
  • Do you know if Visual Studio uses the IE libraries?
    – J86
    Jun 27, 2016 at 12:09
15

The default proxy settings are set in Internet Explorer's options.

Tools->Internet Options->Connections tab->Lan Settings button

The proxy information specified here will be the system default. Though, not all applications use the default proxy settings.

4
  • 1
    you can also get to the internet options through the control panel
    – Chuck
    Aug 26, 2009 at 0:22
  • 4
    if you want to enable windows updates via a proxy server, run this command first: Netsh winhttp import proxy source=ie . Source: answers.oreilly.com/topic/…
    – knb
    May 8, 2013 at 13:15
  • The way I normally get to proxy settings (in Windows 8+) is Ctrl+X-C (for Command Prompt) or Ctrl+X-A (for Admin prompt) and execute inetcpl.cpl to bring up Internet Options, and then click the Connections tab and Lan Settings button. For Vista, it would be Ctrl-R (Run dialog), enter cmd > [Enter] > inetcpl.cpl > [Enter]. If you want to cut right to the chase, the command control inetcpl.cpl,,4 opens straight to the Internet Options Connections tab. You may have to tweak the number for earlier versions of Windows (such as Vista). Nov 8, 2015 at 2:56
  • 1
    No, the "Internet Options" are settings for the >current user<, stored in HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings. So this is only for Aplications running in the current user account and not for Services running in the local SYSTEM account
    – Klaus
    Oct 31, 2018 at 15:36
13

You can set a global, machine level proxy by using netsh.exe. Run:

netsh winhttp set proxy <proxy server address> <exception list in quotes, seperated by ;>
2
  • 1
    Pre-Vista versions of Windows use ProxyCfg.exe. Jul 5, 2012 at 6:16
  • I tried netsh winhttp set proxy on my Windows Server 2016, it seems not all programs use this setting. Set in Internet Explorer's options works for me.
    – Corey
    May 14, 2021 at 6:34
9

Proxifier

enter image description here

Out of the box, you cannot set a global proxy for all applications to use. Although you can enter your proxy details in Internet Explorer as firedfly suggests, this will only work for certain applications (mostly Windows apps, but Google Chrome uses these settings.).

Privoxy does exactly what you are after. It will establish a connection to the proxy and route all of the traffic out it (excluding local traffic, of course). It works on both Windows and OS X, and even has a portable version.

Proxifier is a program that allows network applications that do not support working through proxy servers to operate through an HTTPS or SOCKS proxy or a chain of proxy servers.

With Proxifier you can work with any Internet client (browsers, FTP, IRC, BitTorrent, messengers, telnet, SSH, video/audio, games...) through a network that is separated from Internet by a firewall (only one open port is required for a proxy tunnel to bypass firewall).

I also used this program to answer my Force Steam (and other programs that do not specify proxy settings) to use a proxy question.

2
  • 2
    Looks nice, but it's very expensive: $40 for a license, that is not cross-platform, despite the fact that they have both OS X and Windows versions.
    – iconoclast
    Jul 8, 2013 at 16:48
  • 1
    Privoxy only supports HTTP connections and not HTTPS.
    – Shayan
    Mar 25, 2021 at 12:24
7

You can use group policy to set the default proxy server for all users:

In group policy: Local Computer Policy - Computer Configuration - Administrative Templates - Windows Componants -Internet Explorer - enable "Make proxy settings 'Per Machine'rather than 'Per User'" This setting makes it so you don't have to reassign the settings each time a different user logs into the machine.

Local Computer Policy - User Configuration - Windows Settings - Internet Explorer Maintenance - Connection - Proxy Settings. (You can define the proxy settings here)

Local Computer Policy - User Configuration - Windows Settings - Internet Explorer Maintenance - URLs (you can set your default home page, ect, here)

There also is an option to configure Windows Update to use a proxy server:

Netsh winhttp set proxy myproxy

Netsh winhttp set proxy myproxy:80 ";bar"

Netsh winhttp set proxy proxy-server="http=myproxy;https=sproxy:88" bypass-list="*.   contoso.com"

In our environment we ended up using: netsh winhttp set proxy 192.168.0.100:88 "<local>;*.company.com"

1

If you have fiddler you can look at requests from your browser after you have already authenticated and copy the Proxy-Authorization header, then set a breakpoint before requests to capture requests from your program and paste the header to the request. Or you can add a custom rule inside OnBeforeRequest (Ctrl+R):

if(!oSession.oRequest.headers.Exists("Proxy-Authorization")){
    oSession.oRequest.headers.Add("Proxy-Authorization", "Basic xxxxxxxxxxxxx");
}

where xxxxx is what you captured from the browser's request. Although not a permanent solution it's simple and works fine. Adding the rule also works with streaming turned on.

You must log in to answer this question.

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