Linux云计算集群架构师->第五章 Linux基本操作
(上课时间2021-06-17,笔记整理时间2021-06-21)
本节所讲内容: 5 .1 Linux 网络相关概念和修改 IP 地址的方法
5 .2 关闭防火墙并设置开机 不启动 5 .3 临时和永久关闭 S elinux
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@centos63 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.170.80.63 netmask 255.255.255.0 broadcast 10.170.80.255
inet6 fe80::b098:a90b:abe4:e76c prefixlen 64 scopeid 0x20<link>
inet6 fe80::5a5c:25bc:4bab:a452 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:fe:79:46 txqueuelen 1000 (Ethernet)
RX packets 313 bytes 33779 (32.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 293 bytes 46110 (45.0 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@centos63 ~]# ifconfig -a #-a 参数,查看所有网卡信息,包括没有启动的网卡信息
5.1.3 临时修改
一般只适合在调试网络的过程中使用,重启网络服务或重启网卡或重启系统,所做的修改将会失效
方法 1:临时修改网卡 IP 地址
ifconfig 网卡名称 IP 地址 ---直接修改网卡的 IP 地址,重启网络服务,IP 配置会失效[root@centos63 ~]# ifconfig ens33 10.170.80.100 netmask 255.255.255.0
说明:修改后当前 xshell 终端会终断,而这个 ip 也无法链接,因为这个 ip 没有路由信息[root@centos63 ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.170.80.100 netmask 255.255.255.0 broadcast 10.170.80.255
inet6 fe80::b098:a90b:abe4:e76c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:fe:79:46 txqueuelen 1000 (Ethernet)
RX packets 696 bytes 83899 (81.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 506 bytes 79772 (77.9 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@centos63 ~]# ifconfig ens33:0 10.170.80.101 netmask 255.255.255.0
[root@centos63 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.170.80.63 netmask 255.255.255.0 broadcast 10.170.80.255
inet6 fe80::b098:a90b:abe4:e76c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:fe:79:46 txqueuelen 1000 (Ethernet)
RX packets 846 bytes 96237 (93.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 599 bytes 89953 (87.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.170.80.101 netmask 255.255.255.0 broadcast 10.170.80.255
ether 00:0c:29:fe:79:46 txqueuelen 1000 (Ethernet)
[root@centos63 ~]# ip a #查看 IP 地址
[root@centos63 ~]# ip addr show #查看 IP 地址
[root@centos63 ~]# ip addr delete 10.170.80.101 dev ens33:0 #删除临时 IP
[root@centos63 ~]# ip a d 10.170.80.101 dev ens33:0 #简写删除临时 IP
5.1.4 NeworkManager 概述
NeworkManager 服务是管理和监控网络设置的守护进程,CENTOS7 更加注重使用NetworkManager 服务来实现网络的配置和管理,7.0 以前是通过 network 服务管理网络,以后的版本,所有网络管理和设置统一由 NetworkManager 服务来维护。它是一个动态的,事件驱动的网络管理服务。[root@centos63 ~]# systemctl status network #查看 NetworkManager 服务是否启动
在 centos7 中重启网络服务可以使用 systemctl restart network,网卡配置文件会生效在 centos8 中没有 network 服务,使用 systemctl restart NetworkManager 不会使网卡配置文件生效,可以用 ifdown ens160 && ifup ens160 来让网卡配置文件生效。
5.1.5 RHEL/CENTOS Linux 网络相关的配置文件
RHEL/CENTOS 网络相关的配置文件路径为:[root@centos63 ~]# ls /etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts/ifcfg-ens33 # IP 地址,子网掩码等配置文件
[root@centos63 ~]# ls /etc/sysconfig/network-scripts/ifcfg-io
/etc/sysconfig/network-scripts/ifcfg-io #网卡回环地址。CentOS8 中不存在这个文件。
[root@centos63 ~]# cat /etc/resolv.conf #查看本机 DNS 的地址
# Generated by NetworkManager
nameserver 202.100.96.68
[root@centos63 ~]# vim /etc/hosts #设置主机和 IP 绑定信息
修改主机名:[root@centos63 ~]# hostnamectl set-hostname xuegod63.cn #使用此命令永久修改主机名 ,或者也可以直接编辑/etc/hostname 的内容
[root@centos63 ~]# hostnamectl set-hostname xuegod63.cn
[root@centos63 ~]# cat /etc/hostname
xuegod63.cn
[root@centos63 ~]# hostname
xuegod63.cn
[root@centos63 ~]# hostname abcd.com #临时修改主机名
[root@centos63 ~]# hostname
abcd.com
注:当前修改完主机名后,当前已经连接终端的 bash 提示符中的主机名,不会改变,需要重新登录一下,再可以生效。
5.1.6 永久修改网卡地址:
查看 网卡配置文件:[root@centos63 ~]# 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=1f89b9f2-cbe4-47d9-b678-caa04547e990 #UUID 每个网上设备都不一样
DEVICE=ens33 #设备名,通常和网卡名一样
ONBOOT=yes #开机启动网卡,必须为 yes,此网卡才可以使用
IPV6_PRIVACY=no
IPADDR=10.170.80.63 #IP 地址
PREFIX=24 # PREFIX=子网掩码,24 表示 255.255.255.0
GATEWAY=10.170.80.1 #默认网关信息
DNS1=202.100.96.68 #DNS1
参数说明:
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 地址为 10.170.80.66[root@centos63 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
改:IPADDR=10.170.80.63
为:IPADDR=10.170.80.66
情况 1:在 centos7/6 系统上 ,重启网络服务 ,让配置文件生效[root@centos63 ~]# service network restart #centos6/7 网卡重启方法
[root@centos63 ~]# systemctl restart network #在 CentOS7 的网卡重启方法,centos8 不适用
情况 2:在 centos8 系统上[root@centos63 ~]# systemctl restart network #重新加载网卡相关配置文件
[root@centos63 ~]# nmcli connection reload #重新加载网卡相关配置文件
[root@centos63 ~]# nmcli c reload
[root@centos63 ~]# nmcli connection down ens33 && nmcli connection up ens33 #重启网卡,让配置生效
或使用
[root@centos63 ~]# ifdown ens33 && ifup ens33 #禁用网卡ens33 然后启动网卡ens33
注:在 CentOS8 版本当中 network 彻底停止使用,不能通过重启 network 的方式重启所有网卡。
5.2 关闭防火墙并设置开机开不启动
[root@centos63 ~]# systemctl status firewalld.service #查看 firewalld 状态
[root@centos63 ~]# systemctl start firewalld.service #开启
[root@centos63 ~]# systemctl stop firewalld.service #关闭
[root@centos63 ~]# systemctl enable firewalld.service #设置开机自动启动
[root@centos63 ~]# systemctl disable firewalld.service #设置开机不启动
[root@centos63 ~]# systemctl is-enabled firewalld.service #查看开机是否启动
了解下以下命令:[root@centos63 ~]# systemctl #列出当前已启动 unit(单元),按 q 或 ctrl+c 退出
[root@centos63 ~]# systemctl list-units #列出当前已启动 unit(单元),按 q 退出
[root@centos63 ~]# systemctl list-units -all #列出全部 unit(单元)
[root@centos63 ~]# systemctl list-units --type service #列出类型为.service(服务)的已经启动 unit(单元)。
[root@centos63 ~]# systemctl list-unit-files #列出全部 unit 及相关文件
[root@centos63 ~]# systemctl list-unit-files --type service | grep enabled #查看开机启的服务
[root@centos63 ~]# systemctl is-enabled sshd #查看 ssh 服务是否开机启动
5.3 临时和永久关闭 Selinux
[root@centos63 ~]# getenforce #查看Selinux状态
[root@centos63 ~]# getenforce 0 #临时关闭Selinux
setenforce: SELinux is disabled
[root@centos63 ~]# vim /etc/selinux/config #前面的 7,表示文档中第 7 行,方便你查找
改:7 SELINUX=enforcing
为:7 SELINUX=disabled
[root@centos63 ~]# reboot #必须重启系统,才可以真正的关闭 selinuxSELinux 模式
enforcing 强制模式,只要 selinux 不允许,就无法执行;
permissive 警告模式,你可以执行,但你所做事件全部记录;
disabled 关闭 selinux
扩展内容(了解即可):SELinux
SELinux( Security Enhanced Linux 安全性增强的 Linux),由美国国家安全局 NSA(NationalSecurity Agency)开发,构建与 Kernel 之上,拥有灵活的强制性访问控制结构,主要用在提高Linux 的安全性,提供强健的安全保证,可以防御未知***。
SELinux 是用于确定哪个进程可以访问哪些文件、目录和端口的一组安全规则。每个文件、进程、目录和端口都具有专门的安全标签,称为 SELinux 上下文。
SELinux 标签具有多种上下文:User 用户、Role 角色、Type 类型和 Level 敏感度级别。目标策略会根据第三个上下文(即 Type 类型上下文)来制定自己的规则,通常以_t 结尾
[root@centos63 ~]# ls -Z
-rw-r--r-- root root ? 10.170
-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
-rw-r--r--. root root system_u:object_r:admin_home_t:s0 initial-setup-ks.cfg
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 公共
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 模板
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 视频
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 图片
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 文档
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 下载
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 音乐
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 桌面
用户 角色 类型 级别
传统的 Linux 在没有 Selinux 保护的时候,倘若运行于之上的服务器被骇客攻陷,其服务器最高权限就可能随之丧失,但是倘若有了 SElinux 的保护,***的也只有服务本身,整个服务器的最高权限依然还健在!
一句话熟悉 Selinux 的作用:增强 Linux 系统安全性,一个例子:那么是我运行的 Apache 服务器被*,也只是***到了我 httpd 这个服务,可以把它禁锢到这里(相当于整个服务器运行了httpd,* 了 httpd 而已),而系统的整个权限依然正常!
5.4 设置系统光盘开机自动挂载
[root@centos63 ~]# vim /etc/fstab #在文档最后,添加以一下红色内容:
/dev/cdrom /mnt iso9660 defaults 0 0
[root@centos63 ~]# mount -a #将/etc/fstab的所有内容重新加载
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos63 ~]# ls /mnt/ #可以查看到此目录下有内容,说明挂载成功
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
说明 第一列 Device
磁盘设备文件或者该设备的 Label 或者 UUID
第二列 Mount point
设备的挂载点,就是你要挂载到哪个目录下
第三列 filesystem
磁盘文件系统的格式,包括 ext2、ext3、reiserfs、nfs、vfat 等
第四列 parameters
文件系统的参数
| Async/sync | 设置是否为同步方式支行,默认为async |
| ----------- | ---------------------------------------------------------- |
| auto/noauto | 当下载mount -a的命令时,此文件系统是否被主动挂载默认为auto |
| rw/ro | 是否以只读或者读写模式挂载 |
| exec/noexec | 限制些文件系统内是否能够进行“执行”的操作 |
| user/nouser | 是否允许用户使用mount命令挂载 |
| suid/nosuid | 是否请允SUID的存在 |
| Usrquota | 启动文件系统支持硬盘配额模式 |
| Grpquota | 启动文件系统对群组硬盘配额模式的支持 |
| Defaults | 同时具有rw,suid,dev,exec,auto,nouser,saync等默认参数的设置 |
第五列:能否被 dump 备份命令作用
dump 是一个用来作为备份的命令。通常这个参数的值为 0 或者 1
| 0 | 代表不要做dump备份 |
| ---- | -------------------------- |
| 1 | 代表每天进行dump的操作 |
| 2 | 代表不定日期的进行dump操作 |
第六列 是否检验扇区
开机的过程中,系统默认会以 fsck 检验我们系统是否为完整(clean)。
| 0 | 不要检验 |
| ---- | ---------------------------- |
| 1 | 最早检验(一般根目录会选择) |
| 2 | 1级别检验完成之后进行检验 |
5.5 配置本地 YUM 源
yum 的一切配置信息都储存在一个叫 xxx.repo 的配置文件中,这些.repo 文件,通常位于/etc/yum.repos.d 目录下什么是 repo 文件。
repo 文件是 yum 源(软件仓库)的配置文件,通常一个 repo 文件定义了一个或者多个软件仓库的详细信息,例如我们将从哪里下载、安装、升级软件包,repo 文件中的设置将被 yum 读取和应用。
查看原有的文件[root@centos63 ~]# cd /etc/yum.repos.d/
[root@centos63 yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo docker-ce.repo
实战 1:在 centos7 上,基于光盘镜像创建一个本地 yum 源。创建一个新的 yum 源配置文件,yum 源配置文件的结尾必须是.repo。 centos8 和 centos7 配置 yum 源不一样。[root@centos63 yum.repos.d]# mv /etc/yum.repos.d/* /opt # 先移走自带的 yum 配置文件,方便查看本地源的效果
在 centos7 做法如下:[root@centos63 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.100/pub -------> ftp://192.168.1.100/pub 这是基于 FTP 服务器提供的 yum 源
enabled=1 ------>启用
gpgcheck=0 ---->0 取消密钥验证。如果为 1,表示启动密钥验证
gpgkey ------> 指定密钥的位置,比如阿里源密钥的位置如下
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
清空并生成缓存列表[root@centos63 yum.repos.d]# yum clean all #清空 yum 缓存
[root@centos63 yum.repos.d]# yum makecache #生成缓存列表
[root@centos63 yum.repos.d]# yum list #查看仓库中的软件包列表,同时生成缓存列表
配置阿里源地址[root@centos63 yum.repos.d]# mv centos7.repo /opt/ #将 centos7.repo 移到/opt 目录下
阿里源地址(目前升级中2021-06-21):
https://developer.aliyun.com/mirror/centos
https://developer.aliyun.com/mirror/epel
扩展: epel 是(Extra Packages for Enterprise Linux) 的缩写,是额外的扩展包。
网易源地址:
http://mirrors.163.com/centos/
清华源地址:
https://mirror.tuna.tsinghua.edu.cn/centos/
比如下面的 yum 源,baseurl 可以替换成清华大学网络源[root@centos63 yum.repos.d]# vim CentOS7.repo
[qinghua]
name=qinghuadaxue
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/
enable=1
gpgcheck=0
[root@centos63 yum.repos.d]# yum list
实战 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@centos63 yum.repos.d]# cd /etc/yum.repos.d/
[root@centos63 yum.repos.d]# vim Centos8.repo #插入以下内容
[CentOS8-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@centos63 yum.repos.d]# rm -rf centos7.repo #删除 repo 源文件
[root@centos63 yum.repos.d]# yum clean all #清除 yum 缓存
[root@centos63 yum.repos.d]# yum makecache #生成 yum 缓存
[root@centos63 yum.repos.d]# yum -y install httpd #安装 httpd 服务
[root@centos63 yum.repos.d]# yum install lrzsz #安装一个 lrzsz 包
安装一个 httpd 服务器,如果你之前用网络源安装过 httpd 服务,需要先 yum -y remove httpd卸载服务,然后用本地源安装,但是你用网络源安装的 httpd 服务的依赖库可能比本地光盘镜像源的版本高,所以有可能导致本地光盘源安装 httpd 服务失败,继续使用网络源则不会出现此问题。
5.6 创建可用实验快照
今天的虚拟机是真正可以使用的环境,为了保证后期误操作可能导致不可用的情况,所以要做一个快照,方便到时直接恢复到当前可用情况。
具体步骤如下:
虚拟机----》快照----》拍摄快照----》自定义快照名如“可用实验快照”
总结: 5.1 Linux 网络相关概念和修改 IP 地址的方法
5.2 关闭防火墙并设置开机开不启动
5.3 临时和永久关闭 Selinux
5.4 设置系统光盘开机自动挂载
5.5 配置本地 YUM 源
5.6 创建可用实验快照