一:修改内核配置文件
vim /etc/sysctl.conf
刷新配置文件
sysctl -p
关IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
避免放大攻.击
net.ipv4.icmp_echo_ignore_broadcasts = 1
开启恶意的ICMP错误消息保护
net.ipv4.icmp_ignore_bogus_error_responses = 1
关闭路由转发
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
开启反向路径过滤
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
处理无源路由的包
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
关SysRq功能
kernel.sysrq = 0
开SYN洪水攻.击保护
net.ipv4.tcp_syncookies = 1
修改消息队列长度
kernel.msgmnb = 65536
kernel.msgmax = 65536
设置最大内存共享段大小bytes
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
TIME_WAIT的数量默认为180000
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
每个网络接口接收数据包速率比内核处理这些包的速率快时允许送到队列数据包的最大数目
net.core.netdev_max_backlog = 262144
限制仅仅是为防止简单的DoS攻击
net.ipv4.tcp_max_orphans = 3276800
未收到客户端确认信息的连接请求最大值
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
内核放弃建立连接之前发送SYNACK包数量
net.ipv4.tcp_synack_retries = 1
内核放弃建立连接之前发送SYN包数量
net.ipv4.tcp_syn_retries = 1
开TIME_WAIT快速回收
net.ipv4.tcp_tw_recycle = 1
允许将TIME_WAIT Sockets重新用于新TCP连接
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
当KeepAlive起用的时候TCP发送KeepAlive消息的频度缺省是2小时
net.ipv4.tcp_keepalive_time = 30
允许系统打开端口范围
net.ipv4.ip_local_port_range = 1024 65000
修改防火墙的表大小默认65536
net.netfilter.nf_conntrack_max = 655350
net.netfilter.nf_conntrack_tcp_timeout_established = 1200
二:内核升级到5.4
1. 查看当前的内核版本
通过 uname -r 查看内核版本
2. 备份数据
数据无价,记得备份哦
3. 升级内核
3.1 更新仓库
yum -y update
3.2 启用ELRepo 仓库
ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。
ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。
启用 ELRepo 仓库:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
3.3 查看可用的系统内核包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
3.4 安装最新内核
yum --enablerepo=elrepo-kernel install kernel-lt
--enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo,这里用 elrepo-kernel 替换。
4. 设置 grub2
内核安装好后,需要设置为默认启动选项并重启后才会生效
4.1 查看系统上的所有可以内核
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
4.2 设置 grub2
我的机器上存在 5个内核,我们要使用5.4这个版本,可以通过 grub2-set-default 0 命令设置。
4.3 生成 grub 配置文件并重启
下一步,通过 gurb2-mkconfig 命令创建 grub2 的配置文件,然后重启:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot
4.4 验证
通过 uname -r 查看,可以发现已经生效了。