折腾vps + shadowsocks,搭建vpn

最近有个不幸的消息,我一直在用的GreenVpn被黑恶势力做掉了,导致我开不了车…刚好手上的阿里云Ecs也到期了,少了个折腾linux的渠道。

在这双重打击之下,我萌生了自己搭建vpn的想法,于是花了几天折腾了一下。这篇文章是我的真实经历,希望能帮助大家少踩一些坑。

 

一、我的解决方案

(1)购买搬瓦工的vps

1.为什么选择搬瓦工

因为“便宜”啊。10G的vps月付只需2.99$(在没有计算优惠码的情况下),折合20¥,年费只需要19.99$,折合135¥。以阿*云的同类产品做对比,香港机房(更不要提国外的机房)差不多配置,活动年付330¥。

这就是说,你买阿*云一年的ECS,差不多可以用三年的搬瓦工(或者可以换配置更好的搬瓦工vps)。

因为“速度还行”。我刚开始踩vps这个坑,担心搬瓦工很卡,所以只买了一个月。现在看来用得还算不错。ss不卡,看视频基本不需要缓冲(但是没有达到拖动进度条就秒播的程度),部署代码的速度也很快。因为我不玩需要连外服的游戏,所以不太清楚卡不卡(目测会有延迟,ping为160ms左右,玩游戏应该是不够的)。

因为“支付方便”。搬瓦工是支持支付宝的!其他国外服务商(如AWS、VULTR)只支持信用卡支付,非常麻烦,在安全上也不放心。

2.如何选择配置

https://bandwagonhost.com/,个人建议购买10G VPS,配置如下:

硬盘为10 GB SSD,内存512 MB,带宽500 GB,CPU 1x Intel Xeon,虚拟化支持KVM/OpenVZ。

对于一般开发者应该是够用了,放个小网站 + 托管代码 + 搭建ss + 测试环境应该没有太大问题。如果感觉配置不够,那么购买20G VPS也是不错的选择(因为没有用过别的配置,我个人不推荐别的选择)。

3.我怎么上不了bandwagonhost.com?

很遗憾,搬瓦工的官网被墙了…所以你需要先下个lantern之类的vpn,否则难以完成购买流程。

4.选择KVM还是OpenVZ?

关于这点,搬瓦工官网给出了区别:

OpenVZ的优点:IPv6支持、更好的CPU性能。

KVM优势:完全虚拟化、自定义内核支持(BBR等)、Docker支持、更好的隔离、更好的网络吞吐量。

比较狡猾的地方是:OpenVZ没有提示你“不支持某些东西”。实际上,如果你在OpenVZ上使用BBR、Docker,可能要冒着更多的风险!而OpenVZ宣称的“更好的CPU性能”却不一定有所体现…所以我个人推荐选择KVM(价钱都是一样的,为什么不选个稳定点的呢?)。

5.选择机房的位置

vps的速度和链接的稳定程度取决于你的宽带和机房之间的线路。在选择机房之前,请先ping一下各机房的ip地址,找到延迟最低的线路,才决定是否要购买。

至于机房的ip哪里找,我也不知道…知乎上流传着各机房的ip,有兴趣可以找找。

就我个人而言,我使用电信宽带,选择洛杉矶 DC1 QNET的机房(ip为67.209.187.208),延迟只有160ms。但是如果选择洛杉矶 DC2 MCOM的机房,延迟就会飙升到350ms。选择哪个,自然是不言而明的了。

6.如何获取优惠码?

之前看见有这样的文章“查看官网首页的源代码,可以发现优惠码,优惠程度随机”。我找了一下,根本不存在这样的东西(如果你质疑我找得不认真,那就自己去找找吧…)

但是,上知乎可以找到很多分享的优惠码(小技巧:可以把知乎当成搜索引擎用),我找到一个5% off的,省了1¥,感觉还不错。

(2)配置vps

1.重装系统

获取vps实例之后,进入控制台,选择Install new OS。我一直在使用Ubuntu 16.04 x64,所以安装了Ubuntu。

1

注意这里有些操作系统的后缀是带bbr的,意思就是已经集成了BBR服务,之后就不需要再安装了。

2.获取ip,ssh port,password

在获取vps实例之后,你的邮箱应该会收到链接信息的邮件(密码、端口都是随机分配的),用Xshell什么的连上即可。但是我个人建议还是改一下比较好。

1

改完之后可以在控制台主菜单中看到链接信息。

3.安装BBR

参考:https://zhuanlan.zhihu.com/p/25953903

安装BBR用于加速。装上之后,使用Xshell可以明显感觉到反馈快了很多。

使用以下命令即可:

安装时就是一路按y。安装完成后,脚本会提示重启vps,重启之后执行:

如果返回值中存在BBR的模块,证明已经安装成功了(更多的验证方法不再介绍)。

4.安装shadowsocks服务端

三种方法,我推荐使用第一种。

1、使用秋水逸冰提供的脚本

