这个话题,应该从vpn开始。

什么是vpn

vpn在很多人心目中就是用来出墙的工具,其实不是。vpn最主要的功能,并不是用来出墙,只是它可以达到出墙的目的。

vpn全称Virtual Private Network(虚拟专用网络),严格来讲它并不是代理,而是一条通路,它的功能是:在公用网络上建立专用网络,进行加密通讯。

vpn最典型的应用是在企业网络和高校网络中,因为企业或高校出于安全考虑会自建内网,在软件逻辑上与外网隔离,但是物理网络上联通的。通过正常途径外网是无法访问到这种内网的。而vpn可以在外网电脑和内网之间搭建一条畅通的道路。外网电脑安装好vpn客户端并进行正确的配置后,就等同于加入了内网网络,可以访问到内网中的任何节点、任何服务了。

所以,当我们把这个场景想象为:

  • 企业内网->外面的互联网
  • 外网电脑->我们自己的想出去看看的电脑

这就是vpn最让人心醉的用途。

什么是ss/ssr

首先我们先对一些黑话名词进行解释:

  • 酸酸->ss->shadowsocks
  • 酸酸乳->ssr->shadowsocksr
  • 破娃/破娃酱->ssr的作者,因为github账号名为breakwa11

ss作者是clowwindy,大约两年前,他自己为了翻墙写了ss,后来他觉得这个东西非常好用,速度快,而且不会被封锁,他就把源码共享在了github上,然后就火了,但是后来作者被请去喝茶,删了代码,并且保证不再参与维护更新。现在这个好像是一个国外的大兄弟在维护。

在ss作者被喝茶之后,github上出现了一个叫breakwa11的帐号,声称ss容易被防火墙检测到,所以在混淆和协议方面做了改进,更加不容易被检测到,而且兼容ss,改进后的项目叫shadowsocks-R,简称ssr,然后ss用户和ssr用户自然分成了两个派别,互相撕逼,直到前阵子,破娃被人肉出来,无奈之下删除了ssr的代码,并且解散了所有相关群组。

什么是socks5

ss和ssr都是使用socks5来实现。

socks(socket security,)是一种基于传输层的网络代理协议。对于各种基于TCP/IP的应用层协议都能够适应。它能够忠实地转发客户端-服务器打的通讯包,完成协议本来要完成的功能。现在的协议是v5,也就是Scoks5协议。

socks5代理是把你的网络数据由代理服务器转发到目的地,这个过程中你是没有一条专用通道的,只是数据包的发出,然后被代理服务器收到,然后代理服务器再进行转发,整个过程并没有额外的处理。socks代理只是简单的传递数据包,而不必关心是何种协议,所以socks代理比其他应用层代理要快的多。

vpn和socks5的区别

  • vpn是建立一条虚拟隧道,所有的应用都走这条路出去。socks5是特定的应用(http等)走代理,其它的应用不会走。
  • vpn会给你分配一个内网地址,socks5不会。
  • vpn不需要配置端口号,socks5需要。

我要出墙选哪个

因为vpn是走的专用通道,它是用来给企业传输加密数据用的,所以vpn的流量特征很明显,以openvpn为例,更详细的在这里不说了,流量特征明显,防火墙直接分析你的流量,如果特征匹配,直接封掉。目前就出墙来说,PPTP类型的vpn基本死的差不多了,L2TP大部分地区干扰严重很不稳定。

ss/ssr的目的就是用来出墙的,对于vpn来说安全是第一位的,而对于ss/ssr来说穿透防火墙是第一位,抗干扰性强,而且对流量做了混淆,所有流量在通过防火墙的时候,基本上都被识别为普通流量。

有没有好用的ss

既然想用ss/ssr,那么就去找便宜的海外vps(虚拟服务器)吧,大约在4刀每月,然后在上面架个ss/ssr服务,就可以使用了。

海外vps推荐bandwagon(俗称搬瓦工)和vultr

至于如何在vps上搭建ss服务器,请参考下一篇文章吧。