【发布时间】:2010-10-31 19:19:38
【问题描述】:
我有一个在 localhost:1234 运行的 HTTP 代理。该代理适用于我发出的所有 Web 请求。
我有一个在 localhost:4567 运行的服务器。我希望对我的服务器的 HTTP 请求通过我的代理。应该很简单吧?有没有办法让 IE 或任何其他浏览器做到这一点?
【问题讨论】:
我有一个在 localhost:1234 运行的 HTTP 代理。该代理适用于我发出的所有 Web 请求。
我有一个在 localhost:4567 运行的服务器。我希望对我的服务器的 HTTP 请求通过我的代理。应该很简单吧?有没有办法让 IE 或任何其他浏览器做到这一点?
【问题讨论】:
在 Windows 上:
转到 Windows/System32/Drivers/等
在记事本中以管理员身份运行
在你的主机文件中添加这样的内容:
127.0.0.1 mysite.local
然后,该代理将获取位于http://mysite.local 的该主机的所有数据。
Ubuntu: /etc/hosts
苹果: http://decoding.wordpress.com/2009/04/06/how-to-edit-the-hosts-file-in-mac-os-x-leopard/
【讨论】:
IP name。
是的,有办法!
在 IE9 中,如果您在 Internet 选项中手动配置了代理,您可以单击高级并简单地将 <-loopback> 添加到代理绕过列表。在 IE6 中,当手动配置代理时,localhost URL 会通过代理。只有 IE7+ 版本不向代理服务器发送 localhost 请求。
如果您想要一个更全球化的解决方案,您可以创建一个自动代理配置脚本。它基本上是一个包含函数 FindProxyForURL 的 javascript 文件。您可以使用该脚本的 URL 配置 Internet 选项。所有 HTTP 请求都会查询 FindProxyForURL 以获得它需要的代理服务器。因此,如果您希望所有 URL 都通过代理,您可以执行以下操作:
function FindProxyForURL(url, host) {
return "PROXY localhost:1234";
}
如果您只希望外部地址访问您的本地主机代理,那么您可以执行以下操作:
function FindProxyForURL(url, host) {
if (isPlainHostName(host)) {
return "DIRECT";
}
return "PROXY localhost:1234";
}
【讨论】:
这取决于您的浏览器。在 Firefox 中,检查“无代理”是否为空。默认情况下,Firefox 会阻止 localhost 和 127.0.0.1 的 URL 代理。
【讨论】:
通常您可以为此配置浏览器设置。在 Firefox 中,它是选项 -> 高级 -> 网络 -> 连接(设置)。
如果 IE 检测到 localhost URL,它会自动忽略代理。这一直是 Fiddler 等工具的眼中钉。
但是,您通常可以通过直接访问 http://somesite.com:1234。有人花时间注册“somesite.com”域以自动路由到 127.0.0.1。这会使 IE 误以为它是一个外部域,但应该在重定向到本地服务器时通过您的代理运行。
祝你好运。
【讨论】: