Shadowsocks(Sock5代理)的PAC模式与全局模式与VPN的区别

一,什么是VPN、什么是Sock5代理?

VPN(Virtual Private Network),即虚拟专用网或虚拟私用网,是指利用开放的公共网络资源建立私有专用传输通道。而我们提供的VPN就是使客户利用internet互联网这个公共网络建立建立客户的个人电脑-VPN服务器之见的私有专用传输通道。连接VPN后客户的所有网络数据都将通过这个通道进行传输。严格来说VPN并不是代理,但大家都用它来实现代理的功能,所以大家习惯性称为VPN代理。

VPN原理介绍

VPN,Virtual Private Network(虚拟专用网络),被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过公用网络的安全、稳定的隧道。VPN有很多种实现方式,常见的有PPTP,L2TP ,L2TP over IPSEC等等。

1、隧道技术

隧道技术的基本过程是在源局域网与公网的接口处将数据(可以是OSI七层模型中的数据链路层或网络层数据)作为负载封装在一种可以在公网上传输的数据格式中,在目的局域网与公网的接口处将数据解封装,取出负载。被封装的数据包在互联网上传递时所经过的逻辑路径被称为“隧道”。

2、PPTP VPN技术

PPTP(点到点隧道协议)是由PPTP论坛开发的点到点的安全隧道协议,为使用电话上网的用户提供安全VPN业务,1996年成为IETF草案。PPTP是PPP协议的一种扩展,提供了在IP网上建立多协议的安全VPN的通信方式,远端用户能够通过任何支持PPTP的ISP访问企业的专用网络。

PPTP使用一个TCP连接对隧道进行维护,使用通用路由封装(GRE)技术把数据封装成PPP数据桢通过隧道传送。可以对封装PPP桢中的负载数据进行加密或压缩。

下边简单描述PPTP 过程中涉及的封装和解封步骤。

封装

  1. 数据封装于IP(或IPX和NetBEUI)封包中。
  2. 该IP(或IPX和NetBEUI)封包封装在PPP帧中。
  3. 该PPP 帧封装在GRE 帧中(并加密)。
  4. 该GRE 帧封装在IP 封包中。

解封

  1. 移除IP 包头。
  2. 移除GRE 包头(解密过程)。GRE负载中是一个PPP帧。
  3. 移除PPP 包头。
  4. 将该IP(或IPX和NetBEUI)封包路由到其最终的目的地。

MPPE将通过由MS-CHAP、MS-CHAP v2或EAP-TLS身份验证过程所生成的加密密钥对PPP帧进行加密。为对PPP帧中所包含的有效数据进行加密,虚拟专用网络客户端必须使用MS-CHAP、MS-CHAP v2或EAP-TLS身份验证协议。PPTP将利用底层PPP加密功能并直接对原先经过加密的PPP帧进行封装。

PPTP协议将控制包与数据包分开,控制包采用TCP控制,客户端连接到VPN服务器TCP1723端口,用于控制和管理VPN隧道的功能。;数据包部分先封装在PPP协议中,然后封装到GRE V2协议中,最后封装到IP协议中传送。

可以看出来,VPN技术主要应用于IP层及以下,因此不依赖与具体的应用,所以可以实现全局代理。

Socks5原理介绍

1、Socket套接字介绍

Socket套接字实际上是基于TCP/IP的一组应用程序接口,应用层的程序通过调用Socket套接字来实现网络间的进程通信。因此,在介绍Socks5之前,推荐大家看以下两篇文章:

Sock(socket security,SOCKS)是一种基于传输层的网络代理协议。对于各种基于 TCP/IP的应用层协议都能够适应。它能够忠实地转发客户端-服务器打的通讯包,完成协议本来要完成的功能。现在的协议是v5,也就是Scok5协议。使用Scok5协议的代理服务器即称为Sock5代理。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。

Socks5是一个代理协议,位于传输层(TCP/UDP等)与应用层之间。Socks软件包组成为如下结构:

