我可以使Windows 7根据网络连接更改代理设置吗?


26

在工作和家庭之间移动我的LapTop,我需要更改我的Internet代理设置。Windows 7是否有任何构建方式可以基于我当前活动的网络更改这些设置?


1
哦,我很想让我的笔记本电脑做同样的事情,只是懒得寻找答案:-(
Ivo Flipse 09/09/24

Answers:


20

您可以使用PAC(代理自动配置脚本)进行设置。它们是用Javascript编写的小脚本,可让您指定各种连接规则。大多数现代桌面Web浏览器都可以毫无问题地读取它们,我在Internet Explorer和Firefox中都设置了相同的浏览器。

一个最小的PAC文件,始终将您发送到端口81上的代理服务器proxy.companyname

function FindProxyForURL(url, host)
{
     return "PROXY proxy.companyname:8080";
}

还有一个PAC文件的稍微复杂的示例,该文件通过检查您选择的IP地址范围来检查您所在的网络。在此示例中,DHCP为您公司中的所有客户端PC提供了IP地址在10.10。*范围内,并通过端口81上的代理服务器proxy.companyname访问Internet 。

//Turn debug mode on by setting debug variable to any non-empty string
//Note that "" is an empty string, and that "0", "1" & "test" are not empty strings.


function FindProxyForURL(url, host)
  {
    var ip = myIpAddress();
    var debug = "";

    if(debug)
    {
        alert("proxy.pac IP=" + ip + "  HOST=" + host + "  URL=" + url);
    }

      // All client PCs on the internal network will have a 10.10.x.x address, check if I have this
     if (shExpMatch(ip, "10.10.*"))
     {
             if(debug)
          {
                 alert("Proxy for " + url);
             }
     return "PROXY proxy.companyname:81";
     }

     // If you have a different IP then this isn't the company network
     else 
     {
             if(debug)
          {
      alert("You are not at CompanyName so going direct for " + url);
             } 
            return "DIRECT";
     }

  }

该脚本还具有调试模式,可用于测试脚本是否正常工作以及它认为当前连接应该处于哪种模式(PROXY或DIRECT连接)。

您还可以制作一个更复杂的脚本,以检查要连接的服务器是否在公司内部网络中(因此,即使您的PC当前在公司网络中,因此也需要直接连接),这就是您要使用的位置。 d将您通常放入IE的代理例外框中的所有内容放入,方法是将其展开,如下所示:

//Turn debug mode on by setting debug variable to any non-empty string
//Note that "" is an empty string, and that "0", "1" & "test" are not empty strings.


function FindProxyForURL(url, host)
  {
    var ip = myIpAddress();
    var debug = "";

    if(debug)
    {
        alert("proxy.pac IP=" + ip + "  HOST=" + host + "  URL=" + url);
    }

    // Detect if trying to connect to internal/intranet host
    if(isPlainHostName(host) || dnsDomainIs(host, "intranet.companyname"))
    {
 if(debug)
 {
            alert("Direct for " + url);    
     }
    return "DIRECT";   
    }

    // Detect if trying to connect to URLs on the internal network via internal DNS suffix or IP address
    if(shExpMatch(url, "*.companyname") || shExpMatch(host, "10.100.*"))
    {
 if(debug)
 {
     alert("Direct for " + url);
 } 
        return "DIRECT";    
    } 

     // All client PCs on the internal network will have a 10.10.x.x address, check if I have this
     if (shExpMatch(ip, "10.10.*"))
     {
             if(debug)
          {
                 alert("Proxy for " + url);
             }
     return "PROXY proxy.companyname:8080";
     }

     // If you have a different IP then this isn't the company network
     else 
     {
             if(debug)
          {
      alert("You are not at CompanyName so going direct for " + url);
             } 
            return "DIRECT";
     }

  }

通过将此文件保存为PC的C驱动器上的proxy.pac之类的文件,然后对于Internet Explorer,转到“工具”->“选项”(或“控制面板”->“ Internet选项”),然后单击“连接”选项卡,再单击“ LAN设置”按钮。现在,从底部的“使用代理服务器”框中剔除勾号,然后在“使用自动配置脚本”中打勾,并使用file:// URL键入PAC文件的地址file://C:/proxy.pac

IE代理设置

对于Firefox,也可以转到工具->选项,依次单击高级选项卡,网络选项卡,设置按钮,然后单击“自动代理配置URL”设置,再次使用file:/// URL(请注意,在Firefox中在冒号之后是3个斜线,例如file:///C:/proxy.pac

Firefox代理设置


请注意,Internet Explorer 11更改了此行为,现在您无法从“ file://” URL加载PAC文件,必须使用“ HTTP://”或“ HTTPS://” URL。

在Internet Explorer 11中,WinINET团队已禁用WinINET对基于file://的脚本的支持,以促进跨网络堆栈的互操作性。建议公司改为将其代理配置脚本托管在HTTP或HTTPS服务器上。

有一种解决方法可以暂时重新启用此功能,但不建议您使用它,因为以后的更新也可能禁用此功能。

作为临时的解决方法,可以通过设置以下注册表项来删除此阻止:

密钥:HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows \ CurrentVersion \ Internet设置\
值:EnableLegacyAutoProxyFeatures
类型:REG_DWORD
资料:1

请记住,这只是一个临时措施,因为有充分的理由引入了此块,并且删除该块不会神奇地修复基于WinHTTP的应用程序。

还要注意,在进行IE11更改后,您将需要更改自动配置脚本的地址设置,因为IE 11仅接受一种语法(请参见下面IE Internals博客上链接文章的底部)。

但是,如前所述,此注册表项变通办法不太可能在Internet Explorer的将来版本中继续起作用,因此,最好找到一种将PAC保持在Web服务器上的方法。Windows内置的IIS Web服务器可以执行此操作,并且还有更多最小的功能也可以在笔记本电脑上安装。

有关IE Internals博客条目的更多信息,了解Web代理配置


除非您使用我在家里使用的相同私有IP范围进入另一个公共无线网络,否则这很酷。:)
dannysauer 2011年