参考:https://teddysun.com/392.html

使用以下命令即可:

安装完成后需要手动配置shadowsockets的账号、开放端口、密码,依次输入即可。输入完成后后台已经启用shadowsockets服务端,输入:

就可以验证服务是否安装完成。

如果需要卸载服务,可以执行:

一些重要命令如下:

2、apt安装

可以执行:

这种方法的好处是装下来就是系统服务,可以通过ssserver的命令去操作。缺点就是要费点心去配置shadowsocks(比如修改配置文件),没有那么省心。

至此,vps应该已经配置好了,接下来折腾客户端。

3、参考github

这个就不多提了。详情请看:https://github.com/shadowsocks

(3)折腾客户端

客户端完全基于https://github.com/shadowsocks

1.电脑端

https://github.com/shadowsocks/shadowsocks-windows/releases

填写对应的vps信息即可。

2.手机端(安卓)

https://github.com/shadowsocks/shadowsocks-android

安卓的最大特点就是“好折腾”,填写对应的vps信息即可。

至此,你已经完成了该解决方案,可喜可贺!(下面是我遇到的坑,止增笑耳)

二、折腾记

(1)避开充满陷阱的AWS

相信很多使用AWS的朋友,都是冲着这个去的:

1

我承认我也是被这个广告吸引了,但是接下来的经历让我的心凉了半截…

1.艰难的注册

注册时,需要登记一张可用的信用卡(不是本人的都可以)。我这么可爱,怎么会有信用卡呢?所以我登记了家里人的一张信用卡(这就埋下了一个伏笔)。

接下来就去到电话验证的环节,需要你接听一个电话,然后填写你听到的验证码,按道理来说,我肯定马上能接到来自亚马逊的验证电话,结果出现了这个:

1

不好意思,接下来你会永远被卡在这里,你不可能收到验证电话。唯一的解决办法是联系客服,让他们手工打你电话进行验证,从而跳过这一阶段。

要命的是,客服的反应比较慢,下面是我和客服的工单交流过程(太长了,我精炼了一下):

Jul 1,01:27 PM 我:我注册时被电话验证卡住了,请帮帮我。

Jul 1,08:05 PM 客服Nolen:请提供电话号码和电话时区,以及希望接听的时间范围。(大概5行),并且,我发现你的信用卡没有得到银行的授权(问题是,为什么不在我提交银行卡信息的时候就告知我?),你将无法完成支付,请联系银行完成授权…(大概30多行,重点完全放在了支付上…)

Jul 1,08:48 PM 我:感谢你的帮助,我的银行卡已经被扣了2.5$,所以应该是可用的(这个问题在下面会提到),我来自中国,我的电话是 +86 ********,请协助我完成电话验证。

Jul 2,06:55 PM 客服Alan:我很遗憾你遇到了验证问题,我需要你提供电话,由我们人工拨打完成验证(大概5行,但是小哥,我在上一个工单已经留下我的电话了…你直接打过来就好啦),并且,我们查看你的信用卡没有通过银行授权(那么谁给我解释一下那2.5$是怎么被消费的?)…(大概20行)

终于,在Jul 3的下午3点左右,我接到了来自Alan的电话(他终于反应过来我已经留了电话了):

Alan:Hi ! I am Alan from Amazon , Can you speak English ?(这是我听得最清楚的一句话了,Alan可能是印度人,语速非常快,导致我理解起来有点困难)

我:Sure , I can speak a little English…

Alan:叽里呱啦叽里呱啦(意思大概是说我来协助你完成电话验证),OK?

我:???ok , ok .

Alan:叽里呱啦叽里呱啦(意思大概是说我的信用卡有问题,要去找银行。亚马逊真的真的非常注重支付的安全问题,每次交流都要强调信用卡)…
1

 

 

 

 

我本来还想问问那2.5$是怎么回事,但是凭我这蹩脚的英语,不知道该怎么表达我的意思…所以:

我:Ok ,Ok .

Alan:Thank you for taking my call(大概是感谢我使用了亚马逊的服务)…

我:Thank you ,see you .

(如果要注册AWS,就注定要和客服打交道。应该提前练练英语口语,不要像我一样尴尬)

2.消失的2.5美金

我来梳理一下整个事件的来龙去脉:

我开始注册 -> 验证信用卡信息 -> 获取电话验证失败 -> 信用卡支出2.5$ -> 我和客服交流完成电话注册,客服告诉我信用卡有问题,银行没有授权,无法支付 -> 注册成功

问题是,既然银行没有授权我的信用卡,那么我的2.5$是怎么支付的?被谁扣走了?我都没有输入密码,就被划走了2.5$?为什么没有任何通知和授权就能划走我的钱?

这真是太恐怖了,在我不知情的情况下,今天能划走2.5$,明天就可能划走25000$。

更可气的是,你当前指定的信用卡是默认支付的信用卡,不能删除…想要删除,你必须添加另外一张信用卡…(除非你注销账户,但是这意味着你下次注册又要重新折腾啦)

