协议

协议协议

  • 本篇章详细介绍了不同协议之间的差别和特点,但是并没有特别推荐你选用哪种协议,仅仅只是作为一种学理介绍和参考。

VPN

💡 VPN(Virtual Private Network),虚拟专用网络,目的是为了联通两个内网,并起到加密作用,并不是为了翻墙而生,但是其流量特征可以被用来翻墙,使用时间较早,因此被民间认为VPN就是翻墙的代名词

  • VPN数据加密,IPSec OpenVPN——特征明显

  • 但是由于VPN本质是用来合并两个企业的内网的,所以GFW不会直接干掉 当特殊时期、长时间大流量连接就会被中断

和VPS不同的是,VPN是直接将内容经过GFW发到目标VPN服务器,并借由VPN服务器转交真正的意图

  • 优点是相较于代理,本地可以没有客户端直接通过网页进行,以及代理层级较高,可以最大限度地代理系统级应用

  • 缺点是在本地不进行客户端的伪装加密,直接经过GFW告诉GFW本身VPN服务器,GFW服务器对VPN的IP敏感,容易封锁或者是在特殊时期封锁

⚙ 综合来说这种方式已经不再推荐,VPN本身在公司之间作为内网联通的手段应用广泛,且在国家备案。例如学校内部校园网从外部访问的时、知网在校外访问时的VPN线路等。然而作为翻墙来说,流量未经混淆或加密经过GFW就会被记录下VPN的IP地址,这有利于GFW对VPN服务器的活动进行监视。 现在活下来的VPN除了钓鱼型的VPN之外,剩下的VPN要么是手里有着能够和GFW相抗衡的IP数量的境外VPN服务,这种或许质量不错但是收费极其昂贵;或者是套壳机场代理节点的VPN。若是想要稳定的翻墙还是均衡考虑这种方法。

Shadowsocks

💡 不同于VPN,这是一种翻墙而生的协议(虽然作者好像被请去喝茶了,也有同名软件),简称SS,是一种借助于本地客户端对GFW最终解析到的域名请求做出对称加密的方式加密域名请求来逃避GFW的审查,真正实现了既能加密流量,又没有流量特征

1、原理解释

  1. 首先在本地客户端(例如v2ray)设置好需要监听的端口

  2. 浏览器发送的数据会优先被SS客户端监听

  3. SS客户端对所监听到的内容进行加密

本地客户端将监听的内容使用**对称加密(加密和解密的密钥相同)**的方式对请求的域名(例如:google.com)加密成无序字符串,并配置好VPS的地址和端口 这串被加密过的数据流经过GFW时,因为无法解密加密内容因而无法得知请求的域名内容,只能获取要访问的VPS服务器,所以放行数据

2、优点

  • 不同与使用VPN进行翻墙的方式,此协议转为翻墙而生

  • 双层服务器加解密(本地软件例如v2ray和墙外的VPS服务器)

  • 虽然不如VPN代理的级别高,部分系统级别的应用无法即使开全局也无法代理,但是翻墙比较稳定而且成本极低

  • 对于局域网共享、伪装域名混淆免流等自定义功能的支持比较完善

  • 开放程度较高,各类教程比较完备,可以多样化的阻挡GFW的审查

3、问题

3.1、重放攻击

💡 虽然SS是一个非常好的协议,开创了翻墙的新起点,但是现在使用实际上已经很少了,原因在于GFW可以主动向国外的VPS服务器通过重放攻击进行审查,如果SS的协议设置不够完善,GFW就会发现其运行有SS协议并将VPS的服务器列入黑名单,这样这个节点和这台VPS就基本上废了

  • 本地发送流量:ss将流量加密,在经过GFW的时候,GFW并不知道我们想要访问的域名内容,且SS服务器的IP并不在GFW的黑名单中

    • GFW或许会认为你可疑,但互联网很大,GFW也不能保证所有自己的数据库没有记载的IP都有问题,所以GFW只能放行

  • 经过GFW:然而数据流是要发送给SS服务器的,所以要配置好SS服务器的IP和端口等内容,且这部分信息经过GFW时能够被GFW所探知

    • GFW通过探知的内容捏造一个数据包发往SS服务器

    • GFW虽然能够获得IP和端口但是无法获得SS加密本地数据的密钥

    • 因此SS服务器对GFW发送的数据包密钥验证不通过并给出错误回执

  • 结果:GFW虽然无法和SS服务器建立有效链接,但是GFW却可以通过这个举动判断SS服务器是否运行了SS协议,从而对SS服务器做出IP封锁

此种攻击方式被称为重放攻击,如果你是SS服务器的持有者,你可以通过命令查看SS协议运行状况,找出不属于自己本地发往SS服务器的IP的失败链接,通过Ping的方式找到该IP的归属地

3.2、预防措施——plugin插件

💡 插件的目的在于伪装流量,将SS协议所代理的流量伪装成一个正常的http或者websocks流量,具体的分类有v2ray plugin等

  • http协议头:在已经加密好的SS协议前面加上一个http协议头,将任何流量都伪装成一个http数据

  • GFW处:在这部分http协议头能够被正常看到,但是SS协议部分却仍处于加密状态

  • VPS部分:加了插件后数据包经由GFW发往plugin插件,而不是直接发送给ss服务器 ,由plugin插件的监听端口,去掉http协议头,把真正的内容还原发往ss节点服务器


但要注意的是并不是所有的客户端都支持plugin插件功能

3.3、混淆等解决方案

近些年来不加插件直接裸奔SS协议就是找死,也可以通过CDN(详见线路节)或者更换SS服务器IP的方式救急,通过AEAD等方式加密比较常用

目录

最后更新于