巧用IE代理自动配置脚本

时间:2024-03-17 14:26:00

  本人所在单位启用了内部OA(办公自动化)系统,由于有许多部门并不在公司总部,不处于同一个局域网内,外围单位无法直接访问内网的OA服务器,影响了OA系统在总公司的推行。为了解决这一问题曾试图通过VPN来从互联网接入,但由于外围单位分别通过不同的ISP(Internet Service Provider)接入互联网的,导致VPN服务器配置的不一致,不能全面畅通接入,最终选择了使用代理服务器的接入方案。外围单位可以从互联网通过代理服务器访问内网的OA服务器。

  外网用户在访问公司OA服务器时,就需要在IE浏览器中配置代理服务器,配置方法见图1。

  图1 设置代理服务器

  配置好IE后就可以访问内网OA服务器了。但这样一来,就存在一个问题,就是外网用户在访问OA时需要在IE中设置代理服务器,而在访问互联网时又需要取消这一配置,不使用代理服务器而直接访问。每次都需要手动配置,十分不便,对于“菜鸟”而言就更显得繁琐了。

  如何让IE浏览器自动实现配置的转换呢?这就需要用到代理自动配置脚本(PAC-file:Proxy Auto-Config file) 了。自动配置脚本也就是PAC脚本,这是一种以.PAC为扩展名的JavaScript脚本,PAC脚本其实就是定义一个名为“FindProxyForURL”的Java Script函数,该函数会被浏览器自动调用,从而实现代理服务器的自动转换。

  由于我们的代理是反向(由外向内)的,脚本的具体内容如下:

  function findproxyforurl(host,url)

  {

  if (shexpmatch(host,"*.jigang.com.cn"))

return "proxy 218.XXX.XXX.30:8080"

  else if (shexpmatch(host,"172.16.*.*"))

return "proxy 218.XXX.XXX.30:8080"

  else

return "direct"

  }

  这段脚本的含义就是:如果是访问内网OA的请求(域名为jigang.com.cn),则使用代理,如果访问内网的某些网址(IP地址为:172.16.*.*),则使用代理,除此之外的所有请求则不使用代理而直接连接。

  将上述脚本内容保存为一个扩展名为PAC的脚本文件,如C:proxy.pac。

  然后我们设置IE浏览器把“自动配置脚本选项”指向它,完成集中设置代理配置的工作。我们只需一次性配置完毕,让IE自动识别是否使用代理服务器,而无需手动转换,从而实现访问内、外网站的自动转换。

  IE的代理设置里面有一个“使用自动配置脚本”的选项,这里的具体设置如下:

  自动配置脚本设置:打开浏览器,选择“工具/Internet选项/连接/局域网配置”,随后勾选“使用自动脚本配置”项,最后输入自动配置脚本所存在地址即可(比如file://C:proxy.pac,如图2)。

  图2 设置本机自动配置脚本

  当然我们也可以将这个脚本文件放在Wrb服务器上,这样不用为每台客户机都写一个PAC文件了,只需要在“使用自动配置脚本”的地址处填入相关的IP地址就行了。比如:http://218.XXX.XXX.30/proxy.pac。在IE中的设置见图3。

  图3 设置网络自动配置脚本

  这样做的好处是,我们可以随意修改代理脚本从而改变代理服务器的地址或端口等而不用去修改每台客户机的PAC文件了。