如何不翻墙使用Google服务?

三月 7, 2015 at 10:35 下午Easton

2024/10/04 为了避免误导大家,该方法应该不可用了。该文章仅作存档。

注意:

目前64.233.X.X IP段可用服务器已经不多了,大家可以尝试173.194.79.1开始,搜索200个左右的IP。

BUG修复:

var IP =
{
	toInt: function(ip)
	{
		var ipTest =/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
		var xH = "", result = ipTest.exec(ip);
		if(!result) return -1;
		return (parseInt(result[1]) << 24 
			| parseInt(result[2]) << 16
			| parseInt(result[3]) << 8
			| parseInt(result[4])) >>> 0;
	},
	toString: function(ip)
	{
		if(ip < 0 || ip > 0xFFFFFFFF){
			throw new ArgumentException("参数超过IPV4地址范围。");
		}
		return (ip >>> 24) + "." + (ip >> 16 & 0xFF) + "." + (ip >> 8 & 0xFF) + "." + (ip & 0xFF);
	}
}

在当前脚本21行找到这个对象,替换掉这个对象的代码。之前的版本忘了考虑负数问题,所以把IP转换成整数会有可能出现负数的可能,只需要把整数>>>0运算就可以解决这个问题。

上述BUG只存在之前下载的脚本内,当前提供下载的脚本已修复该BUG。

从Google公开宣布退出天朝开始,在我天朝上国Google服务一直是不稳定的,最近两年更是直接河蟹不能访问(嘿嘿,原因你懂得。此处省略N字)。但是由于Google索引了全球众多优秀站点,对于众多程序猿和各行各业的科研工作者来说是很有用的,离开了Google用某度很显然是一种很操蛋的感觉(中文搜索也没觉得某度能比Google好到哪里,差太远了)。写这篇文章我并不是想挑战党的英明领导,我只想让更多的学者、科研工作者能使用Google提供的全球搜索服务查找学习资料。

我觉得我应该检讨下自己,我还是背一遍《社会主义核心价值观》好了:富强、民主、文明、和谐;自由、平等、公正、法治;爱国、敬业、诚信、友善。希望大家热爱自己的国家,热爱党,我们用Google只是学习国外的先进科学技术。

之前互联网上也有很多关于如何恢复Google服务的文章,但是大多数都是授人以鱼,并不是授人以渔。

好了,废话不多说,我们开始进入正题,如何不翻墙使用Google的服务。

一、了解Google是如何被封的,以及WEB服务的请求过程。(如果不想了解原理可直接跳过本节,直接到第二节)

之前发过两篇博文说过如何恢复Google服务,但是由于文章可读内容非常少,对于一般用户来说可能没什么意义,这篇文章我将用大量的截图和例子说明如何恢复Goolge服务,让您在不翻墙的情况下使用Goolge提供的优秀搜索服务。《利用EJS查找可用的Google搜索服务器IP,并缓存入系统Hosts文件内(改进版)》《利用EJS查找可用的Google搜索服务器IP,并缓存入系统Hosts文件内

一般人遇到被墙网站首先想到的是利用代理翻墙,但是这招会非常影响速度,时间就是生命,时间就是金钱,打开个网站要超过5秒这种感觉会非常蛋疼,因此,不到万不得已的情况下我一般不会考虑使用IP代理的。

要解决天朝境内不能使用Google的问题首先我们要了解天朝是如何做到屏蔽大家上Google的。

众所周知,我们上Google需要在浏览器的地址栏输入http://www.google.com.hk,这就是Google的域名,通过Google的域名我们可以访问Google的服务器。而服务器在互联网的唯一地址应该是IP,而不是域名,这就涉及到域名解析问题。域名在得到最终IP的过程就是域名解析的过程,这一般是通过DNS服务器实现的,在浏览器访问http://www.google.com.hk的时候会向当前计算机内设置的DNS服务器查询www.google.com.hk域名对应的IP地址,然后通过TCP/IP协议访问这个IP地址的80端口,并且发送HTTP协议内规定的请求头信息,最后服务器收到信息后就会返回Google的网页源代码,浏览器渲染这些HTML代码后将Google搜索的界面显示在您的面前。这就是一个简单的WEB交互过程,在了解完这个WEB交互过程我们就可以开始分析Google为什么不能访问了。

通过前面的讲解,我们应该清楚了我们访问Google服务需要经历哪些环节,通过了解这些环节我们可以逐一排除可能的原因,并最终找到答案。

1、排除DNS解析过程中的问题。

要测试这个问题可以通过Windows提供的ping命令,这个命令可以支持解析域名,并得到最终的IP地址。

按WIN键+R可以打开“运行”,键入“cmd”后按回车则可以打开命令行工具。

在命令行工具内键入ping www.google.com.hk,如下图所示。

 

我的系统是做过处理的,可以在不翻墙的情况下使用Google,因此我们可以看到我这里ping Google域名是有响应的。

但是您在自己的电脑上ping的时候可能只能看到“正在 Ping www.google.com.hk [XXX.XXX.XXX.XXX] 具有 32 字节的数据:”,然后后面就是超时信息。

通过上述简单的小实验我们就可以排除在DNS解析过程中发生了问题。

