服务器搭建ss
选服务器
在 Deploy new server 中配置服务器。
Server Location
选服务器的地址要结合 Server Size 进行选择,因为有一些地方的 3.5 刀/月的被选完了,vultr 是过一段时间放一批 3.5 刀/月这样的。 3.5 刀/月是最划算的,2.5刀/月的因为国内 ipv6 普及堪忧,所以不建议选取。另外,日本的不建议选取,经常被封,其他地方都是随缘但概率比日本低。新加坡最近好像也沦陷了…好像…
Server Type
这里选的是服务器的操作系统,这里使用默认的 centos 7 就可以了。
Server Size
这里结合 Server Location 选 3.5刀/月比较实惠,2.5刀/月可能要等 ipv6 普及(广东还没有…)。
Additional Features
额外参数第一项可选可不选,视是否需要 ipv6 。第四项选上比较好,方便 putty 等远程 ssh 软件连 接,忘记选上也不要紧,日后在 settings 可以改。至此,所以参数配置完毕,deploy 就可以。
测试是否被墙
在选完服务器之后先不用急着搭建 ss ,先看这个 IP 能不能用。在选完服务器之后会跳转到控制台页面,并显示新的机器在 installing。
这里安装可能会花几分钟,不过一般没安装完就会分配 IP 的,这时候先看这个 IP 有没有被墙。测试方法是使用 国内端口扫描测试 ,如果扫描结果是开放就证明没有被墙,关闭则表明 gg。一般测试 22 端口就够了
如果被关闭的话就就直接关掉服务器,换个地方开一台新的,它是按使用时间收费的,随便开关。也可以同一个地方过一阵再开,因为同一个地方马上开关大概率抽到同一个 ip。
搭建ss
在确认服务器在国内端口扫描结果为开放之后,就可以开始搭建 ss 了。通过控制台控制服务器,在 windows 上可以使用 putty 软件,在 mac 上可以使用一个叫 terminus 的软件连接。连接方式都差不多,填 ip ,端口选 22。如果不想下软件也可以用自带的,不过就是它好像不能复制粘贴,就很麻烦。
连接成功之后依次在控制台执行以下指令:
下载 shadowsocks
1
wget --no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
赋予文件权限
1
chmod +x shadowsocks.sh
开始配置
1
./shadowsocks.sh 2>&1 | tee shadowsocks.log
按照提示依次配置密码,端口(建议 10000~65535 中选一个值,不过还没见过有冲突的,按提示用默认的也可以),加密方式,然后等几分钟配置。
Additionally
Vultr 因为用的人很多,经常被封,可以物色一下其他的海外服务器供应商,本文的配置方法适用于所有服务器。然后附上 Vultr 中文网上判断是否被墙的方法 https://www.vultrcn.com/4.html。
一些 shadowsocks 常用指令
重启 ss
1
/etc/init.d/shadowsocks restart
开启 ss
1
/etc/init.d/shadowsocks start
停止 ss
1
/etc/init.d/shadowsocks stop
查看 ss 状态
1
/etc/init.d/shadowsocks status
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 )中已经集成了该算法。
BBR 项目地址:https://github.com/google/bbr
部署 BBR 算法
yum 更新系统版本
1
yum update
查看系统版本
1
2
3[root@server ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@server ~]#安装elrepo并升级内核
1
2
3[root@server ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@server ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
[root@server ~]# yum --enablerepo=elrepo-kernel install kernel-ml -y更新grub文件并重启系统
1
2
3
4
5
6
7
8[root@server ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
CentOS Linux 7 Rescue 8619ff5e1306499eac41c02d3b23868e (4.14.14-1.el7.elrepo.x86_64)
CentOS Linux (4.14.14-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-c73a5ccf3b8145c3a675b64c4c3ab1d4) 7 (Core)
[root@server ~]# grub2-set-default 0
[root@server ~]# reboot重启完成后查看内核是否已更换为4.14版本
1
2
3[root@server ~]# uname -r
4.14.14-1.el7.elrepo.x86_64
[root@server ~]#开启bbr
1
2
3[root@server ~]# vim /etc/sysctl.conf # 在文件末尾添加如下内容
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr加载系统参数
1
2
3
4
5
6[root@vultr ~]# sysctl -p
net.ipv6.conf.all.accept_ra = 2
net.ipv6.conf.eth0.accept_ra = 2
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
[root@vultr ~]#如上,输出了我们添加的那两行配置代表正常。
确定bbr已经成功开启
1
2
3
4
5[root@vultr ~]# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
[root@vultr ~]# lsmod | grep bbr
tcp_bbr 20480 2
[root@vultr ~]#输出内容如上,则表示bbr已经成功开启。