本人从事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<UP,BROADCAST,RUNNING,MULTICAST> 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<link>
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<UP,BROADCAST,RUNNING,MULTICAST> 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<link>
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<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.63 netmask 255.255.255.0 broadcast 192.168.1.255
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 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/ | 清华大学开源软件镜像站 | 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 创建可用实验快照
更多学习资料以及视频资料请移步至公众号【学神来啦】