如何通过 Hosts 文件翻墙&通过 Ping 检测某个网站是否被墙

2012年9月6日 | 分类: 翻墙相关 | 标签: , , , ,

要操 GFW,你可以使用虚拟专用网络(VPN)、安全外壳协议(SSH)、代理(Proxy)等等多种翻墙工具。

其实,翻墙不一定要使用这些第三方的工具,我们也可以通过修改电脑系统自带的一个叫 Hosts 的文件直接翻墙,具体方法如下:

1. 寻找 IP 地址

OpenDNS Facebook IP Addresses

像 Facebook、Twitter、YouTube 等这些大网站,都有多个不同的 IP 地址,那么如何查看它们的所有 IP 地址呢?

你可以访问 OpenDNS 页面,输入网站的域名(例如 facebook.com),再点击 “Check this domain” 按钮,然后就可以看到该网站世界各地的 IP 地址。

2. 挑选没有被墙的 IP 地址

Ping Facebook

在某个被墙的网站所有 IP 地址里面,有些或许已经被墙了,那么,如何知道哪些被墙,哪些没有被墙呢?

最简单的方法就是在不翻墙的情况下, Ping 一下它们。在 Windows 系统 上,你可以打开命令提示窗(cmd.exe),而在 Mac OS 系统 上,你可以打开终端应用程序(Terminal),然后直接输入以下命令:

ping 66.220.152.16

以上 “66.220.152.16” 是 Facebook 的一个 IP 地址,你可以将它改成你要 Ping 的实际 IP 地址。

如果显示的结果都是“链接超时”(timeout),那么该 IP 地址就被墙了,如果不是,那你就可以把它添加到 Hosts 文件。

3. 修改 Hosts 文件

Adding the Facebook Hosts

电脑系统自带的 Hosts 文件就好比一个 DNS 系统,所以,我们可以将某个被墙网站的域名指向它其中一个没有被墙的 IP 地址,并突破 GFW 的封锁。

在 Windows 系统上,你可以通过以下路径找到传说中的 Hosts 文件:

C:\WINDOWS\system32\drivers\etc

而在 Mac OS 上,你则可以在终端应用程序上输入以下命令并直接打开 Hosts 文件:

sudo vi /private/etc/hosts

Hosts 文件打开之后,你就可以把被墙网站的没有被墙的 IP 地址以及对应的域名添加到文件的末尾。拿 Facebook 来讲,你可以添加以下两行:

66.220.152.16 facebook.com

66.220.152.16 www.facebook.com

不 同的域名对应一个相同或者不相同的 IP,而且该 IP 只对该域名有效。所以,通过以上两行代码,你只能访问 facebook.com 和 www.facebook.com,而如果要访问 Facebook 的其他子域名(例如 developers.facebook.com),那么就还需要再添加一行含有该域名以及其对应的没有被墙的 IP 地址的代码。

代码添加完之后,保存文件,然后你就可以在不使用任何翻墙工具的情况下访问 Facebook 了,不过需要把网站链接里面的 “http” 改成 “https”,也就是说,你需要通过以下两个链接访问 Facebook 网站:

https://facebook.com

或者

https://www.facebook.com

这种通过修改 Hosts 文件翻墙的方法就好比隔山打牛,不需要借助其他工具。但是,如果某个被墙网站的所有 IP 地址都被墙了,那么这种方法也就无效了,所以,现在要访问 Twitter 网站,就只能使用 VPN、SSH、Proxy 之类的翻墙工具了。

来源http://jingpin.org/unblock-blocked-sites-with-hosts/

==========

通过 Ping 检测某个网站是否被墙

Ping 是一个用来测试特定主机能否通过 IP 到达的电脑网络工具,不过通常被用作动词。

而如果某个网站不能通过 IP 到达,那么就证明该网站宕机或者被墙了。

理论上,如果某个网站只有一个 IP,那么不管是 Ping 域名还是 IP,都可以检测它是否被墙,而实际上被墙的网站(例如 Facebook)大都有多个 IP,所以,Ping 域名比较实际方便。

在 Windows 系统上,你可以打开命令提示窗(cmd.exe),而在 Mac OS 系统上,你可以打开终端应用程序(Terminal),然后直接输入以下命令:

ping twitter.com

你可以将上面的 “twitter.com” 改成你要检测的网站域名。

如果结果显示的都是 “链接超时”(timeout),如下图所示:

Failed to Ping Twitter

那么该网站就大概就被墙了,但是也不一定,因为还有一个可能就是该网站宕机了。

那么如何断定该网站究竟是被墙了还是服务器挂了呢?你可以启用 VPN 再 Ping 一次它的域名,如果结果没有或者几乎没有“链接超时”的错误,那么该网站就是被墙了,而如果结果仍然全部都是“链接超时”的错误,那么该网站就是宕机了。

由于 Ping 只能检测某个网站的 IP 地址是否被墙,所以,如果结果没有没有或者几乎没有“链接超时”的错误,那也只能证明该网站对应的某个 IP 没有被墙,并不能证明它的域名是否被墙。

因此,当你可以成功 Ping 某个网站的域名,但是在浏览器上却无法打开该网站的时候,那就证明该网站被墙了。

原文http://jingpin.org/check-if-a-site-is-blocked-by-pinging-it/

  1. Aquamarine
    2012年9月8日13:30

    第二幅图中,被阻止的和未被阻止的标注是不是反了?

  2. W.We
    2012年9月6日21:22

    如果GFW屏蔽了Header里面的关键字还是不行的。
    比如GFW屏蔽了Header里面的Host: *.sitemix.jp

    • NGCC
      2012年9月7日22:40

      全文关键字,HTTP头关键字可以用https绕过。

  3. ownt
    2012年9月6日20:51

    tracert和traceroute比较实在,能过出口的就没被封,而且部分服务器会丢弃掉ICMP包。