安装 pip
pip是 python 的包管理工具。在本文中将使用 python 版本的 shadowsocks,此版本的 shadowsocks 已发布到 pip 上,因此我们需要通过 pip 命令来安装。
在控制台执行以下命令安装 pip:
1 | [root@server ~]# curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" |
安装配置 shadowsocks
在控制台执行以下命令安装 shadowsocks:
1 | [root@server ~]# pip install --upgrade pip |
安装完成后,需要创建shadowsocks的配置文件/etc/shadowsocks.json,编辑内容如下:
1 | [root@server ~]# vim /etc/shadowsocks.json |
说明:
method为加密方法,可选aes-128-cfb, aes-192-cfb, aes-256-cfb, bf-cfb, cast5-cfb, des-cfb, rc4-md5, chacha20, salsa20, rc4, table
port_password为端口对应的密码,可使用密码生成工具生成一个随机密码
以上两项信息在配置 shadowsocks 客户端时需要配置一致,具体说明可查看 shadowsocks 的帮助文档。
如果你不需要配置多个端口的话,仅配置单个端口,则可以使用以下配置:
1 | { |
说明:
- server_port为服务监听端口
- password为密码
同样的以上两项信息在配置 shadowsocks 客户端时需要配置一致。
配置自启动
编辑shadowsocks 服务的启动脚本文件,内容如下:
1 | [root@server ~]# vim /etc/systemd/system/shadowsocks.service |
执行以下命令启动 shadowsocks 服务:
1 | [root@server ~]# systemctl enable shadowsocks |
检查 shadowsocks 服务是否已成功启动,可以执行以下命令查看服务的状态:
1 | systemctl status shadowsocks -l |
确认服务启动成功后,配置防火墙规则,开放你配置的端口,不然客户端是无法连接的:
1 | [root@server ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent |
附上一键安装脚本代码:
1 | !/bin/bash |
配置客户端
我这里配置的是windows的客户端,挺方便的,点击即用,不需要安装。
Windows客户端下载地址:
https://github.com/shadowsocks/shadowsocks-windows/releases
Mac客户端下载地址:
https://github.com/shadowsocks/ShadowsocksX-NG/releases
Android客户端下载地址:
https://github.com/shadowsocks/shadowsocks-android/releases
配置BBR加速
什么是BBR:
TCP BBR是谷歌出品的TCP拥塞控制算法。BBR目的是要尽量跑满带宽,并且尽量不要有排队的情况。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)中已经集成了该算法。
对于TCP单边加速,并非所有人都很熟悉,不过有另外一个大名鼎鼎的商业软件“锐速”,相信很多人都清楚。特别是对于使用国外服务器或者VPS的人来说,效果更佳。
BBR项目地址:
https://github.com/google/bbr
升级内核,第一步首先是升级内核到支持BBR的版本:
1.yum更新系统版本:yum update
2.查看系统版本:
1 | [root@server ~]# cat /etc/redhat-release |
3.安装elrepo并升级内核:
1 | [root@server ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org |
4.更新grub文件并重启系统:
1 | [root@server ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \' |
5.重启完成后查看内核是否已更换为4.14版本:
1 | [root@server ~]# uname -r |
6.开启bbr:
1 | [root@server ~]# vim /etc/sysctl.conf # 在文件末尾添加如下内容 |
7.加载系统参数:
1 | [root@vultr ~]# sysctl -p |
如上,输出了我们添加的那两行配置代表正常。
8.确定bbr已经成功开启:
1 | [root@vultr ~]# sysctl net.ipv4.tcp_available_congestion_control |
输出内容如上,则表示bbr已经成功开启。