CentOS 8初始化

黄沙百战穿金甲,不破楼兰终不还。这篇文章主要讲述CentOS 8初始化相关的知识,希望能为你提供帮助。
1. 修改def源

#1.备份原来项目
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/bak
#2.安装阿里源
curl -o /etc/yum.repos.d/CentOS-Base-aliyun.repo https://mirrors.aliyun.com/repo/Centos-8.repo
sed -i -e /mirrors.cloud.aliyuncs.com/d -e /mirrors.aliyuncs.com/d /etc/yum.repos.d/CentOS-Base-aliyun.repo
#3.安装epel源
dnf install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
sed -i s|^#baseurl=https://download.fedoraproject.org/pub|baseurl=https://mirrors.aliyun.com| /etc/yum.repos.d/epel*
sed -i s|^metalink|#metalink| /etc/yum.repos.d/epel*
#4.配置nginx源
cat > /etc/yum.repos.d/nginx.repo < < EOF
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
#5.清理重新生成缓存
dnf clean all
dnf makecache

2. 安装常用软件包,关闭防火墙和SELinux
dnf -y update
dnf -y install vim unzip net-tools iotop tree nmap dos2unix lrzsz nc lsof wget tcpdump iftop \\
sysstat nethogs psmisc dsniff dstat yum-utils chrony telnet nfs-utils glances rsync
#关闭selinux
sudo setenforce 0
sudo sed -i s/^SELINUX=enforcing$/SELINUX=permissive/ /etc/selinux/config
#关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
#时间同步服务启动,设置自启
systemctl restart chronyd
systemctl enable chronyd
#校验时间
chronyc sources -v
timedatectl
#设置历史记录显示带时间
echo export HISTTIMEFORMAT="[%F %T] " > > /etc/profile
#重载profile
source /etc/profile
#关闭sshd的DNS解析
sed -i s/^#UseDNS yes/UseDNS no/ /etc/ssh/sshd_config
#ssh允许root远程
sed -i s/^#PermitRootLogin prohibit-password/PermitRootLogin yes/ /etc/ssh/sshd_config
systemctl restart sshd

3. 修改文件数内存数限制vim /etc/security/limits.conf 追加:
* soft nofile 32768
* hard nofile 65536
* soft nproc 32768
* hard nproc 65536
* soft memlock unlimited
* hard memlock unlimited

临时生效:
#用户可以打开文件的最大数目
ulimit -n 65536
#用户可以开启进程/线程的最大数目
ulimit -u 65535
ulimit -l unlimited

4. 内核调优vim /etc/sysctl.conf
# open file(s) kernel 级别有 2 个配置
# fs.nr_open,进程级别,默认设置的上限是1048576,所以用户的open file(s)不可能超过这个上限。fs.nr_open总是应该小于等于fs.file-max。
# fs.file-max,系统级别
fs.nr_open = 10000000
fs.file-max = 11000000
#表示同一用户同时可以添加的watch数目(watch一般是针对目录,决定了同时同一用户可以监控的目录数量)
fs.inotify.max_user_watches=11000000
#如果你的系统是持续地写入动作,那么实际上还是降低这个数值比较好,这样可以把尖峰的写操作削平成多次写操作。
#如果你的系统是短期地尖峰式的写操作,并且写入数据不大(几十M/次)且内存有比较多富裕,那么应该增大此数值
vm.dirty_writeback_centisecs=100
#指定脏数据存活时间
#对于特别重载的写操作来说,这个值适当缩小也是好的,但也不能缩小太多,因为缩小太多也会导致IO提高太快。建议设置为 1500,也就是15秒算旧。
#当然,如果你的系统内存比较大,并且写入模式是间歇式的,并且每次写入的数据不大(比如几十M),那么这个值还是大些的好。
vm.dirty_expire_centisecs=100
#0 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
#1 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
#2 表示内核允许分配超过所有物理内存和交换空间总和的内存
vm.overcommit_memory=1
#max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量
vm.max_map_count=655360
#对外连接端口范围
net.ipv4.ip_local_port_range=1000065001
#系统所能处理不属于任何进程的TCP sockets最大数量。假如超过这个数量,那么不属于任何进程的连接会被立即reset,并同时显示警告信息。
#为了抵御简单的 DoS 攻击﹐千万不要依赖这个或是人为的降低这个限制,更应增加这个值(如果增加了内存之后)。每个孤儿套接字最多能够吃掉你64K不可交换的内存。
net.ipv4.tcp_max_orphans=4000000
#时间戳可以避免序列号的卷绕。一个 1Gbps 的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常” 的数据包。这里需要将其关掉
net.ipv4.tcp_timestamps=0
#定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128,限制了接收新 TCP 连接侦听队列的大小。
#对于一个经常处理新连接的高负载 web服务环境来说,默认的128太小了。大多数环境这个值建议增加到 1024 或者更多。
#服务进程会自己限制侦听队列的大小(例如 sendmail(8) 或者 Apache),常在它们配置文件中有设置队列大小选项。大的侦听队列对防止拒绝服务 DoS 攻击也会有所帮助。
net.core.somaxconn=2048
#最大跟踪连接数,是在内核内存中netfilter可以同时处理的“任务”(连接跟踪条目) ,默认 nf_conntrack_buckets * 4 = 65536
net.netfilter.nf_conntrack_max=1048576

sysctl -p

5. 关闭透明大页【CentOS 8初始化】vim  /etc/rc.d/rc.local 追加:
#关闭Transparent Huge Pages(THP)
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

chmod +x /etc/rc.d/rc.local

#临时关闭
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
#检查THP的启用状态
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag

6. 设置时区
date -R 查看时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 时区改为东八区


    推荐阅读