从零开始搭建属于自己的VPN服务器【CentOS7+Shadowsocks+serverspeeder加速+防坑指北】【适合新手】

本文摘抄自 https://www.ailophy.com/2018/07/14/vpn/ 版权归作者所有,因文中附带了购买VPS的教程,这里不提供,有兴趣的可以点链接去原版上看。我用的是瓦力VPS,成功的按照作者的教程配置了VPN,但是… 突然间就不能用了。不知道是哪里的问题。很是郁闷。

PART 1:关键名词(有一定基础和实践者请跳过这部分)
开始之前先了解一些基本的名词,对后续的操作和兴趣培养有很大帮助,最起码得知道每一步操作是在干什么?要实现哪些功能?

1、VPS:VPS(Virtual Private Server 虚拟专用服务器)技术,将一台服务器分割成多个虚拟专享服务器的优质服务。便于理解你可以把它想象成一台由服务商托管运营的电脑,虽然实际上它是一台标准服务器分割虚拟出来的。此文所说的“Vultr”就是VPS的服务商之一。关于VPS还有很多有趣的“黑话”,比如杜甫,母鸡,小鸡,石头盘,钻石盘等,有兴趣的可以自行了解下。另附一主机网站,感兴趣的可以逛逛,点我直达。

2、CentOS7:基于Linux的操作系统之一,就像我们熟知的Windows XP,Windows 7, Windows 10一样。此教程正是基于CentOS7!

3、Shadowsocks:说到这个就要介绍一位牛X人士”clowwindy“此处致敬先。原先计算机访问互联网也就是访问不同服务器属于直接连接,终端计算机把请求发给服务器,服务器处理后反馈给计算机。直到某个时间出于某种原因,There is a GFW~这样服务器和终端的通信都要被GFW监听,过滤掉一些它不喜欢的内容,一旦一些”你懂的通信“在过滤规则内,就自然无法访问了。So~人们就想到了一种方法来规避GFW的过滤,就是基于SSH搭建一条加密线路进行数据通信,虽然通信内容由于加密无法识别,但是这样仍然会被GFW通过分析连接的特征进行干扰,于是乎,clowwindy推出了他的方案,并且是开源公布,开源公布,开源公布!!即采用客户端和服务端分别进行伪装加密和解密,再通过加密线路进行通信的方式,首先客户端把通信数据进行伪装加密成TCP包,顺利通过GFW,服务端收到数据解密处理后,再原路返回。此部分说的比较通俗,具体可参考此处。四个字总结就是:穿墙工具。明白了大概原理后,我们得到一个信息,就是Shadowsocks需要在你的VPS上和你的终端(如个人电脑,手机)上分别安装。另Shadowsocks的简称是SS,下面均采用SS缩写。可能有些同学会听过或者在用SSR(又名酸酸乳,嗯~很有营养的名字),也有很多人在争论二者的优劣,其实本质上是一样,无非是戴一个套和戴多个套的区别。那为什么会有两个版本?啊~那就要说到几年前那场clowwindy和另一人的大战了,此处就不多说了,再絮絮叨叨下去感觉就要跑题了。好奇心旺盛的请自行了解并实践测试,欢迎将你的使用感受与我分享。OK,下一个!

4、Serverspeeder:TCP加速引擎,顾名思义,没什么好说的,非必须项,如果觉得麻烦可不装。

5、CentOS7命令:服务器端的使用界面不像我们使用的Windows一样是可视化的,虽然也可以安装可视化环境,不过那样会占用本就不高的服务器资源,所以一般情况下大多数使用者都不会去安装。辣么怎么去使用呢?最原始的办法,敲出一个个指令语句,让服务器去执行(多说一句,其实我们使用的Windows可视化系统,我们每一个操作的本质其实就是一个个指令,只不过用可视化的方式呈现了,才会让计算机走进千家万户)。

本教程涉及到的指令(了解即可):

5.1:wget:wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。”wget” 这个名称来源于 “World Wide Web” 与 “get” 的结合。简单理解就是告诉系统,从某某地方取得某某东东到本地,此指令后面还有一些参数,此处不表。

5.2: yum:Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理RPM包的依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

是不是觉得两个功能一样?NO~wget就好比下载工具迅雷,仅仅下载;而yum具有基于RPM的安装功能,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。绕不过来没关系,反正以后还有更绕的,刚开始知道有这么个东东就成。

5.3:pip:pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。即是对Python 包的一种管理指令。

5.4:vi/vim:Vi是Unix及Linux系统下标准的编辑器,基本上vi可以分为三种状态,分别是命令模式、插入模式,和底行模式;vim:Vi IMproved,vi的升级版,比vi更易使用。

