故事背景
我在vultr上有一台VPS,由于服务器在洛杉矶,在国内访问速度比较慢。以前有听说Google的bbr拥塞算法能够提高tcp的传输速度,于是想着把bbr打开。我的服务器环境如下:
操作系统:CentOS7 Linux内核版本:3.10.0 SELINUX配置:disabled docker版本:18.06.1-ce
开启bbr
开启bbr需要先把Linux内核版本升级到4.10以上,所以首先需要升级内核。我是根据这个教程https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7 一步一步操作的,最后将Linux内核版本升级到了4.18.9,最后也成功开启了bbr,感觉访问速度稍微开了那么一点点。
docker服务无法启动了
开启bbr后发现docker服务起不来了,尝试过几次删掉重装,结果还是一样,排查得到如下报错:
unable to configure the Docker daemon with file /etc/docker/daemon.json
把这个报错仍Google,尝试了几个方案都不行。继续折腾,再根据报错信息:
failed to start docker application
继续Google,在segmentfault找到了这个问答:https://segmentfault.com/q/1010000002392472,感觉和我的情况很像啊。暗喜中。。。看到这个问题有好多人回答,我就从上往下一个一个试,其中有个回答是:
那我就照做:
vim /etc/selinux/config
i
edit...
wq
shutdown -r now
一顿操作猛如虎,然后喝口茶等待系统重启。。。等了一两分钟,使用ssh连接服务,突然给我来一个惊喜:
permission denied
系统无法登录了
ssh连不过去了,卧槽这是什么情况。因为我的服务器只有 root
账号,我一直都是用 root
账号登录的,想尝试其他账号也不行了。我意识到肯定是我刚才修改了 SELINUX
配置导致,但是现在登不进去系统想改回来也不行啊。虽然我对Linux懂的不多,但是这个时候一定要保持冷静,继续喝一口茶。想到了找学弟帮忙,学弟是做运维的,对Linux特别熟,大学时候和他一起培训过几天Linux。学弟提醒我可以去VPS提供商的后台管理界面看看能不能做些什么。于是我登录到vultr,进入后台管理界面,发现有一个 View Console
操作,如下:
点击,弹出一个窗口,进入了一个Linux终端:
哈哈!感觉看到了希望,输入账号、密码,用力敲一下回车键,啪!提示:
permission denied
什么鬼???结果还是一样啊!还是登不进去啊!冷静冷静。。。继续喝口茶,Google一番尝试了一些方法,都不行。茶已经喝完啦,脾气也上来了。想着直接把系统重置了吧,反正也没有特别重要的数据。说时迟那时快,当我快要点击重置系统按钮的时候,脑子里突然闪过一个画面,就像动漫主角快要被干掉时突然开挂了一样,这个画面就是:
这个难道就是传说中的恢复模式?不管了,点一下看看,出现了这个界面:
卧槽!我感觉还能抢救一下。看个这个,感觉又看到了希望,外挂已上线~~哈哈哈。说实话,我对这个界面真的不熟,只知道这里有很多个内核,可以选择任何一个系统启动。于是问学弟,结果被学弟鄙视,让我我按照忘记密码的套路去操作,接下来又是一波搜索。经过一番倒腾,终于找到了一个可行的方案,具体操作如下:
选中一个内核,我这里选择的是我更新后的内核,按下键盘上的 e
键进入编辑模式,然后使用 向下键
一直往后翻,找到 rhgb quiet LANG=en_US.UTF-8
在后面加上 enforcing=0
,如下:
然后按下 Ctrl
+ x
启动系统,正确输入账号、密码,再次用力敲一下回车键,这次终于等进去了!!!总算是抢救回来了,然后里面修改 SELINUX
配置,又是一顿操作猛如虎,重启之后能正常登录了,彻底好了。
docker服务怎么办
虽然已经能够正常登录服务器了,但是docker还是老样子起不来。但是,在系统无法登录那一刻,我冥冥之中已经感觉到docker的问题应该如何解决了,因为我看到了这个回答:
我的直觉向来很准的,因为读大学的时候自己经常折腾各种黑科技之类的,这种感觉我很熟悉,哈哈哈。按照这个方法操作,最后docker服务真的好了,哈哈哈!
结束语
本来都已经打算重置系统了,没想到最后bbr成开启了,docker服务也弄好,真是成功逆袭了啊!因为我对Linux不是很熟,所以大牛们可能觉得这根本不算是什么事,对我来说那可是相当惊险刺激啊!感谢学弟的耐心指导,我以后一定会努力学习Linux的。最后友情提示:
没事不要升级Linux内核! 没事不要乱改SELINUX配置! 没事不要瞎折腾! 注意备份重要数据! 注意备份重要数据! 注意备份重要数据!
开bbr 这事我经常干。
- 升级内核建议使用LTS 版本,比如 4.14 。特别新的内核,VPS商有时候来不及支持或者docker 会有问题。
- 有一键脚本: https://teddysun.com/489.html
- 再就是 ubuntu 大法好,18.04 默认就是 4.15 内核了,想怎么开就怎么开
@ibenchu 感谢指导,那个一键脚本我好像用过,应该是秋水逸冰写的。我比较喜欢把软件都升到最新版本(作死。。。),公司的开发环境用的是Ubuntu,但是我刚开始接触Linux的时候是CentOS,慢慢就习惯了,懒得去换了。
@blackmatch vultr 日本基本上ban差不多了,搬瓦工还不错
@zuohuadong 搬瓦工我也有的,我弄这个服务器主要不是用来搭梯子的。
佩服楼主折腾的精神啊。此情此景,是时候祭出我的神图了。 吐槽一下,上传图片大小限制能不能设置成2M,因为很多gif都是1M多 。召唤 @alsotang 大佬。感谢了。
@zy445566 毕业后折腾的次数少了,读大学的时候经常熬夜甚至通宵折腾,我那笔记本硬盘被我弄坏两三次了,还大修过两三次。哈哈哈。自己的设备可以随便折腾,公司的就不能这么玩了。
升级(非官方)内核要留后手,比如知道如何进入 grubloader 界面(就是lz上面那个) 后e进入编辑模式修改启动参数
@waitingsong 对,千万别学我,对Linux不熟又乱改配置 。。。
其实vultr有Ubuntu18.04LTS,换个系统直接开启BBR就好了,比不懂乱折腾好多了
@zy445566 找云盘自己解决啦。。gif这种无底洞多大的都有
我在 vultr 弄个 ubuntu 18 默认就是bbr的。
@alsotang 我改天也试试。