内核操作比较危险,一键脚本的盛行让很多人没有意识到换内核是等于给人换心脏这样的存在,稍有不慎就没办法引导系统启动了。而一键脚本在执行的过程中往往会忽略掉一些报错,博主自己就因为折腾内核把系统搞废了很多次。另外就是内核组件安装不完全会导致gcc编译器报错,这也是一键脚本一个很严重的问题。
锐速是一种基于多倍发包的暴力算法,相比于bbr的优化,锐速在当前的国际出口形势下能获得更好的体验。然而锐速支持的内核版本比较老,个人是倾向于把它安装在专门用来反代的机器上面。
一、Debian更换内核
①安装新内核
Debian9锐速支持的最新的内核为4.9.0-4
,经过尝试一共是需要安装5个包,这些软件包在官方的源中已经因为过期而被移除,我们可以从snapshot
源去下载。
linux-compiler-gcc-6-x86
linux-kbuild-4.9
linux-headers-4.9.0-4-common
linux-headers-4.9.0-4-amd64
linux-image-4.9.0-4
如果是其他版本的系统,你也可以按照这个名称去Snapshot源(点击前往)进行下载,因为没试过这里就不再赘述了;准备好.deb
包就可以进行安装了。
1 2 3 4 |
#安装deb包 dpkg -i 内核deb包(linux-image-***.deb) #更新引导 update-grub |
②卸载旧内核
内核安装完成后,如果你的服务商有提供VNC,你可以进入VNC重启并手动选择新安装的内核启动系统,确认系统能够正常引导之后再卸载老的内核;如果你的服务商没有提供VNC建议先确认没有重要数据,再执行卸载操作。
1 2 3 4 5 6 7 8 |
#查看已安装的内核 dpkg -l | grep linux-image #卸载内核 apt-get -y remove 内核名称(linux-image-***) #清除内核 dpkg --purge --force-remove-essential 内核名称(linux-image-***) #更新引导 update-grub |
③禁止内核更新
安装好的内核版本比较古老,那么执行apt-get upgrade
时会使内核更新至最新版本,在这里需要hold
当前的软件包。
1 2 3 4 |
#查看已安装的内核组件 dpkg --get-selections | grep linux-image #禁止软件包更新 apt-mark hold linux-image-*** |
如果是文中的5个软件包,那么要执行的就是
1 2 3 4 5 |
apt-mark hold linux-image-4.9.0-4-amd64 apt-mark hold linux-headers-4.9.0-4-amd64 apt-mark hold linux-headers-4.9.0-4-common apt-mark hold linux-compiler-gcc-6-x86 apt-mark hold linux-kbuild-4.9 |
如果需要恢复更新,同样unhold
即可
1 2 |
#恢复更新 apt-mark unhold *** |
二、CentOS更换内核
①安装新内核
CentOS 7.4
的3.10.0-693
内核即支持锐速,手动安装等我试一下再写。
②卸载旧内核
1 2 3 4 |
#查看已安装内核 rpm -qa | grep kernel #卸载无用的内核 yum remove *** |
同样可以用rpm指令卸载,但是不会同时卸载掉具有相关依赖的软件包比如gcc
等,推荐使用yum remove
。
1 2 |
#卸载软件包 rpm -e ** |
③禁止内核更新
只需要把内核相关的加入yum.conf
的exclude
中即可;注意exclude
只读取一行,不同的项目间间隔一个空格,如果文件中有了这一项只需要把内核加在后面即可。
1 2 3 4 5 6 |
#编辑yum.conf vi /etc/yum.conf #添加禁止内核更新 exclude=kernel* #同时屏蔽系统更新 exclude=kernel* centos-release* |
三、安装锐速
萌咖的博客把原有的东西删了,不过GitHub上面有人备份过了,项目地址(点击前往)。
他备份这个脚本中的获取破解版授权的API地址也挂了,可以用风铃破解的授权去下发,项目地址(点击前往);把keygen.php
文件放置在自己的某一个网站空间里,然后把脚本中第92行的keygen.php
链接改成你的,再执行安装即可。
由于锐速和IPv6兼容性存在问题,建议直接关掉避免锐速无法启动的问题:
1 2 3 4 5 6 7 8 9 |
#编辑sysctl.conf vi sysctl.conf #在末尾加入 net.ipv6.conf.lo.disable_ipv6=1 net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.eth0.disable_ipv6=1 #更新设置 sysctl -p |
四、其他算法
配合锐速使用的一般就推荐htcp
和hybla
两种,二者都是TCP拥塞算法,不过前者适用于低延迟的网络,后者适用于高延迟的网络。在内核中启用两个算法:
1 2 3 4 5 6 7 8 |
#加载模块 /sbin/modprobe tcp_htcp /sbin/modprobe tcp_hybla #检查加载是否正常 lsmod | grep htcp lsmod | grep hybla #查看可用TCP算法 sysctl net.ipv4.tcp_available_congestion_control |
在系统中开启对应的算法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#编辑sysctl.conf vi /etc/sysctl.conf #添加TCP算法(选择hybla请对应去改) net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=htcp #其他设置 fs.file-max = 65536 net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 net.core.rmem_default = 65536 net.core.wmem_default = 65536 net.core.netdev_max_backlog = 4096 net.core.somaxconn = 4096 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.ip_local_port_range = 10000 65000 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_rmem = 4096 87380 67108864 net.ipv4.tcp_wmem = 4096 65536 67108864 net.ipv4.tcp_mtu_probing = 1 #更新设置 sysctl -p |
*转载无需询问,注明出处即可
大佬降级内核到3.x要小心linux内核中的CVE-2019-(11477~11479)这几个漏洞啊,可能会被攻击导致机器崩溃