OK,基础篇介绍完毕,下面就是实操了!为防止操作阶段的中断导致迷茫慌乱,针对新手友情建议:1、锁好门。2,、安抚好另一半后手机关机。3、确保网络通畅。4、确认银行卡或者支付宝有100元左右余额。5、确保备用发电机已就位!(哈哈,开个玩笑……)

另外,如果装有360及国产的一些安全软件,真心建议关闭或者干脆卸载,选用国际上知名的一些产品,如卡巴斯基,迈克菲等等。

PART 3:安装/配置SHADOWSOCKS

点击View Console开始连接服务器,输入用户名root,回车;

然后按提示输入密码,注意输入密码时屏幕是不显示的,确认输入无误后,回车。

Step 1,安装ShadowSocks

输入第一个命令后,回车:

yum install python-setuptools && easy_install pip

中途会提示YES or NO,输入 y ,回车继续。

安装完成后,输入第二条命令,回车;

pip install shadowsocks

Step 2,配置ShadowSocks

下面开始编写ShadowSocks的配置文件:(以vi为例)

输入如下命令,回车;

vi /etc/shadowsocks.json

输入如下内容:有单用户和多用户两种方式,任选其一。(//后为说明内容,不必输入)

不出意外你发现输入不进去,因为刚进入vi是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。按”I“键开启插入模式(Insert mode)后输入:

(切记!一个标点符号都不能少!!!!)

/****** 单用户 ******/ 
{ 
 "server":"xxx.xxx.xxx.xxx",  // 这里填写你的服务器的IP地址
 "server_port":8234,          // 这是填自定义的shadowsocks的端口,如 7777 或 8234等等,但要避免使用常用端口如:80,3306,3389,21,20等。
 "local_address":"120.0.0.1", // 默认填写120.0.0.1即可 
 "local_port":1080,           // 默认填写1080即可 
 "password":"********",       // ***为自定义的密码
 "timeout":300,               // 超时300秒
 "method":"aes-256-cfb",      // 加密方式 aes-256-cfb
 "fast_open":false 
 }

 /****** 多用户 ******/
 { 
   "server":"xxx.xxx.xxx.xxx", // 这里填写你的服务器的IP地址
   "port_password":
   {
     "8234":"*********",       // 为8234端口设定自定义的密码
     "8235":"*********",       // 为8235端口设定自定义的密码
     "8236":"*********"        // 为8236端口设定自定义的密码,如果还需要多个账号,按此格式往下添加即可,但要保证最后一个账户后面没","切记!
   },
   "timeout":300,
   "method":"aes-256-cfb",
   "fast_open":false
 }

我知道你在想什么,下面以多用户为例:(IP地址是我乱写的,请更改为你自己的服务器IP)

输入完成后检查无误,按“ESC”键转到「命令行模式(command mode)」,会看到下面的INSERT标识消失;

再按组合键“Shift+:”(也就是冒号 :),转到「底行模式(last line mode)」,此时可以看到最下面出现了“:”符号并且光标开始闪动,表示可以输入指令了;

最后一步输入保存退出命令,回车,.

wq

Step 3,设置ShadowSocks开机启动

把shadowsocks服务设置为开机自动启动,省的每次重启后都要开启。

输入命令后,回车;

vi /etc/rc.local

在rc.local文件里写入如下内容,wq保存退出,vi使用的方法同上,此处就不赘述了。如图:

Step 4,开启设定的端口

ShadowSocks部署好之后,还需开启已设定的防火墙端口,要不然防火墙不予放行,也是白瞎。

输入下面命令,回车,查看防火墙状态;

firewall-cmd --state

如果返回信息是:running,表示防火墙已开启,如果没有的话,需要打开防火墙,命令如下:

systemctl start firewalld

下面开始给指定端口放行,以8234为例,输入命令:

firewall-cmd --zone=public --add-port=8234/tcp --permanent

返回信息为:success  即表示添加成功。

如果是多用户配置,则需多次开启,但不必重复输入,使用键盘方向键“↑” 即可快速调用已输入命令,更改端口号,回车即可。如图例:

重启防火墙以更新配置的端口规则,输入如下命令,回车:

firewall-cmd --reload

查看下已开启的端口,输入如下命令,回车:

firewall-cmd --list-ports

最后一步,启用ShadowSocks服务,输入命令,回车:

ssserver -c /etc/shadowsocks.json -d start

Well~到此为止,服务器端的ShadowSocks已经部署完毕,通过第一部分的基础部分解释,我们知道还需在终端安装ShadowSocks,下面附上ShadowSocks官方文档以及PC和安卓客户端。

ShadowSocks官方文档

ShadowSocks for Windows 

ShadowSocks for android

ShadowSocks for IOS

ShadowSocks for Mac OS

ShadowSocks其他相关命令,视情况使用。:

要在前台运行:

ssserver -c /etc/shadowsocks.json

要在后台运行:

ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop

此时已经可以翻墙了,也就是“梯子”已经架好了,But~为了物尽其用,墙裂建议安装【serverspeeder加速】,享受更快的网速和更低的延迟。

PART 4:安装SERVERSPEEDER加速

Step 1,安装Serverspeeder

输入如下命令后,回车:

wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh

上面介绍过wget的意思,中间的“&&”为赋值和顺序执行指令,上面的命令简而言之就是:先下载某某地址的文件,然后执行安装,此命令可以分解为两段,如先下载:

wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh

下载完成后,再手动执行:

bash serverspeeder.sh

如果提示:Serverspeeder is not supported on this kernel! View all supported systems and kernels here: balabala……表示内核不支持,辣么就要更改内核了。如果没有报错,显示安装成功,则跳过这部分。

但是!!!再更换内核前,请确定自己的VPS的类型,是KVM还是OpenVZ,如果是OpenVZ,很遗憾,serverspeeder的教程就到此为止了。因为OpenVZ是无法更换内核的。据笔者所知,Vultr和搬瓦工目前均为KVM,Vultr和搬瓦工的用户应该不必担心,其他服务商的童鞋请自行辨别,此处有个简易检查方法——传送门,如果链接无法打开,请把“梯子”架好再试。

Step 2,更换内核

输入如下命令,回车:(版本号那里是字母el7,而不是数字e17,此处需留意!)

rpm -ivh http://soft.91yun.org/ISO/Linux/CentOS/kernel/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force

检查内核是否安装成功,输入命令,回车:

rpm -qa | grep kernel
坑二:这里问题又来了,是不是发现“|”这个符号死活打不出来,哈哈,打不出来就对了,Vultr默认的为US模式,我们需要更改下键盘布局为gb:

1:查看自己的键盘布局,输入命令:

localectl status



显示现在用的为us,我们把它改成gb模式。

2:修改键盘布局为gb,输入命令:

 localectl set-keymap gb

回车后再查看下布局:

此时重新输入查看内核命令,竖线符号可正常输入了,输入完毕,回车;

显示包含如上的内核版本即成功。重启服务器,输入命令,回车:

reboot

此时在引导界面会看到自己的内核已经变成了3.10.0-229.1.2.el7.x86_64:

重新执行Step1,安装Serverspeeder:

wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh
坑三:好事多磨,问题依旧来了,此时如果报错提示:The name of network interface is not eth0, please retry after changing the name。

则输入下面命令,回车:

yum install net-tools -y



提示Complete,表示完成,重新再执行一次安装Serverspeeder命令,记得用键盘”↑“,省的再次输入了,如果上面的内容已经了解透彻,且ServerSpeeder已经下载过,只是安装过程中报错,所以也可以单独执行安装命令:

 bash serverspeeder.sh

OK,到此为止,Shadowsocks+Serverspeeder加速都已经部署完毕了。

老规矩,附上Serverspeeder文档链接

锐速ServerSpeeder常用命令:

service serverSpeeder start #启动
service serverSpeeder stop #停止
service serverSpeeder reload #重新加载配置
service serverSpeeder restart #重启
service serverSpeeder status #状态
service serverSpeeder stats #统计
service serverSpeeder renewLic #更新许可文件
service serverSpeeder update #更新
chattr -i /serverspeeder/etc/apx* && /serverspeeder/bin/serverSpeeder.sh uninstall -f #卸载

重启服务器:

reboot

最后检查一下部署情况:

1、防火墙是否开启:    firewall-cmd –state  回车;

2、防火墙端口是否开放:firewall-cmd –list-ports  回车;

3、开启Shadowsocks: ssserver -c /etc/shadowsocks.json -d start  回车;

4、Serverspeeder服务是否开启:service serverSpeeder start  回车;(注意这里serverSpeeder中的”S“是大写,需留意!)

如果配置正确,应该是如下图所示:

确保一切OK后,输入退出命令”exit“关闭控制台,终于可以和该死的指令说拜拜了!!可以给自己鼓鼓掌,喝点水放松下。

PART 5:配置SS客户端

下面稍微介绍下终端的配置方法,选择自己对应的客户端,下载安装后启动,安卓和IOS大同小异,下面以Windows为例:

填入你的服务器IP地址,端口以及设定的密码,插件那里留空即可:

点击确定;

右键状态栏SS图标,系统代理模式建议选择全局模式;

SS不怎么占内存,平时保持开机启动即可;

最后启用系统代理,搞定!

如果不需要翻墙时,就不需开启SS,开着SS访问国内网络肯定不如用国内网络来的快;

现在打开www.google.com 试试吧。

《从零开始搭建属于自己的VPN服务器【CentOS7+Shadowsocks+serverspeeder加速+防坑指北】【适合新手】》有1个想法

发表评论