主要是先将数据转发到国外的代理服务器上(还没被GFW 黑名单记录),再由代理服务器帮我请求数据,最后返回由服务端返回的需要的数据。

但仅仅是这样是完全不够的,因为GFW可以查看到应用层中的数据是什么,例如说应用层想要google请求数据,GFW能查看,就能知道你正在翻墙,就会把你的请求数据包给干掉了

因此,我们需要给应用层的数据来进行加密。最早的是VPN,但VPN加密的特征太明显了,GFW一看这个应用层的数据就知道的vpn加密的,知道你的翻墙意图,就给你干掉了

后来shadowsocks协议出来,专门用来加密应用层的协议。将本地的请求转发到clash等代理软件,应用层数据经过内置的shadowsocks加密后再转发到国外的代理服务器,流量经过GFW的时候他解读不出来应用层数据想要来干嘛,就给放行了,代理服务器因为也用的shadowsocks协议,就可以将数据解密出来。当响应数据发回来的时候,国外的代理服务器也会对数据进行相同的shadowsocks加密操作,回到本机的时候也会进行解密

至于shadowsocksR,这是一个shadowsocks的一个分支,他在shadowsocks的基础上加了一个插件,让加密后的应用层数据伪装成一个http请求

至于trojan,和shadowsocks一样都是基于socks5代理协议的加密协议

reference

来源于不良人的分享:https://www.youtube.com/watch?v=Etd6Sm3SaKM