linux学习课程从入门到精通:Linux基本操作和服务器硬件选购指南

本人从事IT行业已有十多年,有着丰富的实战经验,总结了大量的学习方法,更是积累了很多的学习资料,很高兴能在这里跟大家交流学习,希望能在这里跟大家共同进步和成长!全套学习资料移步至公众号【学神来啦】

本节所讲内容:

  5.1  Linux网络相关概念和修改IP地址的方法

  5.2  关闭防火墙并设置开机不启动

  5.3  临时和永久关闭Selinux

  5.4  设置系统光盘开机自动挂载

  5.5  配置本地YUM源

  5.6  创建可用实验快照

 

5.1  Linux网络相关概念和修改IP地址的方法

5.1.1  网卡的命名规则

CENTOS6的网卡命名方式:它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连续号码命名: eth0、 eth1等,当增加或删除网卡时,名称可能会发生变化

CENTOS7采用dmidecode采集命名方案,以此来得到主板信息;它可以实现网卡名字永久唯一(dmidecode这个命令可以采集有关硬件方面的信息)

对网络设备的命名方式:

1)如果Firmware(固件)或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,例如: ifcfg-ens33 

2) 如果Firmware(固件)或BIOS为PCI-E扩展槽所提供的索引信息可用,则根据此索引进行命名,例命名,例如:ifcfg-enp33

3)如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0

上述均不可用时,则使用传统命名机制。

扩展:

在CENTOS7中,en表示:ethernet以太网,就是咱们现在使用的局域网

enX(X常见有下面3种类型) :

s:热插拔网卡,usb之类,扩展槽的索引号

o:主板板载网卡,集成设备的设备索引号。  

p:独立网卡,PCI网卡

nnn (数字)表示:MAC地址+主板信息计算得出唯一的序列

在CentOS8当中网卡名称延续了ens的格式。

5.1.2  ifconfig命令使用

注意:下面操作使用root用户

命令:ifconfig

作用:用来配置网络或显示当前网络接口的状态

[root@xuegod63 ~]# ifconfig

