CentOS 7 安装与优化
CentOS(Community Enterprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux(RHEL)依照开放源代码规定发布的源代码所编译而成,由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用,两者的不同,在于CentOS并不包含封闭源
前言
CentOS 7与CentOS 6之间最大的差别就是初始化技术不同,CentOS 7采用的初始化技术是Systemd,并行的运行方式,除了这一点之外,服务启动、开机启动文件、网络命令方面等等,我们一起通过这篇文章来了解一下系统初始化技术的演变过程。
Sysvinit技术
特点:
1.系统第1个进程为init; 2.init进程是所有进程的父进程,不可kill; 3.大多数Linux发行版的init系统是和SystemV相兼容的,被称为sysvinti 4.代表系统:CentOS5 CentOS6
优点:
sysvinit运行非常良好,概念简单清晰,它主要依赖于shell脚本。
缺点:
1.按照一定顺序执行---->启动太慢。 2.很容易hang住,fstab与nfs挂载问题
Upstart技术
CentOS6采用了upstart技术代替sysVinit进行引导,Upstart对rc.sysinit脚本做了大量的优化,缩短了系统初始化的启动时间,但是CentOS6为了简便管理员的操作,upstart的很多特性并没有凸显或直接不支持。
代表系统:CentOS6, Ubuntu14, 从CentOS7, Ubuntu15开始使用systemd
Systemd技术
新系统都会采用的技术(RedHat7,CentOS7,Ubuntu15等); 设计目标是克服sysvinit固有的缺点,提高系统的启动速度; 和Sysvinit兼容,降低迁移成本; 最主要优点:并行启动 pid为1的进程
三种启动技术对比:
并行启动三大原理:
1、解决socket 依赖/端口依赖 socket 网络套接字文件
2、解决D-Bus 依赖:采用了D-Bus 为程序之间的通讯工具,类似消息队列,可以缓存信息
3、解决文件系统依赖、类似autofs机制 先加载boot、swap、/ 分区,后直接启动系统,延迟启动其他guaz
下载CentOS
开始安装CentOS之前,必须下载安装ISO映像,可从CentOS网站https://www.centos.org/download/获得镜像。
安装CentOS 7系统
这里为了性能考虑,采用最小化安装,虚拟机选择,磁盘空间尽量大一些
修改网卡名为eth
开机进入安装
把光标移动到Install CentOS7,按下TAB键
添加内核参数 让网卡名称变为eth
空格 输入
net.ifnames=0 biosdevname=0
然后回车
选择语言
滑动鼠标,点击中文,选择简体中文
点击继续
设置网络连接和主机名
勾选开机自启动
设置IP地址
修改主机名,点击应用
点击完成
选择安装的环境,选择最小化安装。
注意勾选依赖包
点击完成
选择磁盘分区。
选择磁盘分区
点击完成
开始安装,安装的过程中设置root的密码。
优化CentOS 7系统
nmtui
nmtui 可提供一个文本界面配置由 NetworkManager 控制的网络, 该工具包含在 NetworkManager-tui
子软件包中,写入时,不会默认随 NetworkManager 安装该子软件包。要安装 NetworkManager-tui
,请作为 root
运行以下命令:
root 用户运行下面的命令在当前会话中启动该服务:
运行 systemctl enable
命令确定每次系统引导时都启动 NetworkManager:
启动 nmtui,请按如下方式运行命令:
编写时,nmtui 不支持所有连接类型,特别是无法编辑使用 WPA Enterprise 的 VPN、Wi-Fi 连接,或无法编辑使用 802.1X
的以太网连接。
修改主机名
临时 hostname
永久vim /etc/hostname
修改主机名永久和临时一步到位:hostnamectl set-hostname hezhiqiang
查看系统版本
Yum源上的优化
在CentOS6的时候,默认是从官方源下载rpm包的,由于是国外的yum源很慢不能用,CentOS7在这里做了优化,当我们使用yum安装软件的时候,默认不会再从官方下载,而是自动寻找离自己地理位置最近的yum源开始下载。
配置Yum源
安装常用命令
如果在安装系统的时候选择minimal,会比之前CentOS 6的时候以更小的包来安装,比如:
vim、ifconfig、route、setup、netstat
等等很多命令都没有了。。在安装系统后可加入以下软件包:
字符集修改
开机启动管理
注意:CentOS 7中继续使用/etc/rc.d/rc.local
需要执行如下命令赋予可执行权限
优化Linux运行级别
企业场景面试题:Linux的7种运行级别,及对应作用。(要牢记) 企业场景面试题:要把Linux的运营级别从3改成5,要修改哪个文件? 答案:/etc/inittab
Linux系统7个运行级别(0:关机,停机模式、1:单用户模式、2:多用户模式、3:完整的多用户文本模式、4:系统未使用,保留一般不用、5:图形化模式、6:重启模式),运行级就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。
启动原理说明:
在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)。
在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别即(0-6)。
rcN.d目录下都是一些符号链接(即软链接)文件,这些链接文件都指向/etc/rc.d/init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两拉伯数字,系统启动时,会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件:对于以K开头的文件,系统将终止对应的服务,对于以S开头的文件,系统将启动对应的服务。
级别具体说明:
0: 系统停机(关机)模式,系统默认运行级别不能设置为0,否则不能正常启动,一开机就自动关机。
1:单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。
2:多用户模式,没有NFS网络支持。
3:完整的多用户文本模式,有NFS,登陆后进入控制台命令行模式。
4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5:图形化模式,登陆后进入图形GUI模式或GNOME、KDE图形化界面,如X Window系统。 6:重启模式,默认运行级别不能设为
6,否则不能正常启动,就会一直开机重启开机重启。
查看当前Linux运行模式:
注意:输入init 0,系统会关机;输入init 6,系统会自动重启,这两个命令要非常小心! 标准的Linux运行级别为3或5,如果是3的话,系统就在多用户状态;如果是5的话,则是运行着图形化模式,不同的运行级别有不同的用处,根据自己的不同情形来设置。
设置当前运行级别:
runlevel
:查看当前系统运行级别。init
:切换运行级别,后面接对应级别的数字,例如init 6就是重启linux服务器。
临时生效,只有五种运行级别
Systemd 系统启动文件的目录
语法格式: http://www.jinbuguo.com/systemd/systemd.service.html
systemctl
:融合service和chkconfig的功能于一体,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。
Sysvinit命令与Systemd命令对比
设置默认运行级别:
注意:
默认运行级别不能设置为0,否则不能正常启动,一开机就自动关机。
默认运行级别不能设为6,否则不能正常启动,就会一直开机重启开机重启。
CentOS 7 修改网卡名为eth0
解决更换网卡后名称变更的问题,更改名称的方法,修改CentOS7网卡名称为传统名称eth0格式
方法一:
在进入安装界面的时候把光标移动到Install CentOS7,按下tab键,在后面输入“net.ifnames=0 biosdevname=0
”回车即可。
方法二:
进入网卡配置文件目录
重命名网卡
修改配置文件NAME、DEVICE
修改grub
GRUB是大多数Linux系统默认使用的引导程序, 可以通过启动菜单的方式选择进入不同的操作系统
生成启动菜单
重启系统生效
查看是否成功
centos7默认没有
ifconfig
命令,需yum install net-tools -y
安装
SELinux 的工作模式
SELinux 提供了 3 种工作模式:Disabled、Permissive 和 Enforcing,而每种模式都为 Linux 系统安全提供了不同的好处。
Disable工作模式(关闭模式)
在 Disable 模式中,SELinux 被关闭,默认的 DAC 访问控制方式被使用。对于那些不需要增强安全性的环境来说,该模式是非常有用的。 例如,若从你的角度看正在运行的应用程序工作正常,但是却产生了大量的 SELinux AVC 拒绝消息,最终可能会填满日志文件,从而导致系统无法使用。在这种情况下,最直接的解决方法就是禁用 SELinux,当然,你也可以在应用程序所访问的文件上设置正确的安全上下文。 需要注意的是,在禁用 SELinux 之前,需要考虑一下是否可能会在系统上再次使用 SELinux,如果决定以后将其设置为 Enforcing 或 Permissive,那么当下次重启系统时,系统将会通过一个自动 SELinux 文件重新进程标记。 关闭 SELinux 的方式也很简单,只需编辑配置文件 /etc/selinux/config,并将文本中 SELINUX= 更改为 SELINUX=disabled 即可,重启系统后,SELinux 就被禁用了。
Permissive工作模式(宽容模式)
在 Permissive 模式中,SELinux 被启用,但安全策略规则并没有被强制执行。当安全策略规则应该拒绝访问时,访问仍然被允许。然而,此时会向日志文件发送一条消息,表示该访问应该被拒绝。 SELinux Permissive 模式主要用于以下几种情况: 审核当前的 SELinux 策略规则; 测试新应用程序,看看将 SELinux 策略规则应用到这些程序时会有什么效果; 解决某一特定服务或应用程序在 SELinux 下不再正常工作的故障。 某些情况下,可使用 audit2allow 命令来读取 SELinux 审核日志并生成新的 SELinux 规则,从而有选择性地允许被拒绝的行为,而这也是一种在不禁用 SELinux 的情况下,让应用程序在 Linux 系统上工作的快速方法。
Enforcing工作模式(强制模式)
Enforcing 模式, SELinux 被启动,并强制执行所有的安全策略规则。
禁用SELinux
查看SElinux状态
临时修改selinux模式为Permissive工作模式(宽容模式)
永久修改selinux模式为Disable工作模式(关闭模式)
关闭防火墙
CentOS 7默认使用的是firewall作为防火墙
开机时间优化
systemd-analyze time #查看系统的启动时间
systemd-analyze blame #查看系统每个服务的启动时间
systemd-analyze plot >bootime.avg #生成图形化效果,然后sz bootime.avg下载
开机启动时间
查看具体的使用时间
生产图表
开机启动项优化
最后更新于