系统优化
系统优化
[TOC]
yum仓库优化
如果默认的仓库里面没有,就去找额外的仓库了
📌 安装软件的应用市场、YUM仓库 YUM源 在安装软件的时候通过仓库的链接下载
(1)国产操作系统安装软件的yum仓库在国内,不需要修改
(2)默认没有扩展的仓库,需要配置
(3)如果默认和扩展的仓库都没有需要的软件怎么办?
'去下载官网仓库、比如下载nginx'/etc/yum.repos.d/nginx.repo --> 指向nginx.org的官方网站yum -y install nginx # 这样就可以下载Nginx了======================================/etc/yum.repos.d/kylin_x86_64.repo --> 麒麟默认的yum源,指向kylin服务器# yum仓库优化 - 国内镜像源# 国内的仓库地址 阿里源 & 清华源# https://developer.aliyun.com/mirror/======================================# Kylin操作系统部署扩展仓库epel# 打开阿里源 https://developer.aliyun.com/mirror/# 找到epel仓库对应的版本号# 使用wget命令将配置文件保存到本地'Kylin v10 是通过Centos7内核更改的'
1)下载epel仓库配置文件[root@Kylin ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repowget -O 下载到指定目录并改名[root@Rocky ~]# yum -y install epel-release# 👆 Rocky Linux下载安装扩展源
2)查看结果[root@Kylin ~]# ll /etc/yum.repos.d/总用量 8-rw-r--r-- 1 root root 664 8月 4 2022 epel.repo-rw-r--r-- 1 root root 701 9月 8 2022 kylin_x86_64.repo'epel.repo 已成功下载'✅️ epel仓库配置文件已就位
# 测试仓库是否成功配置(见图片)
这个sl软件,就是从我们的 epel扩展仓库 下载来的
Centos 7操作系统
# CentOS 7 - YUM源优化
1)备份原有yum源[root@oldboy ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2)下载阿里云Base源[root@oldboy ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# 用curl -o(小o),因为这个命令最小化安装的时候自带# wget命令 系统里面可能没有⚠️ 推荐用curl -o(小写)命令,两个命令都是下载阿里yum源# wget方式(可选): wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo'都是下载到指定位置并改名'
3)下载epel扩展仓库[root@oldboy ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo'为什么要有这个扩展仓库?'# 如果在安装软件的时候,没有在CentOS-Base.repo中找到官方的下载链接# 那么yum会自动去epel.repo指向的链接处去查找# 相当于epel.repo给yum提供了更多的下载渠道📌 /etc/yum.repos.d/epel.repo 是EPEL仓库的配置文件# 为CentOS/RHEL提供官方仓库未包含的额外软件包'提供的软件类型: htop、nginx等''开发工具和依赖库'
4)查看yum源列表[root@oldboy ~]# yum repolist# 查看配置的所有仓库======================================yum clean all #清理老旧的缓存信息yum makecache #更新yum缓存yum -y update #升级所有包的同时,升级软件和系统内核Rocky 10仓库优化
#!/bin/bashset -e
# 0. 备份旧配置(防止误操作)BACKUP_DIR="/etc/yum.repos.d/backup_$(date +%Y%m%d_%H%M%S)"mkdir -p "$BACKUP_DIR"mv /etc/yum.repos.d/*.repo "$BACKUP_DIR/" 2>/dev/null || trueecho "✅ 旧 repo 文件已备份至: $BACKUP_DIR"
# 1. rocky.repo — 核心仓库cat > /etc/yum.repos.d/rocky.repo << 'EOF'[baseos]name=Rocky Linux $releasever - BaseOS - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/BaseOS/$basearch/os/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10
[appstream]name=Rocky Linux $releasever - AppStream - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/AppStream/$basearch/os/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10
[crb]name=Rocky Linux $releasever - CRB - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/CRB/$basearch/os/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10EOF
# 2. rocky-extras.repocat > /etc/yum.repos.d/rocky-extras.repo << 'EOF'[extras]name=Rocky Linux $releasever - Extras - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/extras/$basearch/os/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10
[plus]name=Rocky Linux $releasever - Plus - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/plus/$basearch/os/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10EOF
# 3. rocky-addons.repo(默认禁用)cat > /etc/yum.repos.d/rocky-addons.repo << 'EOF'[highavailability]name=Rocky Linux $releasever - HighAvailability - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/HighAvailability/$basearch/os/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10
[nfv]name=Rocky Linux $releasever - NFV - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/NFV/$basearch/os/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10
[rt]name=Rocky Linux $releasever - RT - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/RT/$basearch/os/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10
[sap]name=Rocky Linux $releasever - SAP - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/SAP/$basearch/os/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10
[saphana]name=Rocky Linux $releasever - SAPHANA - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/SAPHANA/$basearch/os/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10EOF
# 4. rocky-devel.repo(默认禁用)cat > /etc/yum.repos.d/rocky-devel.repo << 'EOF'[devel]name=Rocky Linux $releasever - Devel - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/devel/$basearch/os/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10EOF
# 5. rocky-security.repo(默认禁用)cat > /etc/yum.repos.d/rocky-security.repo << 'EOF'[security]name=Rocky Linux $releasever - Security - Aliyunbaseurl=https://mirrors.aliyun.com/rockylinux/$releasever/security/$basearch/os/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10EOF
# 6. epel.repocat > /etc/yum.repos.d/epel.repo << 'EOF'[epel]name=Extra Packages for Enterprise Linux $releasever - $basearch - Aliyunbaseurl=https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch/gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever_majorgpgcheck=1enabled=1
[epel-debuginfo]name=Extra Packages for Enterprise Linux $releasever - $basearch - Debug - Aliyunbaseurl=https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch/debug/gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever_majorgpgcheck=1enabled=0
[epel-source]name=Extra Packages for Enterprise Linux $releasever - $basearch - Source - Aliyunbaseurl=https://mirrors.aliyun.com/epel/$releasever/Everything/source/tree/gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever_majorgpgcheck=1enabled=0EOF
# 7. 确保 GPG Key 存在(如果缺失则尝试从阿里云下载)if [ ! -f /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10 ]; then echo "⚠️ 未找到 Rocky 10 GPG Key,正在尝试下载..." curl -fsSL -o /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10 \ https://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-Rocky-10 || truefi
# 8. 清理并重建缓存echo "🔄 正在重建 DNF 缓存..."dnf clean alldnf makecache
echo "✅ 所有仓库配置完成!"安装常用工具
yum install -y vim tree wget bash-completion bash-completion-extras lrzsz tar zip net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bind-utils nethogs expect cowsay sl ntpdate# 下面两个工具已包含在上面命令中🐴 娱乐时间[root@Kylin ~]# yum -y install cowsay[root@Kylin ~]# cowsay "我会说话" ______< 我会说话 > ------ \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||优化ssh连接速度
# ssh连接优化
1)注释GSSAPIAuthentication[root@oldboy ~]# sed -i '/^GSSAPIAuthentication/s@^@#@g' /etc/ssh/sshd_config# 原来是 yes,注释掉 --> 开头换为#
2)追加优化配置[root@oldboy ~]# cat >>/etc/ssh/sshd_config<<EOFUseDNS no# 相当于网络命令的-n选项,不解析为主机名,直接成IP地址GSSAPIAuthentication no# 关闭GSS认证EOF
3)验证配置[root@oldboy ~]# grep GSSAPIAuthentication /etc/ssh/sshd_config#GSSAPIAuthentication yesGSSAPIAuthentication no'我们注释的是yes --> 追加的是no' ✅ 显示指定为no
4)重启sshd服务[root@oldboy ~]# systemctl restart sshd
5)最终检查[root@oldboy ~]# egrep '^(GSSAPIAuthentication|UseDNS)' /etc/ssh/sshd_configUseDNS noGSSAPIAuthentication no# 检查通过# 注: sshd_config后面讲解sshd服务会有详解,目前配置即可时间同步
-
📌 硬件时间 BIOS系统
- 是计算机主板上由独立电池供电的硬件时钟所维护的时间,它在计算机关机时也能持续运行
- 确保系统启动时有一个初始时间基准
-
📌 系统时间 操作系统
- 我们当前看到的时间
⚠️ 在企业中硬件时间和系统时间都必须保证正确
🧣timedatectl
[root@db03 ~]# timedatectl Local time: Fri 2026-03-13 20:54:12 CST Universal time: Fri 2026-03-13 12:54:12 UTC RTC time: Fri 2026-03-13 12:54:12 Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: no NTP service: active RTC in local TZ: no# 三种时间类型:# Local time (本地时间): 根据设置的时区(这里是Asia/Shanghai)计算出的时间# Universal time (UTC): 全球通用的标准时间,Linux内核内部按UTC运行# RTC time (硬件时钟): 主板上的实时时钟,由电池供电,关机也会继续运行
1)查看timedatectl子命令[root@db03 ~]# timedatectl# (tab两次)list-timezones set-local-rtc set-timezone statusntp-servers set-ntp show timesync-statusrevert set-time show-timesync# set-timezone: 时区# set-time: 时间
2)列出可用时区[root@db03 ~]# timedatectl list-timezones | head -10'列出可以使用的时区'Africa/AbidjanAfrica/Algiers.............
3)查看时区 time zone部分[root@oldboy network-scripts]# timedatectl status Local time: Sun 2025-12-07 21:39:29 CST Universal time: Sun 2025-12-07 13:39:29 UTC RTC time: Sun 2025-12-07 13:39:28 Time zone: Asia/Shanghai (CST, +0800)# 主要是这里查看时区System clock synchronized: yes NTP service: active RTC in local TZ: no
4)修改时区[root@oldboy network-scripts]# timedatectl set-timezone Asia/Shanghai# 如果不正确,修改时区为亚洲/上海
date
查看系统时间
[root@Kylin ~]# date2025年 11月 03日 星期一 10:49:43 CST
基本语法:date [选项] +"格式"[root@Rocky ~]# date +"%F_%H_%M"2026-06-22_16_13
- 其中 +格式 是你想要的输出格式,以加号 + 开头
- ⚠️ 这个格式外面最好用双引号括起来
✅ 常用格式
| 格式 | 说明 |
|---|---|
| %F | 显示年月日(如:2025-11-03) |
| %Y | 四位数年份(如:2025) |
| %m | 月份(01–12) |
| %d | 日期(01–31) |
| %T | 以hh:mm |
| %H | 小时(00–23,24小时制) |
| %M | 分钟(00–59) |
| %S | 秒(00–60) |
| %w | 星期几(0=周日,1-6=周一至周六) |
# 标准格式(年-月-日 时:分:秒)[root@oldboy ~]# date +"%F %H:%M:%S"2025-12-27 10:52:32
[root@oldboy ~]# date +"%F %T"2025-12-27 10:59:48# %T等价%H:%M:%Sclock
查看硬件时间
[root@Kylin ~]# clock2025-11-03 10:50:48.472533+08:00date -s
修改系统时间(做测试)
[root@Kylin ~]# date -s 200810102008年 10月 10日 星期五 00:00:00 CST同步系统时间
[root@Kylin ~]# date2008年 10月 10日 星期五 00:00:54 CST'这里时间是错误的'
1)安装自动同步工具[root@Kylin ~]# yum -y install ntpdate'先安装这个自动同步的工具'
2)时间同步[root@Kylin ~]# ntpdate ntp1.aliyun.com 3 Nov 10:55:24 ntpdate[5121]: step time server 118.31.40.99 offset +538570277.756436 sec[root@Kylin ~]# date2025年 11月 03日 星期一 10:55:26 CST'同步后,时间就回来了'✅️ 时间同步成功硬件时间同步
[root@Rocky ~]# clock -w# 将系统给的时间同步给硬件时间⚠️ 最后加入到定时任务,间隔30分钟自动同步一次
字符集
什么是字符集? —> 语言在系统中表示方式
GBK: 国标 、UTF-8: 万国码
查看字符集
[root@Kylin ~]# echo $LANGzh_CN.UTF-8# kylin默认选择为UTF-8,装系统时自己选择的中文修改语言为英文
(1)临时修改(重新Xshell连接,修改失效)
[root@Kylin ~]# LANG=en_US.UTF-8'这个形式太熟悉了,它本质就是变量,临时生效'
[root@Kylin ~]# echo $LANGen_US.UTF-8'测试是否成功'
[root@Kylin ~]# lllllllllllllll-bash: lllllllllllllll: command not found'看提示是否为英文'(2)永久修改语言
这两个都要进行source才能生效
- 直接修改配置文件
位置: /etc/locale.conf
1)修改配置文件为英文[root@Kylin ~]# cat /etc/locale.confLANG="en_US.UTF-8"'这个LANG本质还是变量'======================================================# 说到变量,我们会想到什么?环境变量,如何让环境变量生效?# 使用source或者.(点)让变量生效,或者重新连接xshell,或者重启系统'xshell每次连接都要重新执行profile中的变量 == source /etc/profile''它俩在使变量生效,功能等价'
2)让配置生效[root@Kylin ~]# source /etc/locale.conf[root@Kylin ~]# echo $LANGen_US.UTF-8- 通过命令配置语言
1)查看当前配置[root@Kylin ~]# cat /etc/locale.confLANG="en_US.UTF-8"
2)修改语言为中文[root@Kylin ~]# localectl set-locale LANG="zh_CN.UTF-8"'让我想起了修改主机名: hostnamectl set-hostname 新主机名'
3)确认修改结果[root@Kylin ~]# cat /etc/locale.confLANG=zh_CN.UTF-8
4)让配置生效[root@Kylin ~]# source /etc/locale.conf# 千万别忘记了source一下[root@Kylin ~]# echo $LANGzh_CN.UTF-8Selinux关闭
getenforce
get = 获取 enforce = 强制模式
📌 查看状态
⚠️ 只要不是Enforcing就是关闭状态
setenforce 0
set = 设置 enforce = 强制模式
将 SELinux 模式从 enforcing 切换为 permissive
- 不是完全”关闭”(disabled)
- 临时关闭,当你重启后它又变回来了
- 执行后立即生效,无需重启
[root@oldboy ~]# getenforcePermissive那我们如何永久关闭它呢?
修改/etc/selinux/config文件
- 直接编辑配置文件,改为disabled
- 然后虚拟机重启生效,reboot
⚠️ 如果只是修改 /etc/selinux/config 为 disabled 但不重启?
- SELinux 仍然处于启用状态
- 系统下次启动时才会以 disabled 模式加载,此时 SELinux 内核子系统完全不激活
优化防火墙
防火墙: 安全防护、限制一些非法流量
主要限制那些访问我们服务器的流量,是否合法
有些东西,不让它访问
什么时候开启防火墙?
(1)服务器运行在公网环境中需要开启 (2)用户可以访问到我们的服务
什么时候关闭防火墙?
(1)局域网内的服务器 (2)测试服务器 (3)压力比较大的业务服务器(换硬件防火墙)
- 我们服务器本身带有软件的防火墙,把防火墙理解为检票,人一多就忙不过来了,得排队
- 有的人等不及就去别的家买去了,那么原本属于你的流量就被分流了
那么如何让人都能进来呢?
把防火墙(服务器软件自带的)去掉,减少服务器压力,换硬件防火墙 —> 配置高的,又太贵了
systemctl status
查看当前防火墙状态
[root@oldboy ~]# systemctl status firewalld● firewalld.service - firewalld - dynamic firewall daemon **开机启动**Loaded: loaded (/usr/lib/systemd/system/firewalld.service; **enabled**; vendor preset: enabled)Active: **active (running)** since Sun 2025-12-07 15:59:26 CST; 4h 40min agoDocs: man:firewalld(1)Main PID: 839 (firewalld)systemctl stop
关闭防火墙
[root@Kylin ~]# systemctl stop firewalldsystemctl disable
永久关闭、禁止开机自动运行
[root@Kylin ~]# systemctl disable firewalldsystemctl 常用操作速查
| 命令 | 说明 |
|---|---|
systemctl start xx | 开启服务 |
systemctl stop xx | 关闭服务 |
systemctl restart xx | 重启服务 |
systemctl status xx | 查看服务状态 |
systemctl enable xx | 开机自动运行 |
systemctl disable xx | 开机禁止运行 |
PS1命令提示符
📌 是系统环境变量值之一,用于控制命令行格式样式
⚠️ 写入**/etc/profile**中即可,别忘记source一下
PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \W\[\e[0m\]]\\$ "📌 PS1变量
| 变量 | 说明 |
|---|---|
\u | 当前用户的账号名称 |
\d | 代表日期,格式为weekday month date,例如:“Mon Aug 1” |
\H | 完整的主机名称 |
\h | 仅取主机的第一个名字 |
\w | 完整的工作目录名称,家目录会以 ~代替 |
\W | 利用basename取得工作目录名称,所以只会列出最后一个目录 |
\t | 显示时间为24小时格式,如:HH:MM |
\T | 显示时间为12小时格式 |
\A | 显示时间为24小时格式:HH |
\v | BASH的版本信息 |
\# | 下达的第几个命令 |
\$ | 提示字符,root时为 #,普通用户时为 $ |
普通用户缺钱 $
# 给PS1定义颜色1)编辑配置文件[root@oldboy ~]# vim /etc/profilePS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \W\[\e[0m\]]\\$ "# "/etc/profile" 81L, 2011C written
2)让配置生效[root@oldboy ~]# source /etc/profile文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!




