vpn/Proxy/shadowsocks的异同——Proxy绕路原理
Author:zhoulujun Date:
一百年前的大清,我们祖先也很难获取外部日新月异的技术变革,当今的我们,想查一手的技术资料,想看写技术文档,也是奈何被 强!
vpn、vps、Proxy、shadowsocks、V2Ray,不可避免地被使用,最大原因还是08年,谷哥出走神州,让我们变得魏则西
GFW实现网络封锁的手段主要有两种:dns劫持和ip封锁(除此之外,还有dns污染和关键词过滤,这里我们不讨论)。
Dns劫持:。而GFW所做的就是站在用户和dns服务器之间,破坏它们的正常通讯,并向用户回传一个假ip。用户拿不到真正的ip,自然也就访问不到本想访问的网站了。
Dns劫持是GFW早期唯一的技术手段,所以那个时候的用户通过修改Hosts文件的方式就可以零成本突破封锁了
ip封锁:dns劫持之后,GFW引入了ip封锁,直接锁住了访问目标网站的去路,用户发往被封锁ip的任何数据都会被墙截断。这个时候,依靠类似于修改Hosts文件这种低成本方法突破封锁就显得有些天方夜谭了。那么,解决办法是什么呢?答案是:在第三方架设嬏*+蔷服务器,中转与目标服务器间的来往流量。目前为止,GFW采用的是黑名单模式,像Google、Facebook这种在黑名单上的网站的ip无法访问,而不在黑名单上的第三方不记名ip可以。于是,一切就很明朗了,我们目前几乎所有的嬏*+蔷手段都是基于上述原理实现的,vpn是,shadowsocks是,还有一些比较冷门的(比如v2ray)同样如此,只不过它们的技术细节不同(这个我们不会深入)。
当然之前也染指过https,但是奈何 比如CNNIC 证书乱发,后面没有人信任。当然,一些部门强制让你下载他们的 ssl证书,而且是root的。终结有什么不好的,鬼都无法保证。
现在AI技术兴起,伟大GFW当仁不让,依靠人工智能,大力捕获 每个爬 蔷的
vpn
Vpn,全称“虚拟私人网络(Virtual Private Network)”,是一种加密通讯技术。vpn是一个统称,它有很多的具体实现,比如PPTP、L2TP、IPSec和openvpn。vpn出现远早于GFW,所以它不是为了嬏*+蔷而生的。我上面说了,vpn是一种加密通讯技术,它被设计出来的目的是数据传输安全和网络匿名。
从嬏*+蔷的角度上讲,vpn协议就存在诸多问题。最严重的一个就是流量特征过于明显。墙目前已经能够精确识别绝大部分vpn协议的流量特征并给予封锁,所以,vpn这种嬏*+蔷方式基本已经废了。
vpn作为过去很长一段时间最主流最热门最常用最为人所知的嬏*+蔷手段,已然成为嬏*+蔷的代名词。即便是vpn已不再常用的今天,当人们谈及嬏*+蔷的时候,说得最多的仍是:“你有什么好用的vpn吗?”。
Proxy(代理)
反向代理
Proxy(代理)又分为正向代理和反向代理。嬏*+蔷所用的代理都是正向代理。反向代理的作用主要是为服务器做缓存和负载均衡。
我们用域名掩饰 嬏*+蔷目的,就需要nginx做反向代理和负载均衡,保持服务稳定。
shadowsocks的负载均衡是指:每隔一段时间更改一次嬏*+蔷服务器,将用户的数据平均发给多个不同的嬏*+蔷服务器,以避免发往某一个嬏*+蔷服务器的流量过多。
正向代理
正向代理主要有HTTP、HTTP over TLS(HTTPS)、Socks、Socks over TLS几种。其中,HTTP和Socks无法用于嬏*+蔷,HTTPS和Socks over TLS可以用于嬏*+蔷。不过,Socks over TLS几乎没人用,我们这里就不多说了。
Proxy的历史同样早于GFW,它最早被设计出来的目的当然也不是嬏*+蔷。正向代理最主要的目的和vpn差不多,都是用于匿名,但HTTP和Socks不能加密,只能匿名,HTTPS既可以匿名,也可以用于加密通信。
从理论上讲,四种代理协议都可以通过“用户先将数据发给代理服务器,再由代理服务器转发给目的服务器”的方法达到嬏*+蔷目的。但由于HTTP和Socks都是明文协议,GFW可以通过检查数据包内的内容得知用户的真实意图,进而拦截数据包。所以,HTTP和Socks一般只用作本地代理。而HTTPS协议是加密通讯,GFW无法得知数据包内的真实内容,类似于关键词过滤的手段无法施展。
不仅如此,HTTPS代理的流量特征和我们平时访问网站时所产生的HTTPS流量几乎一摸一样,GFW无法分辨,稳定性爆表。
理论上讲,HTTPS代理无论是安全性,还是在隐匿性,都要比目前最为流行的shadowsocks好。事实上,在所有已知的嬏*+蔷协议中,无论是vpn协议,还是代理协议,它应该都是最好的。v2ray的vmess over tls也许能和HTTPS代理媲美。但v2ray存在的时间较短、使用者较少、社区也没有HTTPS代理活跃(从全球范围上看),故而,相比于HTTPS代理,vmess协议潜在的安全漏洞可能要多。
当然,HTTPS代理也有它的缺点,其中最大的缺点就是配置复杂。即便能用默认参数就用默认参数,用户自己只作最低限度的配置,对新手而言,这也是一个无比痛苦的过程。更别说,想要正常使用HTTPS代理,你还要购买域名和证书这些,非常麻烦。所以,即便是在shadowsocks出现之前,HTTPS代理也没在大陆流行起来。这也是造成v2ray的小众的主要原因之一(另一个是用户没有从shadowsocks迁移到v2ray的动力),它的配置同样相当复杂。除此之外,HTTPS代理只能转发tcp流量,对udp无能为力。
shadowsocks
Shadowsocks同样是一种代理协议,但是作为clowwindy为国人设计的专门用于嬏*+蔷的代理协议,相对于vpn,shadowsocks有着极强的隐匿性;相对于HTTP代理,shadowsocks提供了较为完善的加密方案,虽然比不上HTTPS代理和vpn,但使用的也是成熟的工业级的加密算法,普通个人用户完全不用顾虑;相对于HTTPS代理,shadowsocks的安装配置更为简单,中文社区更为活跃,中文文档教程更完善,更符合中国国情。
Shdadowsocks最初的版本是由clowwindy使用Python(一种目前非常热门的脚本编程语言)实现的。所以clowwindy的版本被称为Python版。shadowsocks有点名气之后,不同的开发者使用不同的编程语言为其写了很多分支版本。比如,@cyfdecyf开发维护的Go版本,@madeye开发维护的libev版本(由纯C语言编写,基于libev库开发),由@librehat开发维护的c++版,由@zhou0开发维护的Perl版。这些版本的安装使用指南都可以在shadowsocks的官网上查阅。
2015年,clowwindy因喝茶事件被迫停止了shadowsocks的维护,并删除了其开源在GitHub上的代码,Python版就此停滞。但其它版本仍处于维护更新中。其中,更新最频繁,新技术跟进最快的是由@madeye维护的libev版本。
不过,ss还是进过nginx 转域名,最好走candy,http3 quic 协议最好。
V2Ray 支持的代理协议
截止到2018年12月,V2Ray支持以下协议2:
传统的代理协议:HTTP 和 SOCKS。
MTProto:Telegram3 的开发团队制作的一款协议,作为 Telegram 的专用代理协议。
Shadowsocks:这个无需多言。但要注意的是,V2Ray 不支持 ShadowsocksR。
VMess:V2Ray 独创的一款翻墙协议,据说比 Shadowsocks 更安全。有些机场声称支持 V2Ray,一般就是指支持 VMess。
细心的朋友可能会发现一个问题,我上面“传统的代理协议”那一栏怎么只有 HTTP 和 SOCKS,没有 HTTPS 和 SOCKS over TLS。这两种协议虽然不常用但却很重要,V2Ray 既然是一个融合了各种协议的集成性软件,没理由不支持。毕竟,单纯的 HTTP 和 SOCKS 是没法用来爬墙的,只能作为本地代理用用,真要拿来爬墙,HTTPS 和 SOCKS over TLS 才行。4
上面这些代理协议是从应用层角度上讲的,V2Ray 强大的一点在于,它在传输层上也可以高度自定义。
同样是截止到2018年12月,V2Ray 可选的传输层配置有:用于优化网络质量的 kcp、QUIC 和 TCP Fast Open;用于伪装的 WebSocket;HTTP/2 传输;以及 TLS 加密。
不仅是 HTTP 和 SOCKS 可以在传输层配置 TLS 使其变成 HTTPS 和 SOCKS over TLS 协议,MTProto、Shadowsocks 和 VMess 也都可以通过传输层的配置包一层 TLS 在它们外面进行加密(并伪装成 TLS 流量)。HTTP 和 SOCKS 不必说,TLS 肯定是要的,VMess 裹 TLS 层也是常见的做法,但应该没人会在 Shadowsocks 外面再使用 TLS 加密。
摘要文章:
https://blog.sumtruth.me/2018/05/vpnvpsproxyshadowsocks.html?m=1
如果有可以,使用下面链接使用vultr 服务
试一试……
转载本站文章《vpn/Proxy/shadowsocks的异同——Proxy绕路原理》,
请注明出处:https://www.zhoulujun.cn/html/tools/NetTools/throughGFW/8457.html