2012年7月1日星期日

如何让访问者看到你的网站

  这是一个让某国的访问者看到你的网站,而无需他们方面努力的教程。某个复杂的过滤系统能够通过多种方法阻止网站访问。 常用的IP封锁,用Connection Reset来实施URL和包过滤,用Connection Reset来实施TLS(SSL)证书过滤, DNS过滤。 区分IP封锁和URL过滤的方法是在页尾。 

  IP封锁

  使用的CDN(Count Delivery Network)来隐藏你的网站的真实IP。 

  我自己做了一个简单的测试。 我创建了一个谷歌网站链接如下。4个域名。 

  CNAME记录:(ghs.google.com目前尚未在某国封锁) 

  test1.percy.in - > ghs.google.com的CDN启用 

  test2.percy.in - > ghs.google.com 

  A记录:(216.239.32.21被IP封锁) 

  test3.percy.in - > 216.239.32.21 CDN的启用 

  test4.percy.in - > 216.239.32.21 

  测试1和测试2仅用于确认该网站是可以访问的。 试验3和试验4模拟被封锁的IP的网站。 

   我选择了CDN是一个CloudFlare的免费帐户。(你可以付费选择pro帐号,我更喜欢免费的)  

  这里是测试结果。 

  test1和test2都在某国访问。 测试3能访问,而测试4访问被封锁。 

  CDN启用时,它相当于一个反向代理。 因此,TEST3实际解析到CDN拥有的一个IP地址(在我这是CloudFlare的IP),从而绕过IP阻塞。 除非[系统]阻止CDN的IP地址,(这也将阻止许多其他无关网站),才能封锁你的IP。而且你可以简单的注册一个新的CloudFlare帐号,来获取新一组IP地址。 

  URL /过滤

  例如,您的域名是example.com。 在URL中他们将过滤".example.com"; 在HTTP头中他们过滤"host:example.com"。 所以,example.com被封锁而aaaexample.com在某国能访问。 

  如果您的域名作为限制词过滤,应采用完整的网站加密。 

  对策:您的服务器或VPS上安装SSL证书。 有些证书是昂贵的,而有些则是完全免费且无限时间的。 StartSSL提供免费证书只需要你提交一个域名的电子邮件地址。而域名的电子邮件地址也可以从Google企业应用套件费得到 。 灵活的SSL。 

  TLS(SSL)证书过滤

  现在[系统]知道您正在使用加密来逃避审查,所以决定审查您的证书。(证书是建立加密隧道前以明文传输的)。 

  两个应对措施和前面说的差不多: 

  1。 因为你的证书是完全免费,由电脑自动分发的,你可以不断改变你的证书,而TLS(SSL)证书过滤列表不太更新。

  2。 使用的CloudFlare的SSL选项。 CloudFlare 回答我说多个站点可能使用相同的证书,每个站点都有自己的主题备用名称(SAN)和通用名称,将有一些变化的SSL#.cloudflare.com。 因此,IP地址的情况下,[系统]可以过滤您的证书就会封锁一堆无辜的网站。 

  (但是,他们可以阻止一堆网站的SSL连接,然后只过滤你的域名。这样一来,其他网站可以仅通过http访问) 

  DNS过滤:

  这是最严厉的但很少使用的封锁措施。 已知受到这种封锁的网站有*facebook.com(包括facebook.com),*twitter.com(包括 twitter.com),*YouTube.com上(包括YouTube.com)encrypted.google.com,plus.google.com,www.kenengba.com。 猜测只有大约几十个网站被这种方式封锁。 

  这里有两种形式的DNS过滤(维基百科只记录第一个) 

  形式1[DNS劫持]:当访问者使用本地DNS服务器由ISP控制,这项调查只会导致连接超时。 这是由当地的DNS服务器。 

  形式2[DNS污染]:当访问者使用国外的DNS服务器,如OpenDNS的,谷歌公共DNS,甚至是随机不存在国外IP,[系统]将返回了一些随机的网站对应的被封锁的IP地址,或阻塞真正DNS反馈。 

  (在某国,在一个不存在的DNS服务器1.1.1.1,查询一个不存在的域名aaa.bbbtwitter.com) - DNS污染 

  nslookup aaa.bbbtwitter.com 1.1.1.1 Server: 1.1.1.1 Address: 1.1.1.1#53

  Name: aaa.twitter.com Address: 78.16.49.15

  (在某国,在一个存在的外国DNS服务器8.8.8.8 查找一个存在的域名encrypted.google.com) - DNS污染

  nslookup encrypted.google.com 8.8.8.8 Server:  8.8.8.8 Address: 8.8.8.8#53  Non-authoritative answer: *** Can''t find encrypted.google.com: No answer 

  YouTube的情况是非常有趣。查询 *.youtube.com和YouTube.com返回一个假的IP地址,而查询*YouTube.com则返回 No answer (应该返回IP,或者返回NXDOMAIN) 

  如何应对: 

  方法1:更改您的子域。 我们最开始用www.example.com 

  www.example.com --" www.example.com" 被过滤 --> 

  更改为 www1( www2,www3,etc) .example.com --".example.com" 被过滤  -->

  更改为 example.com -- "example.com " 被过滤

  裸域被过滤可能性不大。因为如果他们过滤oogl.com,google.com会也将在某国无法访问。请注意,这和前面提到的URL/包过滤不同] 

  方法2: 

  不要使用域名。 使用IP地址,例如:http://12.34.56.78或https://12.34.56.78 

  但是,它会使你的网站容易受到IP封锁,因为没有域名,不能使用CDN。 

  但因为只有著名的网站被这种方式封锁,你肯定有金钱或程序员来建立一个加密的反向代理服务器,或者自己想出对策。 

  --------------------- 

  区分IPURL过滤的方法或两者同 

  如果您的网站只有一部分是无法访问,那么它是被URL过滤(假设你的网站只在一台服务器上) 

  如果您的网站(www.example.com)是完全无法访问,请分别在某国访问: 

  http://www.msn.com/www.example.com请等待几分钟再访问下一个地址,因为在短时间内[系统]会阻止所有从计算机到www.msn.com的流量。 所以,等待,直到你可以访问www.msn.com(通常是一分钟),然后再尝试下一个网址。 

  只要有任意一个上述网址无法访问,您的网站被URL过滤。 

  在某国做一个ping测试,以确定是否您的IP被封锁。  

  英文原文:How to unblock websites in China for web owners

  中文翻译: Percy Alpha(原文作者)

  中文译文: 如何让中国的访问者看到你的网站--对网站主