Vultr CentOS搭建shadowsocks服务端并开启BBR加速
前言
最近教研室很多同学来问有没有公用的 VPN,教研室以前有师兄去买过一些 VPN,但现在师兄也毕业了就用不了了。为了同学们的方便,作为网管应该尽力满足大家日常查阅资料的需求,于是向老师申请了经费去购买了一台 VPS 来搭建教研室公用的 VPN。
购买 VPS
我这里购买的是 vultr 的 VPS,在新加坡的节点,每个月5美元,其实是按小时计费,每小时0.007美元,如果出问题了可以方便的停止购买,不像其他厂商按年一次性付费的话,万一不能用了就很亏。操作系统选择 CentOS 7 64位。
安装过程
安装 Shadowsocks 服务
shadowsocks有很多版本,如Python,node.js,libev,Go等,Python版本用的人是最多的,但很久没有更新了,这里选择 Go 版本的shadowsocks。
在安装shadowsocks之前需要先安装 Go 语言的环境:
从官网下载 Linux 平台的源码包
1
# wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
解压到指定目录
1
# sudo tar zxvf go1.10.3.linux-amd64.tar.gz -C /usr/local/
配置环境变量
1
2
3# vi .bashrc
添加
export PATH=$PATH:/usr/local/go/bin保存并使生效:
1
# source .bashrc
安装 shadowsocks,使用一键安装脚本(https://github.com/iMeiji/shadowsocks_install)
1 | # wget --no-check-certificate https://raw.githubusercontent.com/iMeiji/shadowsocks_install/master/shadowsocks-go.sh |
卸载 shadowsocks 方法:
1 | # ./shadowsocks-go.sh uninstall |
shadowsocks 常用命令:
- 启动:
/etc/init.d/shadowsocks start
- 停止:
/etc/init.d/shadowsocks stop
- 重启:
/etc/init.d/shadowsocks restart
- 状态:
/etc/init.d/shadowsocks status
执行完前面的安装脚本后,查看 shadowsocks 的运行状态:
1 | # /etc/init.d/shadowsocks status |
能看到进程 ID 说明 shadowsocks 服务已经在运行了。
配置 shadowsocks 开机自启动:
1 | # vi /etc/rc.local |
这样在系统重启后就可以自动加载 shadowsocks 服务了。
配置防火墙:
检查防火墙是否允许你设定的端口进行通信
1 | # iptables -vnL | grep 8989 |
如果没有信息的话,就是防火墙不允许该端口进行通信。
需设置:
1 | # firewall-cmd --zone=public --add-port=8989/tcp --permanent |
由于 CentOS 7 默认安装的是 firewalld,并没有安装 iptables-services,不能使用 iptables-save 来保存iptables 规则并在下次启动时自动加载,所以上面使用是 firewalld 来配置永久规则,这样在关机重启后规则也不会消失。
到这里,shadowsocks 服务器就基本上已经配置好了,你可以使用客户端来上外网了。但这时候的网络连接的速度可能只能够保证查查网页,如果要下载或者看 YouTube 速度很慢,所以后将进行配置TCP 加速。
TCP 加速
在后面会升级系统内核,所以先查看一下服务器的内核版本:
1 | # uname -a |
加速有锐速加速和 Google BBR 加速,这里使用 BBR 加速。TCP BBR是谷歌出品的 TCP 拥塞控制算法,目的是要尽量跑满带宽,并且尽量不要有排队的情况。BBR 可以起到单边加速 TCP 连接的效果。
Google提交到Linux主线并发表在ACM queue期刊上的TCP-BBR拥塞控制算法。继承了Google“先在生产环境上部署,再开源和发论文”的研究传统。TCP-BBR已经再YouTube服务器和Google跨数据中心的内部广域网(B4)上部署。由此可见出该算法的前途。
TCP-BBR的目标就是最大化利用网络上瓶颈链路的带宽。一条网络链路就像一条水管,要想最大化利用这条水管,最好的办法就是给这跟水管灌满水。
BBR解决了两个问题:
- 在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。
- 降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户。
Google 在 2016年9月份开源了他们的优化网络拥堵算法BBR,最新版本的 Linux内核(4.9-rc8)中已经集成了该算法。
一键安装脚本:
1 | # wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh |
安装完成后会提示重启,重启完成后,查看内核:
1 | # uname -r |
高于 4.9 就可以了
检查是否开启 BBR:
1 | # sysctl net.ipv4.tcp_available_congestion_control |
完成以上步骤,则 TCP 加速也已经配置好了,接下来就可以体验飞快的下载速度以及 1080p 的高清视屏啦!
shadowsocks 客户端下载连接:Shadowsocks - Clients