Redirect localhost through proxy?

2019-03-20 03:40发布

I have a HTTP proxy running at localhost:1234. The proxy works fine for all web requests I make.

I have a server running at localhost:4567 . I want HTTP requests to my server to go through my proxy. Should be simple, right? Is there a way to make IE or any other browser do this?

4条回答
Bombasti
2楼-- · 2019-03-20 04:09

Generally you can configure your browser settings for this. In Firefox it's Options -> Advanced -> Network -> Connection (Settings).

IE automatically ignores proxies if it detects a localhost URL. This has always been a thorn in the side of tools like Fiddler.

However, you can often get around that by literally going to http://somesite.com:1234. Someone has taken the time to register the "somesite.com" domain to automatically route to 127.0.0.1. This fools IE into thinking it's an outside domain, but should run through your proxy while redirecting to your local server.

Good luck.

查看更多
3楼-- · 2019-03-20 04:13

It depends on your browser. In Firefox, check to see that "no proxy" is empty. By default Firefox blocks proxy of URLs to localhost and 127.0.0.1.

mozilla.org

查看更多
男人必须洒脱
4楼-- · 2019-03-20 04:28

Yes, there is a way!

In IE9 if you have the proxy manually configured in Internet Options, you can click on Advanced and simply add <-loopback> to the proxy bypass list. In IE6, localhost URLs go through the proxy when the proxy is manually configured. It is only versions IE7+ that don't send localhost requests to the proxy server.

If you want a more global solution, you can create a automatic proxy configuration script. It is basically a javascript file that contains the function FindProxyForURL. You can configure Internet Options with the URL of that script. All HTTP requests will query FindProxyForURL for the proxy server it needs. So if you want all URLs to go through the proxy you would do something like:

function FindProxyForURL(url, host) {
    return "PROXY localhost:1234";
}

If you only want external addresses to go to your localhost proxy then you would do something like:

function FindProxyForURL(url, host) {
    if (isPlainHostName(host)) { 
          return "DIRECT"; 
    }
    return "PROXY localhost:1234";
}
查看更多
Anthone
5楼-- · 2019-03-20 04:30

On Windows:

Go to Windows/System32/Drivers/Etc

in notepad running as administrator

Add something like this to your hosts file:

127.0.0.1 mysite.local

then all data to that host at http://mysite.local will be picked up by the proxy.

Ubuntu: /etc/hosts

Mac: http://decoding.wordpress.com/2009/04/06/how-to-edit-the-hosts-file-in-mac-os-x-leopard/

查看更多
登录 后发表回答