Socks库:安装于客户端。为Socket库的替代品,所有使用Socks的程序都必须将Socket库函数调用更改为Socks库函数调用。需要注意的是,Socks库函数仍然需要调用Socket库函数,Socks仅仅是在其上做了安全验证。

Sockd守护程序:安装于服务器,接收并处理来自客户端的CONNECT,BIND及请UDP associate求。以CONNECT请求为例,其工作流程为

  • 客户端向代理服务器发出请求信息,用以协商版本和认证方法
  • 代理服务器应答,将选择的方法发送给客户端
  • 客户和代理服务器进入由选定认证方法所决定的子协商过程
  • 子协商过程结束后,客户端发送请求信息,其中明了目标服务器的IP地址和端口
  • 代理服务器验证客户端身份,验证通过后会与目标服务器连接
  • 代理服务器向客户端返回连接信息
  • 若连接完成,则代理服务器开始作为中转站中转数据

Socks5协议同时支持TCP及UDP代理,它主要工作与会话层,因此与上层的协议无关。但是,它无法做到全局代理。

 

 

二、VPN和Sock5之间的区别

VPN顾名思义,虚拟专网,你接入VPN就是接入了一个专有网络,那么你访问网络都是从这个专有网络的出口出去,好比你在家,你家路由器后面的网络设备是在同一个网络,而VPN则是让你的设备进入了另一个网络。同时你的IP地址也变成了由VPN分配的一个IP地址。通常是一个私网地址。你和VPN服务器之间的通信是否加密取决于连接VPN的具体方式/协议。

Sock5代理服务器则是把你的网络数据请求通过一条连接你和代理服务器之间的通道,由服务器转发到目的地。你没有加入任何新的网络,只是http/socks数据经过代理服务器的转发送出,并从代理服务器接收回应。你与代理服务器通信过程不会被额外处理,如果你用https,那本身就是加密的。

 

Shadowsocks全局模式与VPN的区别

VPN控制的是你电脑的整个网络,只要需要连接到互联网的流量都会经过vpn。

你的IP会被更换为VPN的IP。连接VPN只需要知道IP和账号密码。

Shadowsocks的全局模式,是设置你的系统代理的代理服务器,使你的所有http/socks数据经过代理服务器的转发送出。而只有支持socks5或者使用系统代理的软件才能使用Shadowsocks(一般的浏览器都是默认使用系统代理)。

经过代理服务器的IP会被更换。连接Shadowsocks需要知道IP、端口、账号密码和加密方式。但是Shadowsocks因为可以自由换端口,所以定期换端口就可以有效避免IP被封!

 

Shadowsocks全局模式与PAC模式的区别

上面已经解释了Shadowsocks的全局模式,而PAC模式就是会在你连接网站的时候读取PAC文件里的规则,来确定你访问的网站有没有被墙,如果符合,那就会使用代理服务器连接网站,而PAC列表一般都是从GFWList更新的。GFWList定期会更新被墙的网站(不过一般挺慢的)。

简单地说,在全局模式下,所有网站默认走代理。而PAC模式是只有被墙的才会走代理,推荐PAC模式,如果PAC模式无法访问一些网站,就换全局模式试试,一般是因为PAC更新不及时(也可能是GFWList更新不及时)导致的。

还有,说一下Chrome不需要Proxy SwitchyOmegaProxy SwitchySharp插件,这两个插件的作用就是,快速切换代理,判断网站需不需要使用某个代理的(ss已经有pac模式了,所以不需要这个)。如果你只用shadowsocks的话,就不需要这个插件了!

个人认为现在的Shadowsocks加密技术是很不错的,推荐使用Shadowsocks(IOS除外),想要做到类VPN的方式(控制整个网络)

上面仅代表个人的浅层观点,目前墙针对VPN的封锁越来越严重,比较有名的OpenVPN已经被第一个集火了!而PPTP也逐渐不稳定了起来,可能今天能用,明天就不能用了。L2TP和IPSe0c目前还好,加密方式还无法被效率破解。

