美文网首页
Vutlr+SS+BBR

Vutlr+SS+BBR

作者: 孤帆缘航 | 来源:发表于2018-09-11 23:18 被阅读0次



          个人一直从事偏客户端的开发,一直很少接触服务端的东东,记得一年前就有想法鼓捣鼓捣服务器,当时还专门申请了亚马逊的AWS 免费一年,然后……就没有然后了。现在又再次想去摸摸门道,特此记录一下流程和坑。

    服务器空间

          国内的话首选肯定是阿里云了,国外的话很流行的Vultr和搬瓦工(因为还想搭个梯子,所以还要求有支持梯子的节点)。简单对比了下,阿里云搭梯子很有可能被封(网上很多被封的例子),朋友用的搬瓦工感觉网络不是很稳定,丢包率较高。最终选择了Vutlr,新人注册后Paypal或者信用卡充值赠送$25。
          具体的申请流程就不多赘述了,Vutrl 有一点比较坑的就是刚创建的实例机器的ssh 22端口有可能是已经被封了。当时死活ssh 连不上,尝试了各种办法,还专门问了客服,客服回复如下:

    We have received reports of similar behavior/performance from your specific country. Running network troubleshooting steps will likely show blocked traffic on the return trip to your regional ISP. This behavior will occur at varying times and with an unknown amount of our IP address space.

          他们也没有办法,只能创建新的实例换IP 的方法解决。在节点选择时,目前已知最快的日本Tokyo,ping 在110ms左右,系统选择的CentOS 7。

    #记录下ssh 免密登录配置:
    $ ssh-keygen #生成秘钥对
    $ ssh-copy-id -i ~/.ssh/id_rsa.pub xxx@host #自动将公钥上传到指定服务器 
    $ vi /etc/ssh/sshd_config #修改服务器上/etc/ssh/sshd_config 文件中开关参数: 
    RSAAuthentication yes 
    PubkeyAuthentication yes
    AuthorizedKeysFile  .ssh/authorized_keys 
    $ systemctl restart sshd
    

    SS 的配置

    Server 端配置

    参照着{ss} Github 上一步步来:

    $ yum install python-setuptools && easy_install pip
    $ pip install {ss} 
    $ vi /etc/{ss}.json 
    { 
      "server" : "0.0.0.0", #这里不要写成服务器的IP 
      "server_port" : 8388, #这里自定义端口号
      "password" : "123456789", 
      "method" : "aes-256-cfb" #加密方式,N种可选,参考Github 
    } 
    $ ssserver -c /etc/{ss}.json -d start #启动 
    $ firewall-cmd --zone=public --add-port=8388/tcp --permanent #防火墙开放8388端口 
    $ firewall-cmd --reload #reload防火墙 
    $ tail -f /var/log/{ss}.log #可持续查看日志
    

    坑:注意检查防火墙当前的状态,在启用中时要记得开放{ss} 的端口。

    天坑:默认使用ssserver 命令开启服务后日志记录正常,但是使用自定义service 启动后,日志无法正常记录。

    Mac 端OS X 配置

    下载客户端安装:shadowsocks下载地址

          安装后按照服务器上/etc/{ss}.json 的内容进行参数配置,配置好后即可尝试google能否正常打开。
          这里推荐自动代理模式,应该是默认的黑白名单功能,可点击“编辑自动模式的PAC”后对生成的“gfwlist.js” 进行修改。

    iOS 端App 配置

          不差钱的可以直接购买shadowrocket,我这里随便挑选了个免费的ssrconnet。

    连接优化加速

          这里配置的Google 的BBR 拥塞算法,有兴趣的可以自行研究下,另外还有htcp、hybla算法:

    $ wget -N --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && bash bbr.sh #一键安装脚本
    $ uname -r #检查内核版本,4.9.0 以上表示安装OK 
    $ sysctl net.ipv4.tcp_available_congestion_control #返回值一般为:bbr cubic reno 
    $ sysctl net.ipv4.tcp_congestion_control #返回值一般为:bbr 
    $ sysctl net.core.default_qdisc #返回值一般为:fq 
    $ lsmod | grep bbr  #返回值包含bbr 说明启动
    

    Linux 常用命令

    自定义命令

    $ vim ~/.profile
    #追加 alias ${param}=‘$[command]’
    $ source ~/.profile
    

    自定义Service服务

    $ vi /etc/systemd/system/{ss}.service #自定义{ss} 服务
    
    [Unit]
    Description={ss}
    [Service] 
    TimeoutStartSec=0 
    ExecStart=/usr/bin/ssserver -c /etc/{ss}.json #这个方法导致无法记录日志 
    ExecStop=/usr/bin/ssserver -c /etc/{ss}.json 
    [Install] 
    WantedBy=multi-user.target
    

    开机自动启动Service

    $ systemctl enable {ss}.service
    每次登录终端时默认执行自定义命令
    执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout 
    
    *这里还有个坑*:terminal init的时候并不会执行~/.bash_profile、~/.bashrc等脚本了,这是因为其默认启动执行脚本变为了~/.zshrc。解决办法就是修改~/.zshrc文件,在其中添加:source ~/.bash_profile、~/.bashrc等脚本文件就ok了。
    

          零零散散记录些重要的点,具体流程就不再赘述。不得不说感觉像进入了一个新的世界,哪哪都是新东西,哪哪都想了解,还有各式各样的坑等待着我去踩……

    相关文章

      网友评论

          本文标题:Vutlr+SS+BBR

          本文链接:https://www.haomeiwen.com/subject/ilwpgftx.html