2、排除Google服务器的IP被封。

嘿嘿,上面的小实验其实已经说明了结果,其实就是Google服务器的IP被封了(否则不会ping不通Google服务器,而Google服务器是没有禁止ping的,它会响应ping),在我朝主干网络上,组织可对我等屁民的任何网络请求进行拦截,要封一个IP对于伟大的党组织来说是非常容易的。

知道了原因,我们开始想办法如何突破这种封锁。

要知道,Google作为全球最大的搜索引擎服务商,它绝不可能只有一台服务器,它的服务器遍布全球各地,因此组织要想完全封锁Google服务也并不是那么容易的,而且组织内部的科研人员很多情况下肯定也是需要使用Google服务的,因此他们必定留有一些可用的Google服务器或者漏网之鱼。我们通过去扫描已知的Google服务器IP段可以找到这些可用的服务器,并使用系统提供的DNS缓存文件(hosts)就可以将这些IP缓存到本地电脑,以后在域名解析的时候直接使用本机的DNS缓存进行解析,而不是用DNS服务器。

二、如何突破封锁,恢复Google服务。

了解了上述原理,要恢复Google对于会编程的程序猿来说应该是so easy的,但是对于普通大众来说还是有些麻烦的,这里我提供一个非常简单的方案,只需要下载一个脚本解释器,运行一端小脚本即可。

1、首先,需要下载一个脚本解释器; EJSTool Alpha2 V1.3[R1](绿色版).zip (它内置了强大的运行库,可以方便的使用JavaScrit进行编程)

上一版本下载地址:http://pan.baidu.com/s/1c06fbtY(存在若干BUG,并且与2015年3月12日微软发布的某个补丁存在冲突,导致IDE无法启动,不建议下载,建议下载新版本

 

2、解压脚本解释器,得到目录“EJSTool Alpha2 V1.2[R1](绿色版)”,在目录内找到

双击它即可在系统内注册SJS脚本文件的关联。(注意:部分杀毒软件会给出提示有一个叫“ejsshell.exe”的程序正在操作系统注册表,只要将ejsshell.exe设置到杀毒软件白名单即可,这只是一个脚本解释器,对电脑并没有任何副作用,如果不想关联SJS文件只要双击“取消注册SJS文件.bat”文件即可

3、下载EJS脚本文件,点击这里下载脚本文件。

如果前面已经关联了SJS文件,则下载回来的文件会有一个灰色的图标,上面带有SJS字样,如下图:

双击这个文件即可开始恢复Google服务之旅。

如果双击脚本文件后一切正常,则会出现上面截图中的内容。上面的输入框内是设置Google服务器IP段起始内容的,一般按照默认参数设置即可。

设置完这两步后脚本就开始搜索工作了,请耐心等待脚本执行完毕。

在200个Google服务器IP之间一般都会有两三个IP是可用的,在找到可用的IP后SJS脚本会将这个IP缓存到系统的hosts文件内。

完成搜索后在浏览器中键入http://www.google.com.hk

嘿嘿,恢复完后你会意外的发现原来Chrome的数据同步服务也正常了。

Done, have fun...

本文短地址:http://ily.so/zIzUNz

Posted in: EJSTool

Tags:

评论 (15) -

想要进其他的网站怎么办
中华人民共和国 想要进其他的网站怎么办 says:

想要进其他的网站怎么办

回复

Google一直处于半封锁状态,并有封死,其他站点的话可能更多的还是需要使用代理才能访问。我们这里解决Google封锁只是为了学术资料的检索问题,因此当前解决方案已经能满足我们的日常工作需要了。

据我测试过可以考虑使用IPV6地址突破防火墙,但是仅限于教育网络,我大学毕业后就没有遇到这类网络了。

回复

不错!!

回复

运行.bat文件失败
中华人民共和国 运行.bat文件失败 says:

运行SJS注册文件.bat文件失败,System.UnauthorizedAccessException: Access to the registry key 'HKEY_CLASSES_ROOT\.sjs' is denied.
请问怎么解决?

回复

这是因为你的杀毒软件禁用了注册表修改,这是新增一个文件关联的注册表项,是安全的。在杀毒软件提示时请允许软件添加注册表项。

回复

我也出现了上面的问题,但是系统没有杀毒软件提示,我应该怎么办?

回复

请问你解决了吗?可告知我方法吗?

回复

怎么改要ping的ip地址啊

回复

按那些步骤做了之后为啥还是上不了google

回复

为啥按上述步骤都做了还是上不了谷歌

回复

运行SJS注册文件.bat文件失败,System.UnauthorizedAccessException: Access to the registry key 'HKEY_CLASSES_ROOT\.sjs' is denied. 但是没有 杀毒软件提示不允许添加添加注册表项

回复

需要用超级管理员权限运行这个脚本,Windows7默认用户不是超级管理员,所以单击鼠标右键,单击“以管理员身份运行”即可。

回复

哈喽。

回复

你好,请问可以发一下0S X 的教程吗?

回复

用Windows扫出可用IP放到MAC OS中一样可以用的。

回复

添加评论

  Country flag

biuquote
  • 评论
  • 在线预览
Loading