选服务器

在 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 算法

  1. yum 更新系统版本

    1
    yum update
  2. 查看系统版本

    1
    2
    3
    [root@server ~]# cat /etc/redhat-release 
    CentOS Linux release 7.4.1708 (Core)
    [root@server ~]#
  3. 安装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
  4. 更新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
  5. 重启完成后查看内核是否已更换为4.14版本

    1
    2
    3
    [root@server ~]# uname -r
    4.14.14-1.el7.elrepo.x86_64
    [root@server ~]#
  6. 开启bbr

    1
    2
    3
    [root@server ~]# vim /etc/sysctl.conf    # 在文件末尾添加如下内容
    net.core.default_qdisc = fq
    net.ipv4.tcp_congestion_control = bbr
  7. 加载系统参数

    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 ~]#

    如上,输出了我们添加的那两行配置代表正常。

  8. 确定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已经成功开启。