自建VPS-防火长城
相信很多做技术、科研的童鞋,都会找一些资料,但是这些资料毕竟相对于国内,国外跟好一些,所以我们经常会去浏览一些国外的网站,但是你如果想访问一些国外的网站,你会发现“找不到该网页”,这是因为国内为了让我们的孩子茁壮成长,对于一些网站做了封锁,那么我们怎么绕过这些封锁呢?。
防火长城-GFW
在上面我们提到需要绕过封锁,那首先我没得知道封锁到底是什么?
“中国长城”是我们对它的称呼,也称中国国家防火墙,也可以直接简称为GFW
,是为了让我们国内拥有一个良好网络环境的一个互联网审查系统,如果某个网站被审查了,我们称这个网站“被墙了”,这个“墙”就是GFW
。
如我们访问Youtube就出现了“无法访问此网站”的字样。
怎么检测这个是否被墙了呢?可以通过Ping的方式去验证
从上面可以看出,国内Ping
的结果是全部丢失,而国外却全部成功,如果细心的童鞋会发现返回的IP地址不一样,这是为什么呢?这个会在下面的解释。
常见的GFW封锁有下面几种方式:
- 域名解析服务缓存污染-DNS污染(常见被墙的方式)
- IP地址或传输层端口封锁
- 针对TCP和UDP连接的封锁
DNS污染
被墙的常用手法就是DNS污染,什么叫做DNS污染?我们先来看一张正常的访问DNS解析流程
从上图我们大概可以知道这几个步骤
- 浏览器(DNS应用程序)通过域名发起DNS请求
- DNS服务器(国外)收到这个dns请求后,在服务器中进行数据查询,查询到了就返回当前域名的IP地址。
- 最后将IP地址返回给浏览器(DNS应用程序),然后就可以进行HTTP请求了。
那GFW到底是在这个过程中哪里进行了‘污染’?
因为dns请求使用的是UDP
网络传输协议,UDP
协议是没有进行校验机制的,所以当dns请求返回到国内的宽带上时,GFW
就会进行伪装,并且检测携带的IP地址,如果发现是被墙的IP的话,就将这个IP替换成一个错误的ip地址,这也就是上面所说的国内和国外使用Ping
,但是返回的IP不一样的原因。
代理
所谓“道高一尺魔高一丈”,所有很多大牛为了突破这种封锁,通过使用代理的方式。
什么是代理?大概就是如下的一个过程
- 先买一个国外的服务器并搭建好服务器代理程序(代理商会提供)
- 在应用端也需要安装应用代理程序(代理商会提供)
- 通过代理程序连接上代理服务器,然后应用就可以通过代理应用向代理服务器发起请求(传输协议)。
- 代理服务器请求dns获取ip,并通过ip请求数据
- 代理服务器通过传输协议向代理应用返回数据
- 代理应用将数据交还给发起请求的应用
代理协议
在上面的流程中,我们知道代理的核心是代理应用和代理服务之间的数据转发与接收。数据传输协议通过传输协议,比如L2TP/IPsec
、PPTP
和SOCKS5
等协议。
在前两年就出现了大批VPS供应商国外服务器无法使用的问题,这是因为我们国家越来越强大了,GFW能够对L2TP/IPsec
、PPTP
这些传输协议进行审查。
当然,办法总比问题多,很多大神以及团队,致力于打造一个稳定的网络通信,提供了很多的工具,比如XRay、V2ray以及Trojan,他们大都支持Socks
、Http
、VMESS
、VLESS
等协议