磁盘分区管理
在虚拟机B上添加一个新的磁盘 内存是10G
#设备名 主设备号和次设备号 RM为0是可删除1不可删除 可删除的比如USB驱动器 不可删除的就是硬盘 SIZE大小 TYPE块设备的类型 mountpoint 设备挂载文件的位置
[root@b ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
sr0              11:0    1  4.4G  0 rom  /opt1、MBR分区
- MBR分区 - 最多支持四个主分区或者3个主分区和一个扩展分区、扩展分区可包含逻辑分区
- MBR分区最多支持2TB的分区大小
 
- GPT分区: - 最多支持128个主分区,最大支持18EB磁盘
 
| 属性 | 说明 | 
|---|---|
| l | 查看分区表 | 
| m | 列出指令帮助 | 
| p | 查看现有的分区表 | 
| n | 新建分区 | 
| d | 删除分区 | 
| q | 放弃更改并退出 | 
| w | 保存更改并退出 | 
#查看磁盘分区表的信息
[root@b ~]# fdisk -l /dev/sdb 
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O大小(最小/最佳):512 字节 / 512 字节
[root@b ~]# fdisk /dev/sdb 
#输入n新建分区
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
   
#p是主分区 e是扩展分区   
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
#给主分区1添加2G内存
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB
#查看现有的分区 sdb1
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x704ffd0a
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
#输入w 保存
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
#此时会在sdb下多出一个分区是2G的
[root@b ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
└─sdb1            8:17   0    2G  0 part 
sr0              11:0    1  4.4G  0 rom  /opt
[root@b ~]# 
2、MBR格式化分区
- ext4文件系统
- NTFS文件系统
- FAT32文件系统
#格式化为ext4文件系统
[root@b ~]# mkfs.ext4 /dev/sdb1
#格式化为NTFS文件系统
[root@b ~]# mkfs.ntfs /dev/sdb1
#格式化为FAT32文件系统
[root@b ~]# mkfs.fat -F32 /dev/sdb1
#格式化完成后查看sbd1设备相关信息
[root@b ~]# blkid  /dev/sdb1 
/dev/sdb1: UUID="72f99f00-4404-4d15-aecf-07cac867f6a2" TYPE="ext4" 3、GPT分区
删除之前用MBR的两个主分区 现在用GPT分区进行实验
#sdb用gpt分区
[root@b /]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
sr0              11:0    1  4.4G  0 rom  /opt
#gpt分区
[root@b /]# parted /dev/sdb 
(parted) mkpart  #划分新的分区
分区类型?  primary/主分区/extended/扩展分区? p      #p是主分区 e是扩展分区                   
文件系统类型?  [ext2]? ext4                       #分区的文件系统类型                       
起始点? 0                                                                
结束点? 2G                                       #分配的空间                         
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? Ingore                  #选择忽略,给分区表空间                                                               
(parted) unit GB                               #显示利用 GB 作为单位
(parted) print                                 #查看分区表信息                        
Number  Start   End     Size    Type     File system     标志
 1      0.00GB  2.00GB  2.00GB  primary  linux-swap(v1)
 
 
(parted) mkpart                                                           
分区类型?  primary/主分区/extended/扩展分区? p                           
文件系统类型?  [ext2]? ext4                                              
起始点? 2G                                                                                  
结束点? 4G                                   #上一个分区的结束,下一个分区的开始                                  
(parted) print
Number  Start   End     Size    Type     File system     标志
 1      0.00GB  2.00GB  2.00GB  primary  linux-swap(v1)
 2      2.00GB  4.00GB  2.00GB  primary
(parted) quit                        #直接退出即可,默认保存
#查看设备信息 目前sdb已经成功分类了2个2G的主分区
[root@b /]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
├─sdb1            8:17   0  1.9G  0 part 
└─sdb2            8:18   0  1.9G  0 part 
sr0              11:0    1  4.4G  0 rom  /opt
#删除分区 1是Number
(parted) rm 
(parted) 14、GPT交换分区
扩展系统内存:当物理内存不足时,交换分区可以扩展系统可用的内存空间。当操作系统发现物理内存不够用时,它会将暂时不活跃的内存页面转移到交换分区中,以便为新的进程或活跃的进程提供更多的内存空间。
#查看交换分区
[root@b /]# swapon -s
文件名                          类型            大小    已用    权限
/dev/dm-1                               partition       2097148 0       -2
#查看内存和交换空间的大小
[root@b /]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        486M        899M         12M        434M        1.1G
Swap:          2.0G          0B        2.0G
[root@b /]# 
#格式化交换文件系统    
[root@b /]# mkswap /dev/sdb1
[root@b /]# mkswap /dev/sdb2
#查看设备的文件系统
[root@b /]# blkid /dev/sdb1
[root@b /]# blkid /dev/sdb2
#启用交换分区
[root@b ~]# swapon /dev/sdc1
[root@b ~]# swapon /dev/sdc2
#关闭交换分区
[root@b ~]# swapoff /dev/sdc1
[root@b ~]# swapon /dev/sdc1
#查看交换分区
[root@b /]# swapon -s
文件名                          类型            大小    已用    权限
/dev/dm-1                               partition       2097148 0       -2
/dev/sdb1                               partition       1953120 0       -3
/dev/sdb2                               partition       1952764 0       -4
#开机自动启用交换分区
[root@b ~]# vim /etc/fstab
/dev/sdb1 swap swap defaults 0 0
/dev/sdb2 swap swap defaults 0 0逻辑卷
作用:可以整合分散磁盘空间,逻辑卷的空间可以扩大
制作过程:将众多的物理卷(pv)组建成卷组(vg)再从卷组中划分逻辑卷(lv)
物理卷:多个分区或者一个分区要组成的卷组就是物理卷 需要组成卷组的话 物理卷不可以有使用痕迹(好几个分区要组成卷组 那几个分区就是物理卷了)
实验环境:虚拟机B添加80个G的硬盘 用fdisk划分 3 个 10G 主分区,一个扩展分区,2 个 10G 逻辑分区

| 功能 | 物理卷 | 卷组 | 逻辑卷 | 
|---|---|---|---|
| 扫描 | pvscan | vgscan | lvscan | 
| 创建 | pvcreate | vgcreate | lvcreate | 
| 显示 | pvdisplay | vgdisplay | lvdisplay | 
| 删除 | pvremove | vgremove | lvremove | 
| 扩展 | / | vgextend | lvextend | 
1、创建卷组
#创建卷组
#命令格式:vgcreate 卷组名 设备路径
[root@b ~]# vgcreate systemvg /dev/sdb1 /dev/sdb2
[root@b ~]# pvs   #查看物理卷信息
[root@b ~]# vgs   #查看卷组信息
[root@b ~]# lvs   #查看逻辑卷信息2、创建逻辑卷
#创建逻辑卷
#格式:lvcreate -L 逻辑卷的大小 -n 逻辑卷的名字 卷组名
[root@b ~]# lvcreate -L 16G -n vo systemvg 
[root@b ~]# lvs   #查看逻辑卷信息
#可以直接查看,是一个快捷方式
[root@b ~]# ls -l /dev/systemvg/vo
lrwxrwxrwx. 1 root root 7 11月  2 21:24 /dev/systemvg/vo -> ../dm-23、格式化逻辑卷
[root@b ~]# mkfs.ext4 /dev/systemvg/vo
#逻辑卷的文件类型
[root@b /]# blkid /dev/systemvg/vo
#设置开机自启
[root@b ~]# vim /etc/fstab 
/dev/systemvg/vo /mylv ext4 defaults 0 0
[root@b ~]# mkdir /mylv
#验证是否挂载成功
[root@b ~]# mount -a
#查看所有文件系统所使用的容量
[root@b ~]# df -h4、逻辑卷扩展
[root@localhost ~]# lvextend -L 18G /dev/systemvg/vo #扩展到 18 个 G
[root@localhost ~]# lvs
  root centos   -wi-ao---- <17.00g                                                    
  swap centos   -wi-ao----   2.00g                                                    
  vo   systemvg -wi-ao----  18.00g  
[root@b /]# df -h /mylv/
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/systemvg-vo   16G   45M   15G    1% /mylv
#扩展完成之后会发现文件系统还是之前的16G 因为逻辑卷是逻辑卷的大小 文件系统是文件系统的大小 含义不同所以需要刷新下文件系统
[root@b /]# resize2fs /dev/systemvg/vo 
[root@b /]# df -h /mylv/
[root@localhost ~]# lvs
#刷新完成再去观察 发现一切都已恢复原来的样子5、卷组扩展
如果卷组没有足够的剩余空间 先扩展卷组需要用到剩余的物理卷 在扩展逻辑卷在刷新文件系统就OK了
#之前的卷组是sdb1和sdb2  3、5、6是没有用上的
#扩展卷组的空间
[root@b ~]# vgextend systemvg /dev/sdb3 /dev/sdb5 /dev/sdb6
[root@b ~]# vgs
#扩展逻辑卷的空间
[root@localhost ~]# lvextend -L 25G /dev/systemvg/vo
[root@localhost ~]# lvs
#再刷新一下文件系统
[root@localhost ~]# resize2fs /dev/systemvg/vo
[root@localhost ~]# df -h
#resize2fs :刷新 ext4 文件系统
#xfs_growfs :刷新 xfs 文件系统6、卸载逻辑卷
#先取消挂载
[root@b /]# umount /mylv 
#删除开机自启的挂载配置
[root@b /]# vim /etc/fstab 
#删除逻辑卷
[root@b /]# lvremove /dev/systemvg/vo 
#删除卷组
[root@b /]# vgremove systemvg 
#删除磁盘分区
[root@b /]# fdisk /dev/sdb 
d
#查看所有的设备 实验结束
[root@b /]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   80G  0 disk 
sr0              11:0    1  4.4G  0 rom  /opt总结
- 逻辑卷制作流程:需要将物理磁盘分区转换为物理卷 在从物理卷升级为卷组 在从卷组扩展成逻辑卷
- 逻辑卷优点:逻辑卷可以动态调整大小,不需要重新分区或格式化磁盘,可以更灵活地分配存储空间。
- 逻辑卷扩展思路:如果逻辑卷没有扩展空间将会去找卷组扩展空间 如果卷组没有空间则会去找物理卷扩展 扩展完成后还需要刷新一下文件系统

Yum源配置
1、创建挂载点和目录
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# df /mnt/cdrom
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 17811456 4224704 13586752   24% /
2、挂载光盘
[root@localhost ~]# mount /dev/cdrom /opt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# 3、更改配置文件
#进入/etc/yum.repos.d/
cd /etc/yum.repos.d/
#删除yum.repos.d/下的所有文件
rm -rf /etc/yum.repos.d/*
#新建一个配置文件
vim yum.repo
#编辑文件
[yum]
name=yum  #仓库名称
baseurl=file:///opt #挂载路径
gpgcheck=0        #用来检查GPG-KEY,0为不检查,1为检查
enabled=1        #是否用该yum源,0为禁用,1为使用4、设置开机自动挂载
挂载文件的配置在 /etc/fstab
#iso9660固定的光驱文件系统
[root@b yum.repos.d]# blkid /dev/cdrom
/dev/cdrom: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
#编辑配置文件
[root@b yum.repos.d]# vim /etc/fstab
#在下面添加如下就会设置为开机自动挂载
/dev/cdrom /opt iso9660 defaults 0 0 5、清除yum缓存
[root@localhost yum.repos.d]# yum clean all 
[root@localhost yum.repos.d]# yum list
#出现已安装的软件包时,说明已经成功了SSH远程管理
- 实验环境:VMware隔离模式、真机防火墙(可开可关)关闭的话三个ip都可以ping通、服务端安装好 ssh 服务, openssh-server - Vmnet1ip:192.168.4.251
- 虚拟机A ip:192.168.4.7
- 虚拟机B ip:192.168.4.207
 
- ssh配置文件:/etc/ssh/sshd_config
1、密码登录
#虚拟机A连接虚拟机B ssh root@ip地址
#提示需要密码
[root@a ~]# ssh root@192.168.4.207
[root@b ~]# 2、无密码登录
#虚拟机B生成公钥和私钥
[root@b ~]# ssh-keygen
#生成的秘钥都在/root/.ssh/下存放
[root@b ~]# ls /root/.ssh/
#将本机的公钥复制给虚拟机A
[root@b ~]# ssh-copy-id  root@192.168.4.7
#此时就可以免密码登录了
[root@b ~]# ssh root@192.168.4.7
#拷贝虚拟机A /etc/shells 拷贝到本机下的/opt/下
[root@b ~]# scp root@192.168.4.7:/etc/shells  /opt/SSH端口
SSH默认端口是22
1、修改SSH端口
#虚拟机B将ssh的端口修改为8022
[root@b ~]# vim /etc/ssh/sshd_config 
#重启sshd服务-会报错
[root@b ~]# systemctl restart sshd
#修改selinux防火墙
#停止防火墙服务
[root@b ~]# systemctl stop firewalld.service 
#关闭开机自启
[root@b ~]# systemctl disable firewalld.service 
#关闭Selinux
[root@b ~]# setenforce 0
#Selinux配置为permissive
#SELINUX=permissive
[root@b ~]# vim /etc/selinux/config 
#重新启动ssh远程服务
[root@b ~]# systemctl restart sshdss 与 netstat
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
-a 显示所有端口的信息
-n 以数字格式显示端口号
-t 显示 TCP 连接的端口
-u 显示 UDP 连接的端口
-l 显示服务正在监听的端口信息
-p 显示监听端口的服务名称是什么(也就是程序名称)
#查看tcp和udp的所有连接信息
[root@svr7 ~]# netstat -anptu 
[root@svr7 ~]# ss -anptu
#查看端口22也就是ssh活动的连接信息
[root@svr7 ~]# netstat -anptu |grep :22
[root@svr7 ~]# ss -anptu |grep :22追踪路由traceroute
可以知道从本机到达目标所经过的路由器有哪些
[root@a /]# traceroute blogdx.com防火墙
linux中的防火墙的作用就是隔离,进行过滤所有入站请求
- public:仅允许访问本机的 sshd、ping、dhcp 服务
- trusted:允许任何访问
- block:阻塞任何来访请求(明确拒绝,有回应客户端)
- drop:丢弃任何来访的数据包(直接丢弃,没有回应客户端),节省服务器资源
#虚拟机A 查看防火墙的默认区域
[root@a /]# systemctl restart firewalld.service 
[root@a /]# firewall-cmd --get-default-zone 
public#虚拟机B
[root@b ~]# ping 192.168.4.7 #可以通信
[root@b ~]# curl 192.168.4.7 #拒绝访问
[root@b ~]# curl ftp://192.168.4.7 #拒绝访问#虚拟机A 修改默认区域 允许任何访问
[root@a /]# firewall-cmd --set-default-zone=trusted #虚拟机B 测试
[root@b ~]# curl ftp://192.168.4.7 #可以访问
[root@b ~]# ping 192.168.4.7 #可以通信#虚拟机A 修改默认区域为阻塞任何来访请求
[root@a /]# firewall-cmd --set-default-zone=block 
#查看默认区域
[root@a /]# firewall-cmd --get-default-zone 
block#虚拟机B 测试
[root@b ~]# ping 192.168.4.7 #不可以通信,没有回应1、防火墙的策略
| 属性 | 端口 | 
|---|---|
| http:超文本传输协议 | 80 | 
| https:安全的超文本传输协议 | 443 | 
| ftp:文件传输协议 | 21 | 
| tftp:简单文件传输协议 | 69 | 
| DNS:域名解析协议 | 53 | 
| telnet:远程管理协议 | 23 | 
| smtp:邮件协议(发邮件) | 25 | 
| pop3:邮件协议(收邮件) | 110 | 
| snmp:简单的网络管理协议 | 161 | 
#虚拟机A 查看防火墙区域
[root@a ~]# firewall-cmd --get-default-zone
public
#查看区域策略
[root@a /]# firewall-cmd --zone=public  --list-all 
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  # 下面是放行的的协议
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: #虚拟机B 测试访问http 访问失败
[root@b ~]# curl 192.168.4.7 虚拟机A设置放行http和ftp协议
#虚拟机A
[root@a /]# firewall-cmd --zone=public --add-service=http --add-service=ftp
success
#虚拟机B 测试访问
#此时就会访问成功
[root@b ~]# curl 192.168.4.7 如果重启防火墙服务器则会导致之前配置的全部变成默认的状态 配置永久放行如下
#虚拟机A 添加放行规则
[root@a ~]# firewall-cmd --permanent --zone=public --add-service=http
[root@a ~]# firewall-cmd --permanent --zone=public --add-service=ftp
#这个是重新加载防火墙
[root@a ~]# firewall-cmd --reload 
[root@a ~]# firewall-cmd --zone=public --list-all
#永久删除放行规则
[root@a /]# firewall-cmd --permanent --zone=public --remove-service=http --remove-service=ftp 
success
[root@a /]# firewall-cmd --reload 
success
#此时重启防火墙服务就会消失了
[root@a /]# systemctl restart firewall.service2、拒绝指定ip访问指定服务
假设有一个虚拟机B重复请求访问虚拟机A好几次 那就有必要拒绝他的请求 但是他的ip还要正常访问 可使用如下
#虚拟机A添加规则
[root@a ~]# firewall-cmd --zone=block --add-source=192.168.4.207
#删除规则
[root@a ~]# firewall-cmd --zone=block --remove-source=192.168.4.207NTP 时间同步
NTP 时间同步就是通过网络协议实现计算机系统时间与标准时间的同步,确保计算机之间的时间一致性,以满足各种应用程序和系统对于时间准确性的需求。
实验环境 虚拟机A和虚拟机B都需要安装chrony包
[root@a ~]# yum -y install chrony
#查看配置文件目录
[root@a ~]# rpm -qc chrony
#编辑配置文件
#本次实验只需要同步虚拟机B就可以 直接把192.168.4.201添加进去就可以了
[root@a ~]# vim /etc/chrony.conf
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
allow 192.168.4.201
allow 0.0.0.0/0 #允许所有网段访问
local stratum 10 #设置 NTP 服务器的层数为 10 层
[root@a ~]# systemctl restart chronyd
[root@a ~]# systemctl enable chronyd虚拟机B也是需要安装chrony包
#在注释的下面添加指定的地址也就是虚拟机A
[root@b ~]# vim /etc/chrony.conf
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 192.168.4.7 iburst #指定时间同步地址 4.7
#重启服务
[root@b ~]# systemctl restart chronyd
[root@b ~]# systemctl enable chronyd
#出现*为成功
[root@b ~]# chronyc sources -v 
210 Number of sources = 1
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? 192.168.4.7                   0   7     0     -     +0ns[   +0ns] +/-    0ns
注:如果失败,请关闭防火墙,a 和 b 都关闭