CentOS 7系统优化

简介:

CentOS 7 是一个企业级的 Linux 发行版,它在服务器和企业环境中广泛使用。优化系统可以减少资源消耗,提高处理速度,使得服务器能够更快地响应请求,从而提升整体性能。

通过关闭不必要的服务和端口,优化系统可以减少潜在的安全漏洞,降低被攻击的风险。 通过这些优化措施,CentOS 7 系统可以更好地满足应用的需求,提供更高效、稳定和安全的运行环境。

一、更改优化yum源

yum install -y wget
		 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
		 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
		 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo


PS: yum repolist
这条命令用于列出所有已配置的 YUM 仓库。它显示了仓库的名称、状态(启用或禁用)以及仓库的 URL。这个命令对于查看当前系统配置的仓库非常有用。

在提供的命令中,有几个步骤用于安装软件包、下载并设置 YUM 仓库配置。下面是每条命令的解释:


yum install -y wget
这条命令用于安装 wget 工具。-y 参数表示自动回答所有提示为 "yes",这样在安装过程中不会停下来等待用户输入。

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
这条命令使用 wget 工具下载 Aliyun 提供的 CentOS 7 基础仓库配置文件,并将其保存到 /etc/yum.repos.d/CentOS-Base.repo。-O 参数指定了输出文件的路径。

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
这条命令使用 curl 工具执行与 wget 相同的操作,下载 CentOS 7 基础仓库配置文件。-o 参数指定了输出文件的路径。请注意,这条命令与上一条命令重复,只需要执行其中一个即可。

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
这条命令下载 EPEL (Extra Packages for Enterprise Linux) 仓库的配置文件,并将其保存到 /etc/yum.repos.d/epel.repo。EPEL 仓库提供了许多额外的软件包,这些软件包可能不在官方的 CentOS 仓库中。


关于 EPEL(Extra Packages for Enterprise Linux):
EPEL 是一个由 Fedora 项目维护的仓库,它为 RHEL(Red Hat Enterprise Linux)及其衍生版本(如 CentOS)提供了额外的软件包。这些软件包可能包括开源软件、自由软件以及一些在官方仓库中不可用的商业软件。EPEL 仓库通常用于扩展系统的功能,提供更多的软件选择。

在执行这些命令之前,请确保您有足够的权限(通常需要使用 sudo),并且您的网络连接正常。如果您的系统上已经安装了 wget 和 curl,那么您可以跳过第一条命令。如果您只想使用 wget 或 curl 中的一个来下载仓库配置文件,那么您只需要执行相应的一条命令即可。

二、关闭selinux

关闭 SELinux 通常是因为某些应用程序与其安全策略不兼容,导致无法正常运行,为了简化系统管理并提高性能。

#关闭selinux
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

#检查是否有关闭成功
grep SELINUX=disabled /etc/selinux/config

#临时修改
setenforce 0

三、关闭iptables

关闭 iptables 是因为需要降低网络延迟以提高性能,或者在某些情况下,如使用云服务时,网络流量的管理由云提供商负责,不再需要在本地服务器上设置 iptables 规则。

#关闭iptables	centos7
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

四、英文字符集

#英文字符集
locale set-locale LANG="en_US>UTF-8"
echo $LANG

#设置系统的区域设置为美国英语(en_US),并指定字符编码为 UTF-8。
#并检查是否有设置成功

#PS:设置中文字符集可以安装中文语言包
yum install -y zh_CN.koi8u

locale set-locale LANG="zh_CN.UTF-8"

 五、时间同步

时间同步
yum install -y ntpdate
#使用 YUM 包管理器安装 ntpdate。

echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root
#添加一个新的 cron 任务,该任务每 5 分钟执行一次 ntpdate 命令,从 ntp1.aliyun.com 获取时间。>/dev/null 2>&1 部分是将标准输出和标准错误都重定向到 /dev/null,这意味着不保留任何日志输出。

crontab -l
#列出当前用户的 crontab 文件内容。在执行了上述添加 cron 任务的命令后,使用这个命令可以查看新添加的任务是否正确设置。

六、加大文件描述

echo '*             -         nofile           65535 ' >>/etc/security/limits.conf

#这条命令将一个新的配置行添加到 /etc/security/limits.conf 文件中。这个配置行设置了所有用户(*)的 nofile 限制为 65535。nofile 是指用户可以打开的最大文件描述符数量。>> 操作符表示将输出追加到文件的末尾。如果您想要为特定用户设置这个限制,可以将 * 替换为相应的用户名。

tail -1 /etc/security/limits.conf