好贴。写得好。
Jeff F.

1
不起作用在Windoes 8.1
Milind [R

3
为了进一步扩展@MilindR的注释,PAC文件仍在Windows 8 / IE11中,但是您需要从HTTP或HTTPS URL加载PAC文件,它不能仅使用基于文件的路径或UNC。Internet Explorer团队在此处提供的更多信息了解Web代理配置,并且此答案已更新以反映IE11的更改。
GAThrawn

4

使用免费的IP Switcher 1.0

替代文字

描述:

每当移动用户移动到不同的网络时,都必须将特定的IP地址,网关地址,子网掩码,代理服务器和默认打印机等更改为特定的网络环境。为此,他必须记住每个网络的TCP / IP设置信息。另外,他还必须重新启动计算机才能将其应用到系统并访问Internet。

不要在每次更改位置时浪费时间重新配置计算机网络设置。免费IP切换器是您的理想解决方案。只需单击一次,就可以在预配置的网络设置之间切换,而无需重新启动。借助免费IP切换器,您可以自动更改PC上的所有网络设置:IP地址,网络掩码,默认网关,DNS服务器,WINS服务器,代理设置,默认打印机等。

特征:

  • 无需重新启动即可即时切换IP网络设置
  • 切换Internet Explorer代理服务器设置
  • 切换您的默认打印机
  • 切换您的计算机名称和工作组
  • 将当前网络设置导入设置
  • 支持系统托盘图标,可通过Windows自动启动
  • 100%间谍软件免费,不包含任何间谍软件,广告软件或病毒

2
我不敢相信Windows 7尚未包含像网络配置配置文件一样有用的功能,Ubuntu拥有,Mac OS X拥有。。。
dreamlax

我知道戴尔为我的谷歌纵横开发了这样的工具,但我不喜欢它:-(
Ivo Flipse

下载版本不适用于Windows /
Hakan Forss 09年

@IvoFlipse您能记得被称为什么吗?
Matthys Du Toit

@MatthysDuToit我不能
Ivo Flipse

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.