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

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

在办公室和家里之间移动我的笔记本电脑时,我需要更改我的互联网代理设置。Windows 7 是否有内置方法可以根据我当前的活动网络更改这些设置?

答案1

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

一个最小的 PAC 文件,始终将你发送到代理服务器代理.公司名称在端口 81 上:

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

PAC 文件的一个稍微复杂一点的例子是,它通过检查您选取的 IP 地址范围来检查您所在的网络。在此示例中,公司中的所有客户端 PC 都通过 DHCP 获得 10.10.* 范围内的 IP 地址,并通过代理服务器访问互联网代理.公司名称在端口 81 上。

//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 当前位于公司网络上)之类的事情,这是您可以将通常放在 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 Settings\
值: EnableLegacyAutoProxyFeatures
类型:REG_DWORD
数据:1

请记住,这只是一个临时措施,因为引入此阻止是出于好意,并且删除该阻止不会神奇地修复基于 WinHTTP 的应用程序。

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

但是,如上所述,此注册表项解决方法不太可能在 Internet Explorer 的未来版本中继续起作用,因此您最好找到一种将 PAC 保存在 Web 服务器上的方法。Windows 内置的 IIS Web 服务器就可以了,而且还有更简单的 Web 服务器也可以安装在您的笔记本电脑上。

有关 IE Internals 博客文章的更多信息了解 Web 代理配置

答案2

使用免费 IP 切换器 1.0

替代文本

描述:

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

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

特征:

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

答案3

您还可以通过其他付费方式来切换网络配置,例如 移动网络交换机或者网络设置员

相关内容