ens33: flags=4163  mtu 1500

        inet 192.168.1.63  netmask 255.255.255.0  broadcast 192.168.1.255

        inet6 fe80::b4dd:361c:ddbb:e4f8  prefixlen 64  scopeid 0x20

        ether 00:0c:29:26:66:2d  txqueuelen 1000  (Ethernet)

        RX packets 1110  bytes 121630 (118.7 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 203  bytes 13240 (12.9 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

上图信息大概说明:

第一行:up-->网卡开启状态

BROADCAST-->支持广播,在IP地址中,如果最后一个数字是255,则一定是一个广播地址

RUNNING-->网卡连接状态

MULTICAST-->支持组播

mtu 1500-->(Maximum Transmission Unit)最大传输单元大小为1500字节

第二行:该网卡的IP地址,子网掩码,广播地址

第三行:IPV6的配置信息

第四行:网卡的MAC地址

ether表示连接类型为以太网

txqueuelen 1000 --》传输队列的长度

第五六行:网卡接收数据包的统计信息和接收错误的统计信息

第七八行:网卡发送数据包的统计信息和发送错误的统计信息

[root@xuegod63 ~]# ifconfig  -a   #-a 参数,查看所有网卡信息,包括没有启动的网卡信息

5.1.3  临时修改

一般只适合在调试网络的过程中使用,重启网络服务或重启网卡或重启系统,所做的修改将会失效

方法1:临时修改网卡IP地址

ifconfig 网卡名称 IP地址     ---直接修改网卡的IP地址,重启网络服务,IP配置会失效

[root@xuegod63 Desktop]# ifconfig ens33 192.168.1.110 netmask 255.255.255.0

说明:修改后当前xshell终端会终断,而这个ip也无法链接,因为这个ip没有路由信息 

[root@xuegod63 Desktop]# ifconfig ens33

ens33: flags=4163  mtu 1500

inet192.168.1.110 netmask 255.255.255.0  broadcast 192.168.1.255

        inet6 fe80::20c:29ff:fee8:ac4  prefixlen 64  scopeid 0x20

        ether 00:0c:29:e8:0a:c4  txqueuelen 1000  (Ethernet)

        RX packets 2028  bytes 198715 (194.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 385  bytes 51073 (49.8 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

方法2: 添加多个临时IP地址

ifconfig 网卡名称:0 第一个IP地址 (netmask 子网掩码) ---增加一个IP

ifconfig 网卡名称:1 第二个IP地址 (netmask 子网掩码) ---增加一个IP

[root@xuegod63 ~]# ifconfig ens33:0 192.168.1.111 netmask 255.255.255.0

[root@xuegod63 ~]# ifconfig

ens33: flags=4163  mtu 1500

        inet 192.168.1.63  netmask 255.255.255.0  broadcast 192.168.1.255

    

ens33:0: flags=4163  mtu 1500

        inet 192.168.1.111  netmask 255.255.255.0  broadcast 192.168.1.255

        ether 00:0c:29:e8:0a:c4  txqueuelen 1000  (Ethernet)

[root@xuegod63 ~]# ip addr show  #查看IP地址

[root@xuegod63 ~]# ip a #查看IP地址

[root@xuegod63 ~]# ip addr delete 192.168.1.110 dev ens33:0 #删除临时IP

[root@xuegod63 ~]# ip a d 192.168.1.110 dev ens33:0 #删除临时IP

[root@xuegod63 ~]# ip a  #查看IP地址

5.1.4  NeworkManager概述

NeworkManager服务是管理和监控网络设置的守护进程,CENTOS7更加注重使用NetworkManager服务来实现网络的配置和管理,7.0以前是通过network服务管理网络,以后的版本,所有网络管理和设置统一由NetworkManager服务来维护。它是一个动态的,事件驱动的网络管理服务。

[root@xuegod63 ~]# systemctl status NetworkManager  

#查看NetworkManager服务是否启动

在centos7中重启网络服务可以使用systemctl restart network,网卡配置文件会生效

在centos8中没有network服务,使用systemctl restart NetworkManager 不会使网卡配置文件生效,可以用 ifdown ens160 && ifup ens160 来让网卡配置文件生效

5.1.5  RHEL/CENTOS  Linux网络相关的配置文件

RHEL/CENTOS 网络相关的配置文件路径为:

[root@xuegod63 ~]# ls /etc/sysconfig/network-scripts/ifcfg-ens33   

#IP地址,子网掩码等配置文件

[root@xuegod63 ~]# ls /etc/sysconfig/network-scripts/ifcfg-lo  

#网卡回环地址。CentOS8中不存在这个文件。

[root@xuegod63 sysconfig]# cat /etc/resolv.conf #查看本机DNS的地址

[root@xuegod63 sysconfig]# vim  /etc/hosts  #设置主机和IP绑定信息,插入以下信息

192.168.1.63  xuegod63  xuegod63.cn

192.168.1.62  xuegod62  xuegod62.cn

192.168.1.64  xuegod64  xuegod64.cn

注:提前插入这些域名和IP的解析关系,方便后期做集群实验

修改主机名:

[root@xuegod63 ~]# hostnamectl set-hostname xuegod63.cn  #使用此命令永久修改主机名 ,或者也可以直接编辑/etc/hostname的内容

[root@xuegod63 ~]# cat /etc/hostname

xuegod63.cn 

[root@xuegod63 ~]# hostname

xuegod63.cn 

[root@xuegod63 ~]# hostname    aaa.com #临时修改主机名

aaa.com

注:当前修改完主机名后,当前已经连接终端的bash提示符中的主机名,不会改变,需要重新登录一下,再可以生效。

5.1.6  永久修改网卡地址:

查看 网卡配置文件:

[root@xuegod63 ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"  #网卡类型:以太网

PROXY_METHOD="none"  #代理方式:不使用

BROWSER_ONLY="no"    #只是浏览器:否

BOOTPROTO="none"

# 等号后面写:dhcp 表示动态获取IP地址,  satic 表示静态IP,none表示不指定,等于静态ip。

DEFROUTE="yes"  #默认路由:是

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

IPV6_ADDR_GEN_MODE="stable-privacy"

NAME="ens33"   #网卡名

UUID="1cd2b392-9a4b-4eb4-8410-971d0b6ecef5"   #UUID每个网上设备都不一样

DEVICE="ens33"   #设备名,通常和网卡名一样

ONBOOT="yes"    #开机启动网卡,必须为yes,此网卡才可以使用

IPADDR="192.168.1.63"  #IP地址

PREFIX="24"            #子网掩码,24表示255.255.255.0

GATEWAY="192.168.1.1"  #默认网关信息

DNS1="223.5.5.5"      #阿里dns

DNS2="8.8.8.8"         #谷歌dns

DNS3="114.114.114"     #中国电信dns

IPV6_PRIVACY="no"

参数说明:

DEVICE:此配置文件应用到的设备

HWADDR:对应的设备的MAC地址

BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none,bootp

NM_CONTROLLED: NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no”

ONBOOT:在系统引导时是否激活此设备

TYPE:接口类型;常见有的Ethernet, Bridge

UUID:设备的惟一标识

IPADDR:指明IP地址

NETMASK:子网掩码

GATEWAY: 默认网关

DNS1:第一个DNS服务器指向

DNS2:第二个DNS服务器指向

USERCTL:普通用户是否可控制此设备

例2:改原来的IP地址为192.168.1.66

[root@xuegod63 ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33

改:IPADDR=192.168.1.63

为:IPADDR=192.168.1.66

情况1:在 centos7/6系统上 ,重启网络服务 ,让配置文件生效

[root@xuegod63 ~]# service network restart   #centos6/7网卡重启方法

[root@xuegod63 ~]# systemctl restart network  #在CentOS7的网卡重启方法,centos8不适用。

情况2:在centos8系统上

[root@xuegod63 ~]# nmcli connection reload    #重新加载网卡相关配置文件

[root@xuegod63 ~]# nmcli c reload              #重新加载网卡相关配置文件

重启网卡,让配置生效。

[root@xuegod63 ~]# nmcli connection down ens160 && nmcli connection up ens160

或使用

[root@xuegod63 ~]# ifdown ens160 && ifup ens160

注:在CentOS8版本当中network 彻底停止使用,不能通过重启network的方式重启所有网卡。

[root@xuegod63 ~]# ifconfig   #查看IP

[root@xuegod63 ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33  #把IP再改回来

改:IPADDR=192.168.1.66  

为:IPADDR=192.168.1.63   

[root@xuegod63 ~]# nmcli connection reload   

[root@xuegod63 ~]# nmcli connection down ens33 && nmcli connection up ens33

这里 connection 可以写成 c 

取消自动锁屏:

5.2  关闭防火墙并设置开机开不启动

查看当前状态

[root@xuegod63 ~]# systemctl status firewalld.service  #查看firewalld状态

[root@xuegod63 ~]# systemctl start firewalld    #开启

[root@xuegod63 ~]# systemctl stop firewalld    #关闭

[root@xuegod63 ~]# systemctl enable firewalld    #设置开机自动启动

[root@xuegod63 ~]# systemctl disable firewalld    #设置开机不启动

[root@xuegod63 ~]# systemctl is-enabled firewalld    #查看开机是否启动

[root@xuegod63 ~]# systemctl enable firewalld --now #开机启动,同时启动服务

[root@xuegod63 ~]# systemctl disable firewalld --now #开机不启动,同时关闭服务

了解下面命令:

[root@xuegod63 ~]# systemctl   #列出当前已启动unit(单元),按q或ctrl+c退出

[root@xuegod63 ~]# systemctl list-units       #列出当前已启动unit(单元),按q退出

[root@xuegod63 ~]# systemctl list-units  -all                  #列出全部unit(单元)

[root@xuegod63 ~]# systemctl list-units  --type service #列出类型为.service(服务)的已经启动unit(单元)。

[root@xuegod63 ~]# systemctl list-unit-files   #列出全部unit及相关文件

[root@xuegod63 ~]#systemctl list-unit-files --type service  | grep enabled #查看开机启的服务

[root@xuegod63 ~]# systemctl  is-enabled  sshd  #查看ssh服务是否开机启动

5.3  临时和永久关闭Selinux

临时关闭

[root@xuegod63 ~]# getenforce

Enforcing

[root@xuegod63 ~]# setenforce 0

setenforce: SELinux is disabled

永久关闭

[root@xuegod63 ~]# vim /etc/selinux/config  

改:7 SELINUX=enforcing     #前面的7,表示文档中第7行。方便你查找

为:7 SELINUX=disabled

[root@xuegod63 ~]# reboot   #必须重启系统,才可以真正的关闭selinux

SELinux 模式

enforcing 强制模式,只要 selinux 不允许,就无法执行;

permissive 警告模式,你可以执行,但你所做事件全部记录;

disabled 关闭 selinux

扩展内容(了解即可):SELinux

SELinux( Security Enhanced Linux 安全性增强的 Linux),由美国国家安全局 NSA(National

Security Agency)开发,构建与 Kernel 之上,拥有灵活的强制性访问控制结构,主要用在提高 Linux的安全性,提供强健的安全保证,可以防御未知攻击。

SELinux 是用于确定哪个进程可以访问哪些文件、目录和端口的一组安全规则。每个文件、进程、目录和端口都具有专门的安全标签,称为 SELinux 上下文。

SELinux 标签具有多种上下文:User用户、Role角色、Type类型和Level敏感度级别。目标策略会根据第三个上下文(即Type类型上下文)来制定自己的规则,通常以_t结尾

ls -Z

传统的 Linux 在没有 Selinux 保护的时候,倘若运行于之上的服务器被骇客攻陷,其服务器最高权限就可能随之丧失,但是倘若有了 SElinux 的保护,入侵的也只有服务本身,整个服务器的最高权限依然还健在!

一句话熟悉 Selinux 的作用:增强 Linux 系统安全性,一个例子:那么是我运行的 Apache 服务器被入侵,也只是入侵到了我 httpd 这个服务,可以把它禁锢到这里(相当于整个服务器运行了 httpd,入侵了 httpd 而已),而系统的整个权限依然正常!

5.4  设置系统光盘开机自动挂载

[root@xuegod63 ~]# vim  /etc/fstab  #在文档最后,添加以一下红色内容:

/dev/cdrom       /mnt  iso9660 defaults        0 0

[root@xuegod63 ~]# mount -a

[root@xuegod63 ~]# lsblk

mount: /dev/sr0 写保护,将以只读方式挂载

[root@xuegod63 ~]# ls /mnt/   #可以查看到此目录下有内容,说明挂载成功

AppStream  BaseOS  EFI  images  isolinux  media.repo  TRANS.TBL

/etc/fstab  说明

第一列 Device

磁盘设备文件或者该设备的Label或者UUID

第二列 Mount point

设备的挂载点,就是你要挂载到哪个目录下

第三列 filesystem

磁盘文件系统的格式,包括ext2、ext3、reiserfs、nfs、vfat等

第四列 parameters

    文件系统的参数

第五列:能否被dump备份命令作用

dump是一个用来作为备份的命令。通常这个参数的值为0或者1

第六列 是否检验扇区

开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。

    

5.5  配置本地YUM源

yum的一切配置信息都储存在一个叫xxx.repo的配置文件中,这些.repo文件,通常位于/etc/yum.repos.d目录下

什么是repo文件

repo文件是 yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的详细信息,例如我们将从哪里下载、安装、升级软件包,repo文件中的设置将被yum读取和应用

查看原有的文件

[root@xuegod63 ~]# cd /etc/yum.repos.d

[root@xuegod63 yum.repos.d]# ls

CentOS-AppStream.repoCentOS-Debuginfo.repo  CentOS-Media.repo

CentOS-Base.repo   CentOS-Extras.repo     CentOS-PowerTools.repo

CentOS-centosplus.repo  CentOS-fasttrack.repo  CentOS-Sources.repo

CentOS-CR.repo          CentOS-HA.repo         CentOS-Vault.repo

实战1:在centos7上,基于光盘镜像创建一个本地yum源。创建一个新的yum源配置文件,yum源配置文件的结尾必须是.repo。  centos8和centos7配置yum源不一样。

[root@xuegod63 ~]# mv /etc/yum.repos.d/* /opt   

#先移走自带的yum配置文件,方便查看本地源的效果

在centos7做法如下:

[root@xuegod63 yum.repos.d]# vim /etc/yum.repos.d/centos7.repo   # 写入以下红色内容

[CentOS7]   

name=CentOS-server     

baseurl=file:///mnt  

enabled=1  

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

参数说明:

[CentOS7]        --->yum源的ID,必须唯一

name=CentOS-server     ----->描述信息

baseurl=file:///mnt    -------> /mnt表示的是光盘的挂载点,file:后面有3个///

baseurl=http://mirrors.163.com/centos/8.3.2011/-------> http://mirrors.aliyun.com/centos/7.8.2003/os/x86_64/  这是基于web服务器提供的yum源

baseurl=ftp://192.168.1.63/pub------->ftp://192.168.1.63/pub这是基于FTP服务器提供的yum源

enabled=1   ------>启用

gpgcheck=0   ---->0取消密钥验证。如果为1,表示启动密钥验证

gpgkey        ------> 指定密钥的位置,比如阿里源密钥的位置如下

gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

清空并生成缓存列表

[root@xuegod63 yum.repos.d]# yum clean all   #清空yum缓存

[root@xuegod63 yum.repos.d]# yum list  #生成缓存列表 也可以写成yum makecache

[root@xuegod63 yum.repos.d]# yum list      #查看仓库中的软件包列表,同时生成缓存列表

CentOS-8 - AppStream                                1.2 MB/s | 6.5 MB     00:05    

CentOS-8 - Base                                     789 kB/s | 5.0 MB     00:06    

CentOS-8 - Extras                                   1.9 kB/s | 2.1 kB     00:01    

CentOS-server                                       0.0  B/s |   0  B     00:00    

为 repo 'CentOS7' 下载元数据失败

错误:为 repo 'CentOS7' 下载元数据失败

注:失败很正常。因为你在centos8下操作,换成centos7下就可以了。

[root@xuegod63 yum.repos.d]# mv centos7.repo /opt/  #将centos7.repo移到/opt目录下

阿里源地址:

https://developer.aliyun.com/mirror/centos

epel镜像-epel下载地址-epel安装教程-阿里巴巴开源镜像站

扩展: epel是(Extra Packages for Enterprise Linux)的缩写,是额外的扩展包。

网易源地址:

Index of /centos/

清华源地址:

Index of /centos/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

比如下面的yum源,baseurl可以替换成网络源

yum -y remove httpd*

yum -y install httpd

[iloveyou]

name=ihateyou

baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64

enable=1

gpgcheck=0

实战2:在centos8上,基于光盘镜像创建一个本地yum源。

在CentOS8光盘镜像中把yum软件源分成了两部分

一个是BaseOS

一个是AppStream

BaseOS 存储库 - BaseOS 存储库以 RPM 格式提供操作系统核心功能的软件

AppStream 存储库 - Application Stream 存储库以RPM格式提供用户空间中运行的软件。

在centos7的光盘镜像,rpm软件安装包都是放在/mnt/Packages/下

在centos8的光盘镜像,rpm软件安装包分别放在/mnt/BaseOS/Packages/和/mnt/AppStream/Packages/下

repodata目录下的文件记录了Packages下RPM软件安装包的相互依赖关系

配置方法和yum一样

[root@xuegod63 yum.repos.d]# cd  /etc/yum.repos.d/

[root@xuegod63 yum.repos.d]# vim centos8.repo   #插入以下内容

[c8-BaseOS]

name=CentOS-BaseOS

baseurl=file:///mnt/BaseOS

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[c8-AppStream]

name=CentOS-AppStream

baseurl=file:///mnt/AppStream

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[root@xuegod63 yum.repos.d]# rm -rf centos7.repo

[root@xuegod63 yum.repos.d]# yum clean all

[root@xuegod63 yum.repos.d]# yum makecache

[root@xuegod63 yum.repos.d]# yum -y install httpd

安装一个httpd服务器,如果你之前用网络源安装过httpd服务,需要先 yum -y remove httpd

卸载服务,然后用本地源安装,但是你用网络源安装的httpd服务的依赖库可能比本地光盘镜像源的版本高,所以有可能导致本地光盘源安装httpd服务失败,继续使用网络源则不会出现此问题。

[root@xuegod63 yum.repos.d]# yum install lrzsz   #安装一个lrzsz包

确认本地yum源配置可用。

[root@xuegod63 yum.repos.d]# mv /opt/* /etc/yum.repos.d/  #将之前文件移走的源,移回来。后期我们还是使用光盘yum源比较方便。

新安装centos7后,yum运行出现下面的错误:

解决办法:rm -rf /var/run/yum.pid

5.6  创建可用实验快照

今天的虚拟机是真正可以使用的环境,为了保证后期误操作可能导致不可用的情况,所以要做一个快照,方便到时直接恢复到当前可用情况。

具体步骤如下:

虚拟机----》快照----》拍摄快照----》自定义快照名如“可用实验快照”

总结:

  5.1  Linux网络相关概念和修改IP地址的方法

  5.2  关闭防火墙并设置开机开不启动

  5.3  临时和永久关闭Selinux

  5.4  设置系统光盘开机自动挂载

  5.5  配置本地YUM源

  5.6  创建可用实验快照

 更多学习资料以及视频资料请移步至公众号【学神来啦】

你可能感兴趣的:(linux学习课程从入门到精通:Linux基本操作和服务器硬件选购指南)