3.你以为全是免费的?

AWS的Ecs超流是要算钱的,而且很贵。这意味着,如果你的网站被攻击/很受欢迎被大量访问,很容易大量超流,然后就会大出血(况且AWS通过信用卡支付,钱直接就没了,跑都跑不掉)。

上知乎搜一下AWS,你可以找到大量的案例。基本上都是没注意合同被消费的、被攻击超流的、被攻击创建了n个实例的、服务器没做好安全被抓鸡之后封禁掉的…

总之,如果做不到游刃有余,请慎重使用AWS。

(2)避开不太实惠的VULTR

在搜vps的时候,感觉很多人对VULTR评价甚高,不但速度快,而且价格实惠,所以留意了一下。

1.不太实惠

结果,在我选购时,才发现VULTR的“价格实惠”完全基于“活动”、“充多少送多少”上。如果没有这些活动,最低配置的vps的价格是5$每月(顺带一提,2.5$每月的vps一直都是售完状态,我留意了几天,完全没有补货的迹象),感觉不太实惠(因为最后没买成,所以不好谈论性价比)。

2.不友好的支付方式

注册VULTR的账户时,很快就要你绑定可支付的信用卡。因为之前使用AWS的经历已经给我留下了很大的阴影,所以我果断选择不绑定,放弃使用VULTR。

(3)避开邪恶的阿*云

(只是说说我的看法,没有批判一番的意思(我也没有批判的资格),见仁见智)

虽然我一直在用阿*云(本博客也搭建在阿*云上),但是我个人很反感阿*的吃相。只要出现盈利空间,阿*就会全力投入市场,用自身的资本和技术优势碾压竞争对手,蚕食大部分市场份额。

如果我们讨论“阿*占领市场”的问题,你当然可以抨击我:“这是市场经济,资本的游戏,公司赚钱是天经地义,投资是无可厚非的”,这我确实无法否认。谈到“碾压竞争对手,蚕食市场份额”,你也可以说:“有竞争才有进步,阿*的加入让行业有危机感,最终是消费者获益”,我也没有意见。

诚然,从网购、支付到云服务,阿*进入各行各业带来了很多变革,给消费者带来了很多好处。然而,我担心的问题是:阿*的野心太大了,手伸得太长了,从恶性竞争(旗下万网直接断竞争对手的域名、菜鸟驿站和顺丰快递的纠纷),到线上线下的覆盖(前不久阿里进军线下无人零售业),“垄断”一词简直就是为阿里量身订造的。这就表示,规模小的资本越来越难生存,变相提高了创业难度(你凭什么和阿里竞争?)。

你真的相信 Alien Jack Ma 的“我最大的错误就是创建了阿*巴巴”吗?前不久他才公开表示要让阿里“全球化”。没有政府在背后的支持,阿*能发展至此吗?我不排斥阿里赚钱,我只担忧阿*做大后,会“官商勾结”,变成第二个韩国的三星。

这听上去有点阴谋论了,但是我觉得阿*确实能“做得到”,这才是最可怕的。当然,我们应该相信政府的实力,做好我们的本分。希望阿里只是“丰富我们的生活”,而不是“绑架我们的生活”(自愿被绑架除外)。

说了这么多题外话,我来吐槽一下阿*云的问题。

1.性价比低

上面也提到了,阿*云的价格真的是国内的“顶尖水平”。仅看香港的ECS实例(更别提国外的机房),很一般的配置,年费就要330¥。如果付同样的价钱,能在搬瓦工买多高的配置呢?9.99$已经可以做到:

SSD: 40 GB RAID-10,RAM: 2 GB,CPU: 3x Intel Xeon,Transfer: 2 TB/mo,Link speed: 1 Gigabit,Multiple locations

两者对比一下,我宁愿选搬瓦工。

2.学生机型?

之前阿*云推出了9.9¥每月的ECS套餐,只要手上没有ECS实例,通过了学生认证都可以享受。但是,当我购买的时候,金额永远都是原价,没有任何优惠。

我找官方论坛反映了该问题,你们猜猜有没有回复?

1

下面一群用户都在反映学生机没有优惠的问题,但是官方没有任何回复。

我就纳闷了,真的是官方没有看到我们反映的问题吗?

3.阿*云的使用体验

虽然遇到了一些不愉快的问题,但是有一说一,阿*云的Ecs还是比较好用的。得益于阿*云的内部镜像支持,Docker拉个镜像、wget一些东西,速度还算比较快,提供的服务也更多更细(cdn之类的)。毕竟是国内的公司,工单处理、办事效率还是比国外要好很多。

我个人认为:如果是自己用,反正都是要折腾的,搬瓦工足够了。如果要做产品、正式工作环境,还是上阿*云好一点(在这些方面自然有很多专家,我就不班门弄斧了)。

三、总结

如果不踩别的坑,直接按照我的解决方案去做,估计一个小时就能搭建完啦。