shadowsock-vps搭建VPN

前言

还有10天左右就要回国了,由于职业的需要,对Google的依赖的越来越大的,那么回国后怎么才能‘科学上网’呢?之前在国内的时候,有使用过Lantern,稳定性和速度都还是不错了,可惜后来被和谐了。所以今天准备尝试搭建VPN,自己独立使用,一边搭建一边将过程记录下来。

名词解释

VPS: VPS(Virtual Private Server 虚拟专用服务器)技术,将一台服务器分割成多个虚拟专享服务器的优质服务。实现VPS的技术分为容器 [1] 技术,和虚拟化技术 [2] 。在容器或虚拟机中,每个VPS都可分配独立公网IP地址、独立操作系统、实现不同VPS间磁盘空间、内存、CPU资源、进程和系统配置的隔离,为用户和应用程序模拟出“独占”使用计算资源的体验。VPS可以像独立服务器一样,重装操作系统,安装程序,单独重启服务器。


VPS为使用者提供了管理配置的自由,可用于企业虚拟化,也可以用于IDC资源租用。


VPN: VPN的学名叫虚拟专用网,洋文叫“Virtual Private Network”。维基百科的介绍在“这里”。本来这玩意儿主要是用于商业公司,为了让那些不在公司里的员工(比如出差在外的)能够方便地访问公司的内部网络。为了防止黑客冒充公司的员工,从外部访问公司的内部网络,VPN 软件都会提供强大的加密功能。而这个加密功能,也就让它顺便成为翻墙的利器。

科学上网原理

VPN浏览外网的原理


使用 VPN 通常需要先安装客户端软件。当你运行 VPN 客户端,它会尝试联到 VPN 服务器(这点跟加密代理类似)。一旦和 VPN 服务器建立连接,VPN 客户端就会在你的系统中建立了一个虚拟局域网。而且,你的系统中也会多出一个虚拟网卡(在 Windows 下,可以用 ipconfig /all 命令,看到这多出来的网卡)。这样一来,你的系统中就有不止一块网卡。这就引出一个问题:那些访问网络的程序,它的数据流应该通过哪个网卡进出?
为了解决此问题,VPN 客户端通常会修改你系统的路由表,让那些数据流,优先从虚拟的网卡进出。由于虚拟的网卡是通往 VPN 服务器的,当数据流到达 VPN 服务器之后,VPN 服务器再帮你把数据流转向到真正的目的地。


前面说了,VPN 为了保证安全,都采用强加密的方式传输数据。这样一来,GFW 就无法分析你的网络数据流,进行敏感词过滤。所以,使用墙外的VPN服务器,无形中就能达到翻墙的效果。

方案选择

VPN是一个大类,其中有很多实现的方法,防火长城现在将 VPN 屏蔽的已经所剩无几,后来大家看到了SSH,使用SSH的sock5很稳定,但是特征也十分明显,防火长城可以对其直接进行定向干扰。


而除了VPN,对于翻墙大家仍然有很多方法,比如Shadowsocks 、Lantern、VPNGate 等等,而实际上无论哪种方式,他们本身都需要一台服务器作为中间人进行消息传递。而VPS虚拟专用服务器就十分适合担当这个角色,并且由于VPS平时就作为商品在各类云服务器平台上售卖,自行购买并搭建相当方便,唯一需要的就是人们对于服务器的操作技术。


而这次选择的方案是:VPS+Shadowsocks
**
Shadowsocks特点:


省电,在电量查看里几乎看不到它的身影;


支持开机自启动,且断网无影响,无需手动重连,方便网络不稳定或者3G&Wi-Fi频繁切换的小伙伴;


可使用自己的服务器,安全和速度的保证;


支持区分国内外流量,传统VPN在翻出墙外后访问国内站点会变慢;


可对应用设置单独代理,5.0之后的系统无需root。


Shadowsocks 目前不容易被封杀主要是因为:
建立在socks5协议之上,socks5是运用很广泛的协议,所以没办法直接封杀socks5协议
使用socks5协议建立连接,而没有使用VPN中的服务端身份验证和密钥协商过程。而是在服务端和客户端直接写死密钥和加密算法。所以防火墙很难找到明显的特征,因为这就是个普通的socks5协议。