Sock5代理使用需要ip地址和端口以及我们提供的帐号密码,客户端须利用第三方代理软件(例如:Sockscap32或E-Border3.51等)。当然,QQ等程序自带有SOCK5协议网络设置功能,如果想用Sock5代理登陆QQ,也就没必要用这些代理软件。

VPN只需要ip地址和帐号密码,并不需要填写端口的,利用Win系统自带的虚拟专用连接拨号即可。

Sock5代理通常是局部代理,只有通过代理软件运行的程序才会通过Scok5协议进行数据转发。如果想多个程序都通过代理协议运行就需要对每个程序一一设置。

而VPN就不需要这么麻烦,拨号登陆VPN后,即所有网络相关数据都将通过这个私有专用通道来传输。

 

大部分游戏外挂是基于Sock5代理的,所以很多用外挂的客户都选用Sock5代理,但同样的游戏公司针对这个情况将Sock5代理视作外挂来源进行封锁,导致很多游戏无法使用Sock5代理,而VPN代理却可以。

Sock5代理存在匿名度的问题,部分Sock5代理因匿名度太低无法真正隐藏客户端的真实ip。 5.2、VPN则工作在网络协议的底层,不存在被识别真实ip,更安全、更稳定。

 

PPTP、L2TP和IPsec的区别及优缺点

1、PPTP协议是点对点隧道协议:

其将控制包与数据包分开,控制包采用TCP控制,用于严格的状态查询及信令信息;数据包部分先封装在PPP协议中,然后封装到GRE V2协议中。

2、L2TP是国际标准隧道协议:

它结合了PPTP协议以及第二层转发L2F协议的优点,能以隧道方式使PPP包通过各种网络协议,包括ATM、SONET和帧中继。但是L2TP没有任何加密措施,更多是和IPSec协议结合使用,提供隧道验证。

3、两者的联系与区别:

联系:PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。尽管两个协议非常相似,但是仍存在以下几方面的不同

 

PPTP、L2TP和IPsec的区别:

PPTP要求互联网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的连接。L2TP可以在IP(使用UDP),桢中继永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATM VCs网络上使用。

PPTP只能在两端点间建立单一隧道。L2TP支持在两端点间使用多隧道。使用L2TP,用户可以针对不同的服务质量创建不同的隧道。

L2TP可以提供包头压缩。当压缩包头时,系统开销(overhead)占用4个字节,而PPTP协议下要占用6个字节。

L2TP可以提供隧道验证,而PPTP不支持隧道验证。但当L2TP或PPTP与IPSEC共同使用时,可由IPSEC提供隧道验证,不需在第2层协议上验证隧道。

IPSec的优点

如果在路由器或防火墙上执行了IPSec,它就会为周边的通信提供强有力的安全保障。一个公司或工作组内部的通信将不涉及与安全相关的费用。下文叙述了IPSec的一些优点:

IPSec在传输层之下,对于应用程序来说是透明的。当在路由器或防火墙上安装IPSec时,无需更改用户或服务器系统中的软件设置。即使在终端系统中执行IPSec,应用程序一类的上层软件也不会被影响。

IPSec对终端用户来说是透明的,因此不必对用户进行安全机制的培训。

如果需要的话,IPSec可以为个体用户提供安全保障,这样做就可以保护企业内部的敏感信息。

IPSec正向Internet靠拢。已经有一些机构部分或全部执行了IPSec。IAB的前任总裁Christian Huitema认为,关于如何保证Internet安全的讨论是他所见过的最激烈的讨论之一。讨论的话题之一就是安全是否在恰当的协议层上被使用。想要提供IP级的安全,IPSec必须成为配置在所有相关平台(包括Windows NT,Unix和Macintosh系统)的网络代码中的一部分。

实际上,现在发行的许多Internet应用软件中已包含了安全特征。例如,Netscape Navigator和Microsoft Internet Explorer支持保护互联网通信的安全套层协议(SSL),还有一部分产品支持保护Internet上信用卡交易的安全电子交易协议(SET)。然而,VPN需要的是网络级的功能,这也正是IPSec所提供的

点赞

发表评论