磁盘分区管理
在虚拟机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 /opt
1、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) 1
4、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-2
3、格式化逻辑卷
[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 -h
4、逻辑卷扩展
[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 sshd
ss 与 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.service
2、拒绝指定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.207
NTP 时间同步
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 都关闭