用google.cn做跳板访问Google的服务

有时候访问google.com的服务不行(如Appspot)?那除了用各种在线代理之外还有没有另外方法可以使用?其实利用Google.cn被封机率小的特点,让Google.cn帮我们访问那些原本不能访问的站点。

简单的说,Google的所有服务都是可以通过一个相同的服务器访问到,Google根据请求的URL当中的域名来决定应该定向到哪个服务。 www.google.cn一样可以访问到所有的服务,例如App Engine。但是因为DNS服务器的原因,appengine.google.com会被定向到Google美国的服务器,不会去连接 www.google.cn。但是事实上,如果我们能够向www.google.cn发送一个HTTP请求,其中的URL是指向 appengine.google.com的,服务器一样能够帮我们中转请求,并把结果会传给我们。

要达到这个目的有两个方法,一个是修改 hosts,让appengine.google.com和*.appspot.com指向到www.google.cn的IP地址。这个有两个劣势,一个是www.google.cn其实有很多个地址做负载均衡,一旦加上了hosts条目,就失去了负载均衡的好处;另一个劣势是hosts文件不支持*.appspot.com这种语法,所以只能把自己知道的appspot上的应用统统添加。

另一个方法则相对好一点,就是把www.google.cn:80设置成访问appengine.google.com的代理服务器。这种方法很好用,但是需要写PAC文件(Proxy Auto-Config,代理服务器自动配置文件)。所幸这个文件语法相当简单,因此可以直接写下面一段:

function FindProxyForURL(url, host) {
if (shExpMatch(host,"*.appspot.com")) {
return "PROXY www.google.cn:80";
}
if (shExpMatch(host,"appengine.google.com")) {
return "PROXY www.google.cn:80";
}
return "DIRECT";
}

然后保存成一个proxy.pac文件。在浏览器的配置当中,把“自动浏览器配置脚本”的配置项指到这里即可。

比如你把proxy.pac放在C盘根目录下,然后在firefox的“首选项”菜单中,打开“连接设置”对话框,选择“自动代理配置URL”,在后面的输入框中,填入配置文件地址,我这个就是file:///C:/proxy.pac

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

注意,一个是三个/,一个是两个/
转帖自:http://visameblog.appspot.com/entry/13023/

作者:小老外

我还需要不断地学习。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据