Shadowsock搭建也比较简单,所以很多人自己架设VPS搭建,个人使用流量也很小,没法通过流量监控方式封杀。
自定义加密方式和密钥。因为加密主要主要是防止被检测,所以要选择安全系数高的加密方式。之前RC4会很容易被破解,而导致被封杀。所以现在推荐使用AES加密。而在客户端和服务端自定义密钥,泄露的风险相对较小。
所以如果是自己搭建的Shadosocks被封的概率很小,但是如果是第三方的Shadeowsocks,密码是server定的,你的数据很可能遭受到中间人攻击。

开工

购买vps

首先我们需要购买一台境外的服务器,接着我们在这台云服务器里面安装代理服务,那么以后我们上网的时候就可以通过它来中转,轻松畅快的畅游全网了。
购买VPS,我选择了vultr,大家用过都说好,购买的过程也很方便。


第一步:选择离中国较近国家的服务器。
step1.png




第二步:选择服务器配置和系统


这里,系统选择的是CentOS 7,配置的话,如果只是自己浏览网页的话,选择最低配置就好。其他的选项可以略过。


step2.png





第三步:支付和部署


支付可以选择支付宝支付,非常方便。购买成功后,点击Server中的“+”号,来部署你刚刚选择的服务器。
第四步:登陆服务器


查看服务器详情 Server Details,根据提供的服务器信息,登陆服务器。








我是使用Mac本身终端ssh到服务器上的,因为Mac上多数的SSH客户端要么收费,要么不好用,要么安装过程非常繁琐。

1
ssh -p 22 root@ip



搭建shadowsocks服务器

连接到你的 vultr 服务器之后,接下来就可以使用几个命令让你快速搭建一个属于自己的 ss 服务器:

1
yum install wget


接着执行安装shadowsocks:

1
wget –no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh


获取 shadowsocks.sh 读取权限:

1
chmod +x shadowsocks.sh


设置你的 ss 密码和端口号:

1
./shadowsocks.sh 2>&1 | tee shadowsocks.log


接下来后就可以设置密码和端口号了





密码和端口号可以使用默认的,也可以直接重新输入新的。
选择加密方式


设置完密码和端口号之后,我们选择加密方式,这里选择 7 ,使用aes-256-cfb的加密模式





接着按任意键进行安装。
安装ss完成后


会给你显示你需要连接 vpn 的信息:



搞定,将这些信息保存起来,那么这时候你就可以使用它们来科学上网啦。

使用BBR加速上网

安装 BBR

1
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh


获取读写权限

1
chmod +x bbr.sh


启动BBR安装

1
./bbr.sh


接着按任意键,开始安装,坐等一会。安装完成一会之后它会提示我们是否重新启动vps,我们输入 y 确定重启服务器。
重新启动之后,输入:

1
lsmod | grep bbr


如果看到 tcp_bbr 就说明 BBR 已经启动了。

客户端进行连接

windows使用Shadowsocks

windows点击下载:Shadowsocks windows客户端
打开 Shadowsocks 客户端,输入ip地址,密码,端口,和加密方式。接着点击确定,右下角会有个小飞机按钮,右键–>启动代理。

Android使用Shadowsocks

Android点击下载:Shadowsocks Android客户端
打开apk安装,接着打开APP,输入ip地址,密码,端口,和加密方式。即可科学上网。

iPhone使用Shadowsocks

iPhone要下载的app需要在appstore下载,但是需要用美区账号才能下载,而且这个APP需要钱。在这里提供一种解决方案,就是可以再搭建一个IPsec/L2TP VPN,专门给你的iPhone使用。

Mac配置

用的是Mac电脑,所以点击相关链接。东西都挂在github上,下载对应的zip文件,下载完成后安装并运行起来。





点击图标,进入 服务器设置





主要有四个地方要填,服务器的地址,端口号,加密方法,密码。服务器地址即为之前 Main controls选项中的IP地址。端口号、加密方法、密码必须与之前 Shadowsocks Server 中的信息一一匹配,否则会连接失败。





设置完成后点击确定,然后服务器选择这个配置,默认选中PAC自动模式,确保Shadowsocks状态为On,这时候打开谷歌试试~
接着就可以上外网了 😂