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

Hak*_*rss 29 laptop windows-7 proxy

在工作和家庭之间移动我的笔记本电脑 我需要更改我的互联网代理设置。Windows 7 是否有任何内置方式可以根据我当前的活动网络更改这些设置?

GAT*_*awn 21

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

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

function FindProxyForURL(url, host)
{
     return "PROXY proxy.companyname:8080";
}
Run Code Online (Sandbox Code Playgroud)

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

//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";
     }

  }
Run Code Online (Sandbox Code Playgroud)

该脚本还有一个调试模式,您可以使用它来测试它是否正在工作以及它认为您当前的连接应该是哪种模式(代理或直接连接)。

您还可以制作一个更复杂的脚本来检查诸如您要连接的服务器是否在您的公司内部网络上(因此需要直接连接,即使您的 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";
     }

  }
Run Code Online (Sandbox Code Playgroud)

使用此文件,将其保存在 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.

火狐代理设置


请注意,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 内部博客上链接文章的底部)。

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

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

  • 为了扩展@MilindR 上面的评论,PAC 文件仍在 Windows 8/IE11 中,但您需要从 HTTP 或 HTTPS URL 加载 PAC 文件,它不能只使用基于文件的路径或 UNC。来自 Internet Explorer 团队的更多信息 [了解 Web 代理配置](http://blogs.msdn.com/b/ieinternals/archive/2013/10/11/web-proxy-configuration-and-ie11-changes.aspx ) 并且此答案已更新以反映 IE11 的更改。 (3认同)

Ivo*_*pse 4

使用免费IP切换器1.0

替代文本

描述:

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

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

特征:

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

  • 我不敢相信像网络配置文件这样有用的东西还没有成为 Windows 7 的一部分。Ubuntu 有它,Mac OS X 有它。。。 (2认同)