CentOS 7环境安装Shadowsocks-libev版及Google TCP-BBR优化加速

Shadowsocks可以指:一种基于Socks5代理方式的加密传输协议,也可以指实现这个协议的各种传输包。在中国大陆,本工具也被广泛用于突破防火长城(GFW),以浏览被封锁、屏蔽或干扰的内容。2015年8月22日,Shadowsocks原作者Clowwindy称受到了中国政府的压力,宣布停止维护此计划(项目)并移除其个人页面所存储的源代码。因为移除之前就有大量的复制副本,所以事实上并未停止维护,而是转由其他贡献者们持续维护中。

本文重点介绍如何在CentOS 7环境下安装部署Shadowsocks-libev版及启用Google BBR进行优化加速。

一、VPS选购

这里推荐性价比较高的Vultr的VPS,订购前注意测试一下所选机房的PING值和下载速度,地址如下:

https://www.vultr.com/faq/

笔者在这里推荐选择美国机房,方便以后用到美国IP的地方。

Image result for vultr

二、安装并启用Google TCP-BBR

2016年底,Google发表了一篇优化TCP传输算法的文章,极大的提高了TCP的Throughput,并且已经集成到Linux 4.9 内核中。

以Vultr家的CentOS 7为例,安装过程如下:

  • 安装ELRepo repo

#sudo rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

#sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

  • 安装4.9版本Kernel

#sudo yum –enablerepo=elrepo-kernel install kernel-ml -y

  • 检查内核是否安装成功

#rpm -qa | grep kernel

结果中出现类似

kernel-ml-4.9.0-1.el7.elrepo.x86_64

的内核字样,则说明安装成功

  • 设置默认启动内核

#sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \’

出现以下内容,

CentOS Linux 7 Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.9.0-1.el7.elrepo.x86_64)
CentOS Linux (4.9.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-bf94f46c6bd04792a6a42c91bae645f7) 7 (Core)

注意查看新安装的内核的顺序,从0开始计算,上图中顺序号为1

执行以下命令,完成默认启动内核设置:

#sudo grub2-set-default 1

  • 重启系统,确认生效

#sudo shutdown -r now

#uname -r

显示为新安装的内核,则表示操作成功。

  • 启用BBR

#echo ‘net.core.default_qdisc=fq’ | sudo tee -a /etc/sysctl.conf

echo ‘net.ipv4.tcp_congestion_control=bbr’ | sudo tee -a /etc/sysctl.conf

sudo sysctl -p

  • 验证BBR是否启用

#lsmod | grep bbr

结果出现类似

tcp_bbr                16384  0

字样,表示已启用。

三、安装Shadowsocks-libev

  • 配置防火墙

启动firewalld防火墙
#systemctl start firewalld

设置firewalld开机自启
#systemctl enable firewalld

查看firewalld运行状态
#systemctl status firewalld

开放端口
#firewall-cmd –permanent –zone=public –add-port=443/tcp
#firewall-cmd –permanent –zone=public –add-port=443/udp

载入设置
#firewall-cmd –reload

查看开放的端口
#firewall-cmd –list-all

  • Yum方式安装Shadowsocks-libev

进入/etc/yum.repos.d/目录,执行命令
#wget https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/repo/epel-7/librehat-shadowsocks-epel-7.repo

升级系统
#yum update

安装Shadowsocks-libev
#yum install shadowsocks-libev

四、配置Shadowsocks-libev

  • 启动Shadowsocks-libev

编辑配置文件/etc/shadowsocks-libev/config.json,内容如下:
{
“server”:”your vps ip“,
“server_port”:443,
“local_port”:1080,
“password”:”your password“,
“timeout”:300,
“method”:”chacha20-ietf-poly1305″,
“fast_open”:true
}

保存,退出

修改启动脚本文件/usr/lib/systemd/system/shadowsocks-libev.service,内容如下:

User=root

保存,退出

  • 配置自启动

执行以下命令启动服务
$ systemctl enable shadowsocks-libev
$ systemctl start shadowsocks-libev

如果需要停止,输入
$ systemctl stop shadowsocks-libev

为了检查 shadowsocks 服务是否已成功启动,可以执行以下命令查看服务的状态
$ systemctl status shadowsocks-libev -l

如果出现启动错误,显示libmbedcrypto.so.0加载失败,则需进入 /usr/lib64目录,执行以下命令即可。

#ln -sf libmbedcrypto.so.1 libmbedcrypto.so.0

如需对传输进行混淆,则需在json文件后加入如下两行内容,

“plugin”:obfs-server,
“plugin-opts”:”obfs=tls”

五、客户端下载地址

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

Android版:https://github.com/shadowsocks/shadowsocks-android/releases

发表评论

电子邮件地址不会被公开。