购买BanwagonHOST VPS自建Shadowsocks记录

前言

不能畅游墙外没法好好生活和工作

本来手里有着五六个 Shadowsocks 帐号,但体验都不佳,一直也没怎么用,是因为一直使用公司搭建的 Cisco Anyconnect,科学上网后百兆带宽可以满速使用,速度虽快,但是客户端软件默认是全局代理的,虽然可以走IP route list达到和Shadowsocks PAC同样的作用,但效果慎微,而且IP要自己去填,所以公司IT直接没搞这个route list,因为我们大部分电脑和手机APP都在墙内,这就导致在使用了Cisco Anyconnect后大部分电脑或者手机上的APP网络访问困难,常开VPN还是需要Shadowsocks 等可根据 PAC清单自动代理 或者 分应用代理 的一类软件。

主题

废话有点多,进入主题。前几日群里的前辈在群里说道自搭的Shadowsocks在使用了Google提出的TCP拥塞控制新算法——BBR之后,解决了以下两个问题:

 1. 在有一定丢包率的网络链路上充分利用带宽;
 2. 降低网络链路上的 buffer 占用率,从而降低延迟。

正好有时间,大佬说的又激发了我的兴趣,我决定自己也搭一个玩玩,也以备不时之需,经历这一天,也总结了个人认为最省事的路线,以下是步骤记录。

购买VPS

在请教了群里的前辈购买何档次的BanwagonHOST VPN之后,购买了19.99$/年的方案,这是购买地址:BanwagonHOST,这里注意两点,第一点:购买时注意买基于KVM的,而不是OpenVZKVM是新推出的,只了解了大体不同,想知道具体差异自行Google,一般来说,买新架构就没错了;第二点:在选择Location时,最好选择美国洛杉矶节点Los Angeles,别问为什么,前人经验,至于是QNET还是MCOM,自行谷歌这二者差异,有人汇总对比了这两种方案,不同城市的ping值有高有低,总体来说QNET稍好,所以我购买的是它。

重装系统

付款购买成功后,进入当前页面的Services-My Services菜单下,找到你新购买的Product/Service,进入控制面板KiviVM Control Panel,界面很简单,每个功能浏览一下之后开始吧,预装的貌似是Cent OS 6,重装成你想要的系统吧,根据提示来,很easy。我个人比较习惯Ubuntu,所以安装了面板上支持的最新版本的Ubuntu 16.04 x86_64,面板里有一键安装Shadowsocks ServerShadowsocksR Server功能,但个人不推荐,没啥别的原因,因为感觉不受我控制。装好后会提示你生成了一个随机的ROOT密码,记下来。执行以下步骤:

1.回到你的电脑,用你自己的方式`SSH`登陆到你的`VPS`,我用的`iTerm`,输入`ssh root@your_vps_ip_address -p your_vps_port`(本地要配置好`RSA`),默认密码是前面保存的随机密码。
2.默认ROOT密码不好记,登陆成功后输入`passwd`输入两次新的`ROOT`密码更改密码。
3.`Ubuntu`的话更新下系统,分别执行`apt-get update`和`apt-get upgrade`(不必须但建议)

安装Shadowsocks

安装的方式有很多,我独爱个人认为最优的那种,执行以下命令:

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh
chmod +x shadowsocksR.sh
./shadowsocksR.sh 2>&1 | tee shadowsocksR.log

你也可以用&&连接一次性执行,按提示完成即可。

安装Google bbr

一、如果你的VPS是基于KVM的,运行以下命令:

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

按照提示安装完成,安装完成后,检测是否成功安装:

sysctl net.ipv4.tcp_available_congestion_control

输出的信息包含bbrOk了,一般为net.ipv4.tcp_available_congestion_control = bbr cubic reno

二、如果你不小心购买了基于OpenVZVPS,运行这个:

wget https://raw.githubusercontent.com/kuoruan/shell-scripts/master/ovz-bbr/ovz-bbr-installer.sh
chmod +x ovz-bbr-installer.sh
./ovz-bbr-installer.sh

这个连提示都是中文的,按照提示安装完成即可,安装完成使用看说明,检测是否安装成功:

ping 10.0.0.2

如果能通,说明 bbr 已经启动,然后检查 iptables 规则:

iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
LKL_IN     all  --  0.0.0.0/0            0.0.0.0/0
 
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
 
Chain LKL_IN (1 references)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8989 to:10.0.0.2

里面有相应的端口规则。

使用Shadowsocks

使用对应的客户端使用的你的Shadowsocks吧,怎么使用自行搜索。想着就那么几个步骤,还是写了这么多。。。

后记

我购买时不小心买成了OpenVZ的,请教了群里的一位前辈之后告诉我联系客服,我便邮件联系官方退款了,购买了新的基于KVM,服务态度非常好,值得点赞。供参考,希望能帮到有需要的朋友。

参考资料

搬瓦工(Bandwagonhost)搭建Shadowsocks并优化速度

OpenVZ 平台 Google BBR 一键安装脚本