#这条命令显示 /etc/security/limits.conf 文件的最后一行。这通常用于验证刚才添加的配置行是否正确写入了文件。tail 命令用于显示文件的最后几行,-1 参数表示只显示最后一行。


七、安装一些实用软件包

yum install  -y lrzsz nmap tree dos2unix nc telnet wget lsof ntpdate bash-completion-extras bash-completion epel-release bash-completion bash-completion-extras vim-enhanced net-tools

lrzsz:
这是一个包含 lrz(用于接收文件)和 sz(用于发送文件)的包,它们是 Zmodem 文件传输协议的命令行工具。

nmap:
Nmap 是一个网络探测和安全审计工具,用于扫描网络,发现主机,服务,操作系统,防火墙规则等。

tree:
Tree 是一个递归目录列表器,它以树状图的形式显示目录内容,非常适合查看文件系统结构。

dos2unix:
Dos2Unix 是一个用于转换文本文件格式的工具,它可以将 DOS(Windows)格式的文本文件转换为 UNIX 格式。

nc(Netcat):
Netcat 是一个多功能的网络工具,用于调试和调查网络连接,它也常被用于安全测试。

telnet:
Telnet 是一个网络协议,也是命令行下的客户端程序,用于远程登录到另一台计算机。

wget:
Wget 是一个命令行工具,用于从网络上下载文件。它支持 HTTP、HTTPS 和 FTP 协议。

lsof:
Lsof(List Open Files)是一个强大的命令行工具,用于列出系统中被进程打开的文件。

ntpdate:
Ntpdate 是一个用于同步系统时间的客户端工具,它使用网络时间协议(NTP)与 NTP 服务器同步时间。

bash-completion-extras:
这是 Bash shell 的一个扩展包,提供了额外的自动补全脚本,可以提高命令行输入的效率。

epel-release:
EPEL(Extra Packages for Enterprise Linux)是一个由 Fedora 项目维护的软件仓库,提供了许多额外的软件包,这些软件包可能不在官方的 CentOS 仓库中。

bash-completion:
Bash-completion 是一个脚本,用于为 Bash shell 提供自动补全功能,它可以自动补全命令、选项和文件名。

 PS:这些软件包通常用于系统管理、网络管理、安全审计和提高工作效率。安装这些工具可以帮助系统管理员更好地管理和维护他们的系统。在执行这些安装命令时,-y 参数表示自动接受所有提示,无需手动确认。

下面扩展一个检查软件是否安装完成的循环检查

for pkg in lrzsz nmap tree dos2unix nc telnet wget lsof ntpdate bash-completion-extras bash-completion epel-release; do

rpm -q $pkg && echo "$pkg is installed" || echo "$pkg is not installed"

done

这个命令的工作原理如下:

for pkg in lrzsz nmap ... :这是一个循环,它会遍历您提供的软件包列表。
rpm -q $pkg:rpm -q 命令用于查询软件包的安装状态。如果软件包已安装,它会返回软件包的版本信息。
&& echo "$pkg is installed":如果 rpm -q 成功返回信息,表示软件包已安装,然后执行 echo 命令输出安装状态。
|| echo "$pkg is not installed":如果 rpm -q 没有返回信息(即软件包未安装),则执行 echo 命令输出未安装状态。

执行以后的显示效果:

八、ssh连接速度慢优化 

sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config

#'s@#UseDNS yes@UseDNS no@g' 是第一个替换命令,它将 sshd_config 文件中 #UseDNS yes 这一行(注释形式的行)替换为 UseDNS no,即将注释取消并设置为不使用 DNS 解析。

#'s@GSSAPIAuthentication yes@GSSAPIAuthentication no@g' 是第二个替换命令,它将 GSSAPIAuthentication yes 这一行替换为 GSSAPIAuthentication no,即将 GSSAPI 认证设置为关闭。

systemctl restart sshd

#重启SSH服务

 九、固定IP和更换IP操作

a 修改主机名称
hostnamectl set-hostname backup

b 修改主机地址
sed -i 's#200#51#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
grep 51 /etc/sysconfig/network-scripts/ifcfg-eth[01]
sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth[01]
grep UUID /etc/sysconfig/network-scripts/ifcfg-eth[01]
systemctl restart network

PS: 一台一台顺序启动,进行修改,不要同时启动

如果是自动获取的IP
使用nmutui命令手动更改为手动固定IP,需要清除uuid和删除mac地址
sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth[01]
mac地址使用nmtui命令进去删除

PS:安装系统时将网口名称改为eth0

如何调整网卡名称:安装时按teb按键 
输入:net.ifnames=0 biosdevname=0 

以上是个人对linux系统的一些优化技巧,希望对大家有帮助,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ycchenG7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值