Linux 系列
Linux 1: 云计算操作系统管理
Linux 2: 云计算网络应用管理
Cloud computing network application management | Linux
Linux 3: 数据库开发技术
Linux 2: Cloud computing network application management | Linux
- Linux 系列
- Linux 操作系统 2: 云计算网络应用管理
- 配置Linux网络
- 远程管理ssh
- 使用scp远程复制工具
- 常用的网络工具
- SELinux运行模式的切换
- 服务器架构
- 防火墙
- 互联网常见协议
- 部署网络 yum 源
- NPT(网络时间协议)时间同步
- Iscsi概述
- Web通信基本概念
- NFS共享概述
- autofs触发挂载
- 主/从DNS服务器
- 基础邮件服务
- 分离解析概述
- 缓存DNS概述
- 批量装机PXE
- PXE网络装机
- 练习 4.25
- 4.26 练习
- 4.27 练习
- 4.28 练习
- 4.29 练习
- 将虚拟机A,svr7,pc207开机,网络模式选为vmnet1
- 案例1:新建一台虚拟机,要求如下:
- 案例2(重复)(最小化装机): 配置网络参数,要求如下:
- 案例3:练习克隆
- 案例4(重复):复制,拷贝,移动要求如下:
- 案例5(重复):查找并处理文件
- 案例6(重复):查找并提取文件内容
- 案例7(重复): MBR分区模式规划分区
- 案例8(重复):构建 LVM 存储
- 案例9(重复):构建 LVM 存储(修改PE大小)
- 案例10(重复):扩展逻辑卷
- 案例11(重复):创建用户
- 案例12(重复):创建用户和组
- 案例13(重复):配置文件 /var/tmp/fstab 的权限
- 案例14(重复):创建一个归档
- 案例15(重复):配置一个cron任务
- 案例16(重复):设置别名
- 案例17:实现虚拟机B的Web服务
- 案例18:实现虚拟机A的防火墙配置
- 案例19:实现虚拟机A 的防火墙配置
- 案例20:实现虚拟机A的防火墙配置
- 5.7 练习
- 5.10
- 5.11 练习
- 5.12 练习
- 5.17 练习
- 5.18 练习
- 5.19 练习
- 5.20 练习
- 6.2 练习
Linux 操作系统 2: 云计算网络应用管理
配置Linux网络
配置静态主机名
配置文件/etc/hostname
固定保存的主机名,永久有效
echo "svr7.tedu.cn" > /etc/hostname
hostname svr7.tedu.cn
修改网卡命名规则
vim /etc/default/grub
.........
GRUB_CMDLINE_LINUX="..... quiet net.ifnames=0 biosdevname=0"
...........
grub2-mkconfig -o /boot/grub2/grub.cfg #使网卡命名规则生效
reboot
ifconfig | head -2 #重启之后查看网卡名是不是eth0
配置静态IP地址
nmcli connection show #查看网卡信息
nmcli connection delete ens33 #删除ens33网卡设备
nmcli connection show
nmcli connection delete 有线连接\ 1
nmcli connection show
nmcli connection add type ethernet ifname eth0 con-name eth0 #添加网卡设备eth0
nmcli connection show
#配置 eth0 的IP地址 (手动manual,自动auto) 为 192.168.4.10/24,网关为 192.168.4.254,开机后自动连接
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.10/24 ipv4.gateway 192.168.4.254 connection.autoconnect yes
nmcli connection up eth0 #激活网卡
ifconfig | head -2
route -n #查看网关
通过修改配置文件的方式修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static #自动获取是dhcp,手动配置是static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.4.25 #ip地址
PREFIX=24 #子网掩码
systemctl restart network #重启network网络服务
ifconfig | head -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.4.25 netmask 255.255.255.0 broadcast 192.168.4.255
为本机指定DNS服务器
配置文件 /etc/resolv.conf
关键记录:nameserver DNS服务器地址
vim /etc/resolv.conf
# Generated by NetworkManager
search tedu.cn
nameserver 8.8.8.8
echo "nameserver 9.9.9.9" > /etc/resolv.conf
远程管理ssh
SSH协议(Secure Shell)
为客户机提供安全的 Shell 环境
默认端口:TCP22
OpenSSH 服务
服务名称:sshd
主程序:/use/sbin/sshd、/usr/bin/ssh
配置主件:/etc/ssh/sshd_config
/etc/ssh/ssh_config
SSH的基本使用
ssh root@要远程主机的ip地址 #远程指定的主机
ssh root@要使用图形界面远程主机的ip地址 #使用图形界面远程指定的主机
firefox #测试图形界面状态下
使用scp远程复制工具
安全复制工具scp
scp -r 用户名@服务器:远程路径 本地路径 #将指定主机上的文件下载到本地
scp -r 本地路径 用户名@服务器:远程路径 #将本地的文件上上传至指定主机
scp -r root@192.168.4.207:/boot /opt/ #将远程主机.207的目录boot复制到本地opt目录下
scp -r /boot root@192.168.4.207:/opt/ #将本机的boot目录复制到远程主机.207主机的opt目录下
常用的网络工具
查看ip地址
ip address show
ip a s #简写
添加ip地址
ip address add 192.168.8.1/24 dev ens33
ip aa
指定下一跳
vim /etc/rc.d/rc.local #设置每次开机生效
ip address add 192.168.8.1/24 dev ens33
ip route add 10.0.0.0/24 via 192.168.8.100 dev ens33 #添加路由,via是下一跳
ip route del 10.0.0.0/24 #删除路由表
ip route show #查看路由表
查看对应的端口号
ss与netstat
选项列表:
-a:显示所有端口的信息
-n:以数字格式显示端口号
-t:显示TCP连接的端口
-u:显示UDP连接的端口
-l:显示服务正在监听的端口信息
-p:显示监听端口的服务名(程序名称)
netstat -anptu #查看端口的详细信息
ss -antpu #查看TCP端口号(相对全面)
netstat -anptu | grep :22 #筛选端口号为22的端口
ss -anptu | grep :22
ping命令
ping -c 测试包的个数n 目标ip地址 #ping包n次
Yum仓库特点
作为yum源需要准备的内容
大量的.rpm源需要准备的内容
针对这些软件包 repodata/ 仓库档案
repodata/:仓库档案数据
filelists.xml.gz 软件包的文件安装清单
primary.xml.gz 软件包的基本/主要信息
other.xml.gz 软件包的其他信息
repomd.xml
结束后台进程
kill oneko
源码编译安装的优势
主要优点
获得软件的最新版,及时修复bug
软件功能可按需选择/定制,有更多软件可供选择
源码包适用于各种平台
安装开发工具gcc、make
yum -y install gcc make #安装gcc、make包
rpm -q gcc #检查是否安装成功
rpm -q make
tar -xf /opt/tools/inotify-tools-3.13.tar.gz -C /opt/
cd /opt/inotify-tools-3.13/
./confgure --help
./confgure --help --prefix=/opt/haha #配置时指定安装位置
make #编译
make install #安装
ls /opt/haha/
ls /opt/haha/bin/
SELinux运行模式的切换
SELinux的运行模式
enforcing(强制模式)
permissive(宽松模式)
disabled(彻底禁用)
切换运行模式
临时切换:
getenforce #查看SELinux当前的运行状态
setenforce 1 #切换至强制模式 1
setenforce 0 #切换至宽松模式 0
永久改变SELinux的运行模式
固定配置:/etc/selinux/config 文件
vim /etc/selinux/config #永久改变SELinux的运行模式
SELINUX=disabled #彻底禁用SELinux
SELINUX=enabled #彻底禁用SELinux
reboot #重启查看状态
服务器架构
服务器:能够为其他服务器提供服务的更高级的电脑
机架式
塔式
机柜室
刀片式
Client/Server架构
由服务器提供资源或某种功能
客户机使用资源或功能
搭建web(http)服务
装包、起服务
-
安装httpd(Apache)软件包(服务器软件)
yum -y install httpd
-
重起httpd服务
systemctl start httpd
-
访问测试,书写一个页面文件
firefox http://192.168.4.10 vim /var/www/html/index.html #打开默认存放网页文件的路径进行编辑 <marquee><fount color=red><h1>I am king yum -y install elinks #命令行浏览器 elinks --dump http://192.168.4.10 curl http://192.168.4.10 #命令行浏览器
浏览页面
curl http://192.168.4.10 #命令行界面访问网站
elinks http://192.168.4.10 #命令行界面下的浏览器
elinks --dump http://192.168.4.10 #命令行界面直接浏览
搭建ftp服务
装包、起服务
-
安装vsftpd软件包
yum -y install vsftpd
-
启动vsftpd服务
systemctl start vsftpd #启动vsftpd服务 systemctl restart vsftpd #重起vsftpd服务
-
访问测试
firefox ftp://192.168.4.10 touch /var/ftp/a.txt ls /var/ftp
防火墙
Firewalld服务基础
系统服务:firewalld
管理工具:firewall-cmd、firewall-config
systemctl restart firewalld
firewall-config &
预设安全区域
根据所在的网络场所划分,预设保护规则集
public:仅允许访问本机的sshd等少数几个服务(sshd、ping、dhcp)
trusted:允许任何访问
block:阻塞任何来访请求
drop:丢弃任何来访的数据包
配置规则的位置
运行时(runtime)
永久(permanent)
#A机器
firewall-cmd --get-default-zone
#B机器
ping 192.168.4.10 可以ping通
curl http://192.168.4.10 #拒绝访问
curl ftp://192.168.4.10 #拒绝访问
#A机器
firewall-cmd --set-default-zone=trusted #修改防火墙默认区域为trusted
firewall-cmd --get-default-zone
#B机器测试
ping 192.168.4.10 #可以ping通
curl http://192.168.4.10 #可以访问
curl ftp://192.168.4.10 #可以访问
#A机器
firewall-cmd --set-default-zone=block #修改防火墙默认区域为block
firewall-cmd --get-default-zone
#B机器测试
ping 192.168.4.10 #不可以ping通,但是有回应
#A机器
firewall-cmd --set-default-zone=drop #修改防火墙默认区域为drop
firewall-cmd --get-default-zone
#B机器测试
ping 192.168.4.10 #不可以ping通,但是有回应
互联网常见协议
名称 | 协议类型 | 默认端口 |
---|---|---|
http | 超文本传输协议 | 80 |
https | 安全的超文本传输协议 | 443 |
ftp | 文件传输协议 | 21 |
tftp | 简单的文件传输协议 | 69 |
DNS | 域名解析协议 | 53 |
telent | 远程管理协议 | 23 |
smtp | 邮件协议(发送端口) | 25 |
pop3 | 邮件协议(接收端口) | 110 |
snmp | 简单的网络管理协议 | 161 |
添加服务(临时)
firewall-cmd --zone=public --add-service=http #启动http服务,设置允许http协议通过public区域(允许其他主机通过http访问)
firewall-cmd --zone=public --add-service=ftp #启动ftp服务,设置允许ftp协议通过public区域(允许其他主机通过ftp访问)
firewall-cmd --zone=public --list-all #查看区域策略(查看已启动的服务)
curl http://192.168.4.10 #在另一台主机上检测是否开启成功
curl ftp://192.168.4.10
添加服务(永久)
(永久设置允许ftp协议和http协议通过public区域(permanent:永久设置)开机自启)
firewall-cmd --permanent --zone=public --add-service=ftp #永久启动ftp服务
firewall-cmd --permanent --zone=public --add-service=http #永久启动http服务
firewall-cmd --reload #重新加载配置文件
firewall-cmd --permanent --zone=public --list-all #查看区域策略
netatat -anptu | grep :80 #过滤80端口
systemcli status httpd #查看http服务状态
systemcli enable httpd #设置http服务开机自启
curl ftp://192.168.4.10 #使用192.168.4.7主机检测,可以访问
curl http://192.168.4.10 #使用192.168.4.7主机检测,可以访问
服务的启动、重启、停止
systemcli enable httpd #设置http服务开机自启
systemcli disable httpd #设置http服务开机不自启
systemcli restart httpd #重启http服务
systemcli stop httpd #停止http服务
拒绝其他主机(指定ip,指定网络段)访问服务
firewall-cmd --zone=block --add-source=192.168.4.7 #拒绝192.168.4.7主机访问服务
curl ftp://192.168.4.10 #使用192.168.4.7主机检测,不可以访问
curl http://192.168.4.10 #使用192.168.4.7主机检测,不可以访问
恢复其他主机(移除列表中已指定ip,指定网络段)访问服务
firewall-cmd --zone=block --remove-source=192.168.4.7 #移除192.168.4.7主机,使其可以访问服务
curl ftp://192.168.4.10 #使用192.168.4.7主机检测,可以访问
curl http://192.168.4.10 #使用192.168.4.7主机检测,可以访问
部署网络 yum 源
服务端:利用 Web 服务或 FTP 服务共享光盘所有内容
利用 web(HTTP)服务共享
默认共享位置:/var/www/html/
服务端svr7操作
yum -y install httpd systemctl start httpd systemctl status httpd #查看服务运行状态 mkdir /var/www/html/dvd mount /dev/cdrom /var/www/html/dvd ls /var/www/html/dvd #查看是否有光盘内容 firefox http://192.168.4.7/dvd #访问测试
客户端pc207操作
vim /etc/yum.repos.d/dvd.repo [dvd] name=CentOS7.5 baseurl=http://192.168.4.7/dvd enabled=1 gpgcheck=0 yum clean all yum repolist yum -y install unzip
利用 FTP 服务共享
默认共享位置:/var/ftp
服务端svr7操作
rpm -q vsftpd systemctl start vsftpd systemctl status vsftpd #查看服务运行状态 mkdir /var/ftp/dvd mount /dev/cdrom /var/ftp/dvd firefox ftp://192.168.4.7/dvd #访问测试
客户端pc207操作
vim /etc/yum.repos.d/dvd.repo [dvd] name=CentOS7.5 baseurl=ftp://192.168.4.7/dvd enabled=1 gpgcheck=0 yum clean all yum repolist
NPT(网络时间协议)时间同步
Network Time Protocol(网络时间协议)
用来同步网络中各个计算机的时间的协议
210.72.145.39(国家授时中心服务器IP地址)
Stratum(分层设计)
Stratum层的总数限制在15层以内(包括15)
时间同步软件包
服务端(设置为时间同步服务器):
yum -y install chrony
rpm -qc chrony #查看配置文件(.conf结尾的文件)
vim /etc/chrony.conf
server 0.centos.pool.ntp.org iburst #网络标准时间服务器(快速同步)
allow 192.168.4.0/24 #允许同步时间的主机网络段
denv 192.168.4.1 #拒绝同步时间的主机网络段
local statum 10 #访问层数
systemctl restart chronyd #重启时间同步服务
setenforce 0
systemctl stop firewalld #关闭防火墙
客户端(同步服务器上的时间):
vim /etc/chrony.conf
server 192.168.4.7 iburst #指定要同步时间的服务器(192.168.4.7)
systemctl restart chronyd #重启时间同步服务
chronyc sources -v #验证时间是否同步成功
Iscsi概述
Internet SCSI,网际SCSI接口
一种基于C/S架构的虚拟磁盘技术
服务器提供磁盘空间,客户机连接并当成本地磁盘使用
Iscsi磁盘的构成
backstore,后端存储
对应到服务端提供实际存储空间的设备,需要起一个管理名称
target,磁盘组
是客户端的访问目标,作为一个框架,由多个lun组成
lun,逻辑单元
每一个lun需要关联到某一个后端存储设备,在客户端会视为一块虚拟磁盘
使用targetcli建立配置(服务机svr7)
backstore/block create name=后端存储名 dev=实际设备路径 #创建后端存储
iscsi create 磁盘组的IQN名称 #IQN名称规范,创建磁盘组
iscsi/磁盘组名/tpql/luns create 后端存储路径 #创建关联
iscsi/磁盘组名/tpgl/acls create 客户机IQN标识
iscsi/磁盘组名/tpql/portals create IP地址 端口号
yum -y install targetcli #安装服务软件包 targetcli
systemctl stop firewalld #关闭防火墙
targetcli #运行 targetcli 命令进行配置
ls
#创建后端存储
backstores/block create dev=/dev/sdb1 name=nsd
#创建磁盘组target,使用IQN名称规范
iscsi/ create iqn.2019-09.cn.tedu:server
#创建lun关联
iscsi/iqn.2019-09.cn.tedu:server/tpg1/luns create /backstores/block/nsd
#设置访问控制(acl),设置客户端的名称
iscsi/iqn.2019-09.cn.tedu:server/tpg1/acls create iqn.2019-09.cn.tedu:client
ls
exit
systemctl restart target.service
IQN名称规范
iqn.yyyy-mm.倒序域名
:自定义标识
用来识别target磁盘组,也用来识别客户机身份
使用targetcli建立配置(客户机pc207)
#安装客户端软件
yum -y install iscsi-initiator-utils
rpm -q iscsi-initiator-utils
#修改配置文件,指定客户端声称的名称
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2019-09.cn.tedu:client
#重起iscsid服务,仅仅是刷新客户端声称的名称
systemctl restart iscsid
#利用命令发现服务端共享存储
man iscsiadm #查看iscsiadm帮助 /example按n向下匹配,按b向上匹配
iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.7 --discover
#重启iscsi服务(主服务),使用共享存储
systemctl restart iscsi
lsblk
Web通信基本概念
基于B/S(Browser/Server)架构的网页服务
服务端提供网页
浏览器下载并显示网页
构建独立的web服务器
服务端
yum -y install httpd #安装httpd软件包
echo abc > /var/www/html/index.html #书写页面文件内容
systemctl restart httpd #启动服务
客户端
curl http://192.168.4.7
提供的默认配置
Listen:监听地址:端口80
ServerName:本站点注册的DNS名称(空缺)
DocumentRoot:网页根目录(/var/www/html)
DirectoryIndex:起始页/首页文件名(index.html)
修改http服务的默认路径
vim /etc/httpd/conf/httpd.conf #修改监听的端口号
/DocumentRoot
DocumentRoot /var/www/myweb
echo abc > /var/www/myweb/index.html
systemctl restart httpd #重启服务
#客户端测试
curl http://192.168.4.7 #成功
修改http服务的默认端口号
vim /etc/httpd/conf/httpd.conf
/Listen
Listen 8080
netstate -anptu | grep httpd #查看httpd服务的监听端口
#客户端测试
curl http://192.168.4.7 #失败
curl http://192.168.4.7:8080 #成功
为浏览器程序提供URL网址
协议名://服务器地址[:端口号]/目录/文件名
elinks -dump http://server0.example.com/
firefox http://server0.example.com/
改变网页文件存放路径
网络路径:浏览器中输入的路径(192.168.4.7/abc)
实际路径:服务器上网页文件存放的路径(/var/www/myweb /abc/index.html)
#服务端配置
mkdir/webapp
vim /etc/httpd/conf/httpd.conf
DocumentRoot /webapp
echo woshiapp > /webapp/index.html
systemctl restart httpd
#客户端测试
curl http://192.168.4.7 #出现测试页面
#服务端配置
vim /etc/httpd/conf/httpd.conf
<Directory "/webapp"> #新添加
Require all granted #对webapp目录设置为允许任何人访问
<Directory>
systemctl restart httpd
#客户端测试
curl http://192.168.4.7 #出现woshiapp页面
配置文件说明
/etc/httpd/conf/httpd.conf
#主配置文件
/etc/httpd/conf.d/*.conf
#调用配置文件
域名解析(一台服务器使用两个域名,虚拟主机)
为每个虚拟站点添加配置
vim /etc/httpd/conf.d/nsd01.conf
<VirtualHost IP地址:端口>
ServerName 此站点的DNS名称(www.qq.com)
DocumentRoot 此站点的网页根目录(/var/www/qq)
</VirtualHost>
配置页面
服务端操作
setenforce 0
systemctl stop firewalld.services #关闭防火墙
vim /etc/httpd/conf.d/nsd01.conf
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
<VirtualHost *:80>
ServerName www.baidu.com
DocumentRoot /var/www/baidu
</VirtualHost>
mkdir /var/www/qq /var/www/baidu
echo "qq" > /var/www/qq/index.html
echo "baidu" > /var/www/baidu/index.html
systemctl restart httpd
客户端操作
vim /etc/hosts
192.168.4.7 www.qq.com www.baidu.com
curl www.qq.com #结果显示qq
curl www.baidu.com #结果显示baidu
虚拟主机对web站点的影响
一旦启用虚拟主机之后,外部的DocumentRoot、ServerName都会被忽略
第一个虚拟站点被视为默认站点,若客户机请求的URL不属于任何已有站点,则有第一个站点响应
当独立web服务器升级为虚拟主机服务器之后,需要为原web站点建立一个虚拟站点
NFS共享概述
Network File System,网络文件系统
用途:为客户机提供共享使用的文件夹
协议:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)
所需软件包:nfs-utils
系统服务:nfs-server
exports(/etc/exports)配置文件解析
文件夹路径 客户端地址
/test 192.168.4.0(ro)
实现NFS共享
服务端
rpm -q nfs-utils
yum -y install nfs-utils
mkdir /test
echo abc > /test/1.txt
vim /etc/exports
/test 192.168.4.0(ro)
systemctl restart nfs-server
systemctl enable nfs-server
systemctl stop firewall
客户端
rpm -q nfs-utils
yum -y install nfs-utils
showmount -e 192.168.4.7
mkdir /abc
mount 192.168.4.7:/test /abc
df -h
ls /abc
实现开机自动挂载
_netdev:声明网络设备,系统在网络服务配置完成后,再挂载本设备
vim /etc/fstab
192.168.4.7:/test /abc nfs defaults,_netdev 0 0
umount /abc
mount -a
df -h
autofs触发挂载
由autofs提供的“按需访问”机制
只要访问挂载点,就会触发响应,自动挂载指定设备
闲置超过时限(默认5分钟)后,会自动卸载
yum -y install autofs
systemctl restart autofs
ls /
autofs配置解析
主配置文件 /etc/auto.master
监控点目录
/misc
挂载配置文件的路径
挂载配置文件,如 /etc/auto.misc
触发点子目录
挂载参数
:设备名
grep -v ‘^#’ /etc/auto.misc
/misc /etc/auto.misc #/misc为存放触发点的父文件夹
cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
#cd为autofs自动建立/移除的挂载点目录名
客户端
yum -y install autofs
systemctl restart autofs
ls / #会出现misc的目录
ls /misc/
ls -A /misc
cd /misc/aa #失败
cd /misc/bb #失败
cd /misc/cd #成功
pwd
ls
df -ah
vim /etc/auto.master #查看即可,不作任何修改
vim /etc/auto.misc #查看即可,不作任何修改
fdisk /dev/sdb #划分一个3G的主分区
lsblk
mkfs.xfs /dev/sdb1
blkid /dev/sdb1
ls /misc/mydev
vim /etc/suto.misc #当触发/misc/mydev时,实现将/dev/sdb1自动挂载
mydev -fstype=xfs :/dev/sdb1
ls /misc/mydev
df -ah
客户端
vim /etc/auto.master
/haha /etc/xoxo.conf
vim /etc/xixi.conf
abc -fstype=cfs "/dev/sdb1
systemctl restart autofs
ls /haha/abc
df -ah
vim /etc/auto.misc
autonfs -fstype=nfs 192.168.4.7:/public
ls /misc/autonfs
df -ah
配置DNS服务器
#服务器配置
yum -y install bind bind-chroot.x86_64
rpm -q bind bind-chroot
vim /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
named-checkconf /etc/named.conf #检查主配置文件是否存在语法问题
cp -p /var/named/named.localhost /var/named/tedu.cn.zone
vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7.tedu.cn.
www.tedu.cn. A 192.168.4.100
named-checkzone tedu.cn /var/named/tedu.cn.zone #检查地址库文件是否存在语法问题
systemctl restart named #重启服务
systemctl stop firewalld.service #关闭防火墙
setenforce 0
# 客户端验证
echo "nameserver 192.168.4.7" > /etc/resolv.conf
yum -y install bind-utils
nslookup www.tedu.cn
构建多区域的DNS(多区域DNS服务)
服务端:
#修改主配置文件,在下面新添加
vim /etc/named.conf
options {
directory "/var/named";
};
#指定这台机器要解析的域名
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
zone "baidu.com" IN {
type master;
file "baidu.com.zone";
};
cp -p /var/named/named.localhost /var/named/baidu.com.zone
cp -p /var/named/named.localhost /var/named/tedu.cn.zone
vim /var/named/baidu.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
baidu.com. NS svr7
svr7 A 192.168.4.7
www A 10.20.30.40
vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS www.tedu.cn.
www A 192.168.4.7
svr7 A 0.0.0.0
systemctl restart named #重启服务
客户端操作:
yum -y install bind-utils
nslookup svr7.tedu.cn
nslookup www.baidu.com
特殊的解析记录
基于DNS的站点负载均衡
一个域名 --> 多个不同IP地址
基于解析记录的轮询(负载均衡,缓解网站服务器的压力)
服务器:
vim /var/named/baidu.com.zone
baidu.com NS svr7
svr7 A 192.168.4.7
www A 192.168.4.50
www A 192.168.4.60
www A 192.168.4.70
www A 192.168.4.80
www A 192.168.4.90
systemctl restart named
客户端:
ping www.baidu.com
ping www.baidu.com
泛域名解析
解决用户输入错误域名时的解析结果
#服务端
vim /var/named/baidu.com.zone
* A 10.20.30.40
systemctl restart named
#客户端测试
nslookup wwww.baidu.com
无规律的泛域名解析(无前置域名访问)
服务端:
vim /var/named/baidu.com.zone
···
baidu.com. A 50.60.70.80
systemctl restart named
客户端:
nslookup baidu.com
使用内置函数生成有规律的泛域名解析
$GENERATE 1-100 pc$ A 192.168.10.$
vim /var/named/baidu.com.zone
$GENERATE 1-100 pc$ A 192.168.10.$
#$GENERATE 要生成的整数范围 pc$ A 192.168.10.$
system restart named #重启服务
nslookup pc1.baidu.com #测试结果
nslookup pc2.baidu.com
nslookup pc100.baidu.com
使用别名解析(CNAME)
vim /var/named/baidu.com.zone
···
tts CNAME ftp
#别名 CNAME 要解析的域名
systemctl restart named #重启服务
nslookup tts.baidu.com #测试结果
主/从DNS服务器
主域名服务器
特定DNS区域的官方服务器,具有唯一性
负责维护该区域内所有的“域名 <–> IP地址”记录
从域名服务器
也称为辅助域名服务器
,可以没有
其维护的“域名 <–> IP地址”记录取决于主域名服务器
主/从DNS应用场景
案例环境
主DNS服务器的IP地址为 192.168.4.7/24
从DNS服务器的IP地址为192.168.4.207/24
其中任何一台都能提供对tedu.cn域的主机查询,返回相同的解析结果
基本配置步骤
以区域tedu.cn为例,正常搭建好DNS服务
主服务器配置:
-
装bind、bind-chroot软件包
-
建立主配置文件
-
建立区域数据文件
-
启动named服务
-
测试主DNS的域名解析
#主服务器配置
vim /etc/named.conf
options {
directory "/var/named";
allow-transfer { 192.168.4.207; };
#allow-transfer { 从服务器的IP地址; };
};
zone "tedu.cn." IN {
type master;
file "tedu.cn.zone";
};
cp -p /var/named/named.localhost /var/named/tedu.cn.zone
vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial #版本号(10位数字组成,年月日修改次数 2020010101,做数据同步使用,用于在主服务器修改地址后,同步数值只可增加不可减小)
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum #无效记录缓存时间
tedu.cn NS pc207
pc207 A 192.168.4.207
#从服务器名称(NS记录必须写在A解析记录上)
systemctl restart named #重启服务
systemctl stop firewalld.service #关闭防火墙
setenforce 0
从服务器配置:
-
装bind、bind-chroot软件包
-
建立主配置文件
-
启动named服务
-
测试主DNS的域名解析
#从服务器配置
vim /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn" IN {
type slave;
file "/var/named/slaves/tedu.cn.slave";
masters { 192.168.4.7; };
};
systemctl restart named #重启服务
客户端测试
#客户端测试
nslookup www.tedu.cn 192.168.4.7
nslookup www.tedu.cn 192.168.4.207
vim /etc/resolv.conf
nameserver 192.168.4.7
nameserver 192.168.4.207
nslookup www.tedu.cn #会首先解析到主服务器
基础邮件服务
电子邮件通信
电子邮件服务器的基本功能
为用户提供电子邮箱存储空间(用户名@邮件域名)
处理用户发出的邮件 – 传递给收件服务器
处理用户收到的邮件 – 投递到邮箱
配置邮件服务器的DNS
服务器端(svr7)构建DNS服务器
yum -y install bind bind-chroot
vim /etc/named.conf
options {
directory "/var/named";
};
zone "example.com." IN {
type master;
file "example.com.zone";
};
cp -p /var/named/named/named.localhost /var/named/example.com.zone
vim /var/named/example.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
example.com. NS svr7
example.com. MX 10 mail #MX邮件交互记录,10为第几台邮件服务器,数字越小优先级越高;mail:邮件服务器
svr7 A 192.168.4.7
mail A 192.168.4.207
systemctl restart named
客户端(pc207)主机验证邮件交换记录
echo "nameserver 192.168.4.7" > /etc/resolv.conf
yum -y install bind-utils
host -t MX example.com #查看在example.com域中邮件服务器是谁
host mail.example.com #查看邮件服务器解析
构建邮件服务器
邮件服务搭建
rpm -q postfix
vim /etc/postfix/main.cf
#99行 - 去除注释
myorigin = example.com #默认补全的域名后缀
#116行
inet_interfaces = all #修改默认监听端口为所有网卡都提供邮件功能
#164 行
mydestination = example.com #判断为本域邮件的依据
systemctl restart postfix #重启服务
#测试
useradd fajianren #发件用户
useradd shoujianren #收件用户
yum -y install mailx #安装邮件收发包
交互式mail命令
语法格式:
mail -s ‘邮件标题’ -r 发件人 收件人
邮件内容
. #结束邮件
mail -s "test01" -r fajianren shoujianren
邮件内容
. #结束邮件
mail -u xln #查看邮件
1
q
非交互式mail命令
语法格式:
echo “邮件内容” | mail -s ‘邮件标题’ -r 发件人 收件人
echo abc | mail -s 'mail title' -r fajianren shoujianren #使用非交互式命令发送邮件
mail -u shoujianren #检查邮件
分离解析概述
分离解析:
当收到客户机的DNS查询请求的时候
能够区分客户机的来源地址
为不同类别的客户机提供不向的解析结果(IP地址)
典型适用场景:
访问压力大的网站,购买CDN提供的内容分发服务
在全国各地/不同网终内部署大量镜像服务节点
针对不同的客户机就近提供服务器
BIND的view视图
匹配原则:由上到下
根据源地址集合将客户机分类
不同客户机获得不同结果(待遇有差别)
view "联通" {
match-clients { 来源地址1; ...; }:
zone "12306.cn" IN
...地址库1;
}; };
view "铁通" {
match-clients { 来源地址2; ...; };
zone "12306.cn" IN {
...地址库2;
}; };
分离解析实例
服务端(svr)7操作:
vim /etc/named.conf
options {
directory /var/named";
};
view "VIP" {
match-clients { 192.168,4.207; };
zone "tedu.en" IN {
type master
file "tedu.cn.zone";
};
};
view "other" {
match-clients { any; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.other;
};
};
cp -p /var/named/named.localhost /var/named/tedu.cn.zone
vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.100
cp -p /var/named/tedu.cn.zone /var/named/tedu.cn.other
vim /var/named/tedu.cn.other
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 1.2.3.4
systemcti restart named
分别用pc207和虚拟机A验证
nslookup www.tedu.cn
缓存DNS概述
作用:缓存解析记录,加快解析速度
缓存DNS的适用场景
主要适用环境:
互联网出口带宽较低的企业局域网络
ISP服务商的公共DNS服务器
构建缓存服务器
客户端(pc207)
yum -y install bind bind-chroot
vim /etc/namd.conf
options {
directory"/var/named";
forwarders { 192.168.4.7 }; #转发地址
};
systemctl restart named
客户端验证(A)
nalookup www.tedu.cn 192.168.4.207
批量装机PXE
部署DHCP服务器
DHCP概述及原理
- Dynamic Host Configuration Protocol
动态主机配置协议,由IETF (Internet网络工程师任务小组)组织制定,用来简化主机地址分配管理。
主要分配以下入网参数:
IP地址/子网掩码/广播地址
默认网关地址、DNS服务器地址
- DHCP地址分配的四次会话
-DISCOVERY -> OFFER - REQUEST ->ACK
- 服务端基本概念
租期:允许客户机租用IP地址的时间期限,单位为秒
作用域:分配给客户机的IP地址所在的网段
地址池:用来动态分配的IP地址的范围
配置 dhcpd 地址分配服务
- 装软件包dhcp
- 配置文件 /etc/dhcp/dhcpd.conf
- 起服务 dhcpd
vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0 { # 声明网段
range 192.168.4.10 192.168.4.200; # IP范围
}
netstat -antpu I grep dhcpd //确认结果
udp 0 00.0.0.0:67 0.0.0.0:* 8380/dhcpd
yum -y install dhcp
vim /etc/dhcp/dhcpd.conf
:r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option domain-name-servers 192.168.4.10;
option routers 192.168.4.254; #网关
default-lease-time 600; #租约时间600秒
max-lease-time 7200; #最大祖约时间
}
systemctl restart dhcpd
ss -anptu | grep 67
#svr7
dhclient-r #临时释放IP地址
dhclient-d #临时获取IP地址
网络装机的优势
- 规模化:同时装配多台主机
- 自动化:装系统、配置各种服务
- 远程实现:不需要光盘、U盘等物理安装介质
什么是PXE网络
- PXE,Pre-boot eXecution Environment
- 预启动执行环境在操作系统之前运行
- 可用于远程安装
- 工作模式
- PXE client集成在网卡的启动芯片中
- 当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行
PXE组件及过程分析
- 需要哪些服务组件?
- DHCP服务,分配1P地址、定位引导程序
- TFTP服务,提供引导程序下载
- HTTP服务(或FTP/NFS),提供yum安装源
- 客户机应具备的条件
- 网卡芯片必须支持PXE协议
- 主板支持从网卡启动
配置dhcpd服务
- 装软件包 dhcp
- 配置文件 /etc/dhcp/dhcpd.conf
- 起服务dhcpd
vim /etc/dhcp/dhcpd.conf
:r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option domain-name-servers 192.168.4.10;
option routers 192.168.4.254; #网关
default-lease-time 600; #租约时间600秒
max-lease-time 7200; #最大祖约时间
next-server 192.168.4.10; #指定下一台服务器的IP地址
filename "pxelinux.0"; #网卡引导文件(网络装机说明书,二进制文件)
}
systemctl restart dhcpd
部署TFTP服务
启用TFTP服务端
- TFTP,Trivial File Transfer Protocol
- 小文件传输协议,UDP 69端口
- 主要用来传送小文件,不支持认证和复杂FTP操作
- 默认资源目录:/var/lib/tftpboot
yum -y install tftp-server
systemctl restart tftp
ss -anptu | grep 69
部署引导文件pxelinux.0
yum provides */pxelinux.0 #//查找产生的软件包
yum -y install syslinux
ls /usr/share/syslinux
rpm -ql syslinux | grep pxelinux.0 #查看软件相应的安装内容
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
部署菜单文件
mkdir /var/lib/tftpboot/pxelinux.cfg
ls /var/lib/tftpboot/
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
ls /var/lib/tftpboot/pxelinux.cfg
部署引导程序
cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/splash.png /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /var/lib/tftpboot #图形模块
ls /var/lib/tftpboot/
修改菜单文件
vim /var/lib/tftpboot/pxelinux.cfg/default
#1行
default vesamenu.c32 #默认加载图形模块
timeout 600 #默认读秒时间1/10
#10行
menu background splash.png
menu title Centos7 #装机界面标题
#61行
label linux #菜单名
menu label ^Install CentOS 7 #菜单显示内容
menu default #默认进入菜单
kernel vmlinuz #默认进入菜单
append initrd=initrd.img #加载的驱动程序
setenforce 0
systemctl stop firewalld.service
部署 WEB 服务器
搭建httpd服务
#安装软件包 httpd
yum -y install httpd
#挂载光盘内容并启动 httpd 服务
mkdir /var/www/html/centos
mount /dev/cdrom /var/www/html/centos
systemctl restart httpd
firefox http://192.168.4.7/centos
生成应答文件
#图形工具 system-config-kickstart 进行生成应答文件
yum -y install system-config-kickstart
#运行
system-config-kickstart
vim /etc/yum.repos.d/centos.repo
[development]
name=CentOS7.5
baseurl=file:///dvd
enabled=1
gpgcheck=0
#再次运行 点击 "软件包选择(Package Selection)" 查看是否可以进行选择(可以进行选择)
system-config-kickstart
PXE网络装机
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.4.10/24 connection.autoconnect yes
nmcli connection up ens33
mount /dev/cdrom /mnt
vim /etc/yum.repos.d/mnt.repo
[development]
name=Centos7.5
baseurl=file:///mnt
enabled=1
gpgcheck=0
rm -rf /etc/yum.repos.d/C*
yum clean all
yum repolist
setenforce 0
systemctl stop firewalld.service
yum -y install httpd
yum -y install dhcp
rpm -q dhcp
systemctl restart dhcpd
ss -anptu | grep 67
vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option domain-name-servers 192.168.4.10;
option routers 192.168.4.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.10;
filename "pxelinux.0";
}
systemctl restart dhcpd
yum -y install tftp-server.x86_64
systemctl restart tftp
ss -anptu | head -69
yum provides */pxelinux.0
yum -y install syslinux
rpm -ql syslinux | grep pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/splash.png /mnt/isolinux/initrd.img /mnt/isolinux/vmlinuz /var/lib/tftpboot/
vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
menu label ^Install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.4.10/ks.cfg
systemctl restart dhcpd
systemctl restart tftp
setenforce 0
yum -y install httpd
systemctl restart httpd
mkdir /var/www/html/centos
mount /dev/cdrom /var/www/html/centos/
yum -y install system-config-kickstart.noarch
yum -y install system-config-kickstart
#编辑配置文件
vim /var/www/html/ks.cfg
install
keyboard 'us'
rootpw --iscrypted $1$6/ldzaKw$dsdWMg2fX1l40RTZ2BoN50
url --url="http://192.168.4.10/centos"
lang en_US
auth --useshadow --passalgo=sha512
graphical
firstboot --disable
selinux --disabled
firewall --disabled
network --bootproto=dhcp --device=eth0
reboot
timezone Asia/Shanghai
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part / --fstype="xfs" --grow --size=1
%packages
@base
%end
systemctl restart httpd.service
systemctl restart dhcpd.service
systemctl restart tftp.service
#########################################################
#法二
system-config-kickstart
#基本配置 - 时区 - Asia/Shanghai
#基本配置 - Root密码 - 1
#基本配置 - 确认密码 - 1
#基本配置 - 安装后重启 - v
#安装方法 - HTTP - v
#HTTP服务器 - 192.168.4.10
#HTTP目录 - centos
#引导装载程序选项 - 安装新引导装载程序
#分区信息 - 清除主引导记录 - v
#分区信息 - 初始化磁盘标签 - v
#分区信息 - 添加 - 挂载点:/
#分区信息 - 添加 - 使用磁盘上全部未用空间 - v
#网络配置 - 添加网络设备 - 网络设备:eth0
#防火墙配置 - SELinux: 禁用
#软件包选择 - 系统- 基本
文件 - 保存
cp /root/ks.cfg /var/www/html/ks.cfg
##
#设置永久关闭
vim /etc/selinux/config
SELINUX=disabled
systemctl enable dhcpd
systemctl enable tftp
systemctl enable httpd
shell脚本
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.4.10/24 connection.autoconnect yes
nmcli connection up ens33
mount /dev/cdrom /mnt
echo "[development]
name=Centos7.5
baseurl=file:///mnt
enabled=1
gpgcheck=0" > /etc/yum.repos.d/mnt.repo
rm -rf /etc/yum.repos.d/C*
yum clean all
yum repolist
setenforce 0
systemctl stop firewalld.service
yum -y install httpd
yum -y install dhcp
rpm -q dhcp
systemctl restart dhcpd
ss -anptu | grep 67
echo "subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option domain-name-servers 192.168.4.10;
option routers 192.168.4.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.10;
filename \"pxelinux.0\";
}" > /etc/dhcp/dhcpd.conf
systemctl restart dhcpd
yum -y install tftp-server.x86_64
systemctl restart tftp
ss -anptu | head -69
yum provides */pxelinux.0
yum -y install syslinux
rpm -ql syslinux | grep pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/splash.png /mnt/isolinux/initrd.img /mnt/isolinux/vmlinuz /var/lib/tftpboot/
sed -i '61d' /var/lib/tftpboot/pxelinux.cfg/default
sed -i '61d' /var/lib/tftpboot/pxelinux.cfg/default
sed -i '61d' /var/lib/tftpboot/pxelinux.cfg/default
sed -i '61d' /var/lib/tftpboot/pxelinux.cfg/default
sed -i "61a label linux" /var/lib/tftpboot/pxelinux.cfg/default
sed -i "62a menu default" /var/lib/tftpboot/pxelinux.cfg/default
sed -i "63a kernel vmlinuz" /var/lib/tftpboot/pxelinux.cfg/default
sed -i "64a append initrd=initrd.img ks=http://192.168.4.10/ks.cfg" /var/lib/tftpboot/pxelinux.cfg/default
systemctl restart dhcpd
systemctl restart tftp
setenforce 0
yum -y install httpd
systemctl restart httpd
mkdir /var/www/html/centos
mount /dev/cdrom /var/www/html/centos/
yum -y install system-config-kickstart.noarch
yum -y install system-config-kickstart
echo "install
keyboard 'us'
rootpw --iscrypted $1$6/ldzaKw$dsdWMg2fX1l40RTZ2BoN50
url --url=\"http://192.168.4.10/centos\"
lang en_US
auth --useshadow --passalgo=sha512
graphical
firstboot --disable
selinux --disabled
firewall --disabled
network --bootproto=dhcp --device=eth0
reboot
timezone Asia/Shanghai
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part / --fstype=\"xfs\" --grow --size=1
%packages
@base
%end" > /var/www/html/ks.cfg
systemctl restart httpd.service
systemctl restart dhcpd.service
systemctl restart tftp.service
---
## 远程管理ssh
### SSH协议(Secure Shell)
> 为客户机提供安全的 Shell 环境
>
> 默认端口:**TCP22**
### OpenSSH 服务
> 服务名称:sshd
>
> 主程序:/use/sbin/sshd、/usr/bin/ssh
>
> 配置主件:/etc/ssh/sshd_config
>
> /etc/ssh/ssh_config
### SSH的基本使用
```shell
ssh root@要远程主机的ip地址 #远程指定的主机
ssh root@要使用图形界面远程主机的ip地址 #使用图形界面远程指定的主机
firefox #测试图形界面状态下
使用scp远程复制工具
安全复制工具scp
scp -r 用户名@服务器:远程路径 本地路径 #将指定主机上的文件下载到本地
scp -r 本地路径 用户名@服务器:远程路径 #将本地的文件上上传至指定主机
scp -r root@192.168.4.207:/boot /opt/ #将远程主机.207的目录boot复制到本地opt目录下
scp -r /boot root@192.168.4.207:/opt/ #将本机的boot目录复制到远程主机.207主机的opt目录下
实现ssh无密码验证
部署公钥与私钥
生成公钥与私钥
ssh-keygen
(使用默认ssh路径)
(实现ssh无密码验证,不需要设置密码)
(确认密码)
ls /root/.ssh
cat /root/.ssh/known_hosts
ssh-copy-id root@要传输公钥目标主机(无密码登陆)的ip地址
ssh root@无密码登陆目标主机的ip地址
传递公钥到对方主机
练习 4.25
案例:使用ssh客户端
准备虚拟机A和虚拟机B,完成以下操作
- 从主机A(192.168.4.7)上以root身份登入主机B(192.168.4.207)
ssh root@192.168.4.207
- 在主机B上创建用户student,设置密码为redhat
useradd student
echo redhat | passwd --stdin student
- 从主机A上以用户student登入主机B
ssh student@192.168.4.207
案例:使用scp远程复制工具
- 在主机A上使用scp下载文档
a. 将主机B上的/root/anaconda-ks.cfg文件复制到/opt下
scp -r root@192.168.4.207:/root/anaconda-ks.cfg /opt/
ls /opt/
b. 将主机B上的/home目录复制到本地的/opt下
scp -r root@192.168.4.207:/home /opt
ls /home
- 在主机A上使用scp上传文档
a. 确保主机B上有本地用户lisi
id lisi
b. 将本地的/root/anaconda-ks.cfg文件复制到主机B上用户lisi的家目录下,以用户lisi的密码验证
scp -r /root/anaconda-ks.cfg lisi@192.168.4.207:/home/lisi
su lisi
ls
4.26 练习
案例
-
利用ip命令查看ip地址
ip address show
-
利用ip命令为本机第一张网卡添加ip地址192.168.100.10/24
ip address add 192.168.100.10/24 dev ens33
-
利用ip命令添加路由,去往200.0.0.0/24下一跳为192.168.100.10
ip route add 200.0.0.0/24 via 192.168.100.10 dev ens33
-
安装vsftpd软件包
yum -y install vsftpd
-
启动vsftpd服务(systemctl restart vsftpd)
systemctl restart vsftpd
-
查看vsftpd服务监听的端口号
netstat -anptu | grep vsftpd
4.27 练习
实验环境准备
虚拟机A
-
主机名配置为A.tedu.cn
hostname A.tedu.cn echo A.tedu.cn > /etc/hostname
-
IP地址配置为192.168.4.10/24
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.4.10/24 connection.autoconnect yes nmcli connection up ens33
-
用真机Xshell远程到虚拟机A
ssh root@192.168.4.10
-
将tools.tar.gz包传输到虚拟机A
tar xf /root/tools.tar.gz /
-
将tools.tar.gz解压到/tools文件夹下
mkdir /tools/ tar xf /root/tools.tar.gz /tools/
-
源码编译安装inotify-tools-3.13.tar.gz,安装位置为/opt/abc
./configure --prefix=/opt/abc vim /etc/yum.repos.d/mnt.repo [mnt] name=Centos7.5 baseurl=file:///dvd enabled=1 gpgcheck=0 [mymnt] name=Centos7.5 baseurl=file:///tools/tools/other enabled=1 gpgcheck=0 rm -rf /etc/yum.repos.d/C* yum clean all yum repolist createrepo /tools/tools/other/ yum -y install gcc yum -y install make rpm -q gcc make #检查安装情况 tar -xf /tools/tools/inotify-tools-3.13.tar.gz -C /opt cd /opt/inotify-tools-3.13/ make make install ls /opt/abc/
4.28 练习
案例
-
在svr7安装web服务和ftp服务
#前提:安装yum源 yum -y install httpd systemctl start httpd yum -y install vsftpd systemctl start vsftpd
-
修改防火墙默认区域,在pc207上验证
firewall-cmd --set-default-zone=trusted curl http://192.168.4.7 #使用另一台主机进行验证 curl ftp://192.168.4.7
4.29 练习
将虚拟机A,svr7,pc207开机,网络模式选为vmnet1
-
将虚拟机A主机名设置为A.tedu.cn
hostname A.tedu.cn echo A.tedu.cn > /etc/hostname
-
将虚拟机A IP地址设置为192.168.4.10
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.4.10/24 connection.autoconnect yes nmcli connection up ens33
-
在虚拟机A上构建web服务和ftp服务
mount /dev/cdrom /mnt vim /etc/yum.repos.d/a.repo [mnt] name=Centos baseurl=file:///mnt gpgcheck=0 enabled=1 rm -rf /etc/yum.repos.d/C* yum clean all yum repolist yum repolist yum -y install httpd yum -y install vsftpd systemctl start vsftpd systemctl start httpd curl http://192.168.4.10 curl ftp://192.168.4.10
-
用真机xshell远程到虚拟机A,svr7,pc207
ssh root@192.168.4.10
-
关闭虚拟机A,svr7,pc207的selinux
vim /etc/selinux/config SELINUX=disabled
案例1:新建一台虚拟机,要求如下:
- 硬盘80G,内存2G
- 采取自动分区规划
- 软件选择“最小安装”
案例2(重复)(最小化装机): 配置网络参数,要求如下:
-
永久设置主机名为 A.tedu.cn
echo A.tedu.cn > /etc/hostname hostname A.tedu.cn hostname
-
永久配置静态IP地址为192.168.4.20/24
nmcli connection modify ens33 ipv4.addresses 192.168.4.20/24 connection.autoconnect yes #安装yum源 mount /dev/cdrom /mnt/ #先连接光盘 echo "/dev/cdrom /mnt iso9660 defaults 0 0" >> /etc/fstab echo "[mnt] name=Centos7.5 baseurl=file:///mnt enabled=1 gpgcheck=0" > /etc/yum.repos.d/mnt.repo rm -rf /etc/yum.repos.d/CentOS-* yum clean all yum repolist yum -y install vim-enhanced #安装vim包 yum -y install net-tools #安装ifconfig支持包 yum -y install bash-completion #安装Tab键支持包 reboot #重启以生效 #调整网络适配器,开机 nmcli connection modify ens33 ipv4.addresses 192.168.4.20/24 connection.autoconnect yes nmcli connection up ens33
-
用真机XShell远程到虚拟机B
ssh root@192.168.4.20
案例3:练习克隆
-
将A机器进行克隆
-
克隆后的机器配置要求如下:
a. 永久设置主机名为 B.tedu.cnecho B.tedu.cn > /etc/hostname hostname B.tedu.cn hostname
b. 永久配置静态IP地址为192.168.4.30/24
```shell
nmcli connection modify ens33 ipv4.addresses 192.168.4.30/24 connection.autoconnect yes
nmcli connection up ens33
```
案例4(重复):复制,拷贝,移动要求如下:
-
新建目录结构/student/test/nsd
mkdir -p /student/test/nsd
-
在目录/student/test/nsd创建文件testa.txt并写入内容 NSD Student
echo "NSD Student" > /student/test/nsd/testa.txt
-
将/student/test/nsd/testa.txt文件复制到/root目录下,同时改名为 tedu.txt
cp /student/test/nsd/testa.txt /root/tedu.txt
-
将/etc/passwd 、/etc/resolv.conf、/etc/hosts 同时拷贝到/student/test/nsd目录下
cp /etc/passwd /etc/resolv.conf /etc/hosts /student/test/nsd
-
将文件 student/test/nsd 重改名为 hs.txt
mv student/test/nsd student/test/hs.txt
案例5(重复):查找并处理文件
-
创建目录/root/findfiles/
mkdir /root/findfiles/
-
利用find查找所有用户 lisi 拥有的必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中
useradd lisi mkdir /root/findfiles/ find / -user lisi -a -type f -exec cp {} /root/findfiles/ \;
-
利用find查找/boot目录下大于10M并且必须是文件,拷贝到/opt
find /boot -size +10M -type f -exec cp {} /opt \;
-
利用find查找/boot/ 目录下以 vm 开头且必须是文件,拷贝到/opt
find /boot -name "vm*" -type f -exec cp {} /opt \;
-
利用find查找/etc 目录下,以 tab 作为结尾的 必须是文件
find /etc -name "*tab" -type f -exec cp {} /opt \;
案例6(重复):查找并提取文件内容
-
在文件 /usr/share/dict/words 中查找到所有包含字符串 seismic 的行,将输出信息,写入到/opt/nsd18.txt
grep seismic /usr/share/dict/words > /opt/nsd18.txt
-
查看内核版本,将显示结果重定向到/root/version.txt
uname -r > /root/version.txt
-
查看红帽系统版本,将显示结果追加到/root/version.txt
cat /red hat-release > /root/version.txt
-
查看主机名将显示结果追加到/root/version.txt
hostname > /root/version.txt
-
将/etc/fstab文件中以UUID开头的信息,写入到/root/fstab.txt
grep ‘^UUID’ /etc/fstab > /root/fastab.txt
-
提取/etc/passwd以bash结尾的行,将其信息写入/opt/pass.txt
grep ‘bash$’ /etc/passwd > /opt/pass.txt
-
复制/etc/login.defs文件到当前目录下,改名为init.txt
cp /etc/login.defs ./init.txt
-
提取init.txt文件里的有效配置(去除以#号开头,去除空行),保存为init2.txt
grep -v '^#' init.txt | grep -v '^$' > init2.txt
案例7(重复): MBR分区模式规划分区
-
添加一块80G的硬盘并规划分区:
-
划分2个10G的主分区;1个12G的主分区;2个10G的逻辑分区。
fdisk /dev/sdb n p 1 +10G n p 2 +10G n p 3 +10G n e n e +10G n e +10G
案例8(重复):构建 LVM 存储
-
利用/dev/sdb1和/dev/sdb2 新建一个名为 systemvg 的卷组
vgcreate systemvg /dev/sdb1 /dev/sdb2 vgs
-
在此卷组中创建一个名为 vo 的逻辑卷,大小为10G
lvcreate -L 10G -n vo systemvg
-
将逻辑卷 vo 格式化为 xfs 文件系统
mkfs.xfs /dev/systemvg/vo blkid /dev/systemvg/vo
-
将逻辑卷 vo 挂载到 /vo 目录,并在此目录下建立一个测试文件 votest.txt,内容为“I AM KING.”
mkdir /vo mount /dev/systemvg/vo /vo echo "I AM KING" > /vo/votest.txt cat /vo/votest.txt
-
实现逻辑卷vo开机自动挂载到/vo
vim /etc/fstab /dev/systemvg/vo /vo xfs defaults 0 0 umount /vo df -h mount -a df -h /vo
案例9(重复):构建 LVM 存储(修改PE大小)
-
新的逻辑卷命名为 database,其大小为50个PE的大小,属于 datastore 卷组
vgcreate database /dev/sdb3 vgs lvcreate -l 50 -n database datastore
-
使用 EXT4 文件系统对逻辑卷 database 格式化,此逻辑卷应该在开机时自动挂载到/nsd/vo
mkfs.ext4 /dev/database/datastore vim /etc/fstab /dev/database/datastore /nsd/vo ext4 defaults 0 0 mkdir -p /nsd/vo mount -a df -h
案例10(重复):扩展逻辑卷
-
将/dev/systemvg/vo逻辑卷的大小扩展到30G
vgs lvs vgextend systemvg /dev/sdb5 /dev/sdb6 vgs lvextend -L 30G /dev/systemvg/vo df -h xfs_growfs /dev/systemvg/vo df -h /vo
案例11(重复):创建用户
-
创建一个名为alex的用户,用户ID是 3456。密码是flectrag
useradd -u 3456 alex grep alex /etc/passwd echo flectrag | passwd --stdin alex id alex
案例12(重复):创建用户和组
-
一个名为adminuser的组
groupadd adminuser grep adminuser /etc/group
-
一个名为natasha的用户,其属于adminuser,这个组是该用户的从属组
useradd -G adminuser natasha grep natasha /etc/group
-
一个名为harry的用户,属于adminuser,这个组是该用户的从属组
useradd -G adminuser harry grep harryr /etc/group
-
一个名为sarah的用户,其在系统中没有可交互的shell,并且不是adminuser组的成员用户
useradd -s /sbin/nologin sarah grep sarah /etc/group
-
natasha、harry、和sarah的密码都要设置为flectrag
echo flectrag | passwd --stdin natasha echo flectrag | passwd --stdin harry echo flectrag | passwd --stdin sarah
案例13(重复):配置文件 /var/tmp/fstab 的权限
-
拷贝文件/etc/fstab到/var/tmp/fstab,配置文件/var/tmp/fstab的权限:
cp /etc/fstab /var/tmp/fstab
-
文件/var/tmp/fstab的拥有者是root用户
-
文件/var/tmp/fstab属于root组
chown root:root /var/tmp/fstab ls -ld /var/tmp/fstab
-
文件/var/tmp/fstab对任何人都不可执行
chmod -x /var/tmp/fstab ls -l /var/tmp/fstab
-
用户natasha 能够对文件/var/tmp/fstab执行读和写操作
setfacl -m u:natasha:rw /var/tmp/fstab setfacl /var/tmp/fstab
-
用户harry 对文件/var/tmp/fstab既不能读,也不能写
setfacl -m u:harry:- /var/tmp/fstab getfacl /var/tmp/fstab
-
所有其他用户(当前的和将来的)能够对文件/var/tmp/fstab进行读操作
ls -l /var/tmp/fstab
案例14(重复):创建一个归档
-
创建一个名为 /root/backup.tar.bz2 的归档文件,其中包含 /usr/local 目录中的内容,tar 归档必须使用 bzip2 进行压缩
tar -jcf /root/backup.tar.bz2 /usr/local/
案例15(重复):配置一个cron任务
-
为用户 natasha 配置一个定时任务
su natasha crontab -e crontab -e -u natasha
-
每天在本地时间 14:23 执行
-
需要完成的任务操作为 /bin/echo hiya
23 14 * * * /bin/echo hiya
案例16(重复):设置别名
-
为root用户永久设置别名为hn=‘hostname’
su root vim ~/.bashrc alias hn='hostname'
-
为所有用户设置别名为 qstat=’/bin/ps -Ao pid,tt,user,fname,rsz’
vim /etc/bashrc qstat='/bin/ps -Ao pid,tt,user,fname,rsz'
案例17:实现虚拟机B的Web服务
-
利用httpd软件搭建Web服务,页面显示内容为 I LIKE LINUX.
yum -y install httpd systemctl start httpd firefox http://192.168.4.10 vim /var/www/html/index.html #打开默认存放网页文件的路径进行编辑 I LIKE LINUX. yum -y install elinks #命令行浏览器 elinks --dump http://192.168.4.10 curl http://192.168.4.10 #命令行浏览器
案例18:实现虚拟机A的防火墙配置
-
修改虚拟机A防火墙配置,明确拒绝所有客户端访问(默认区域修改为block)
firewall-cmd --set-default-zone=block #修改防火墙默认区域为block
-
在虚拟机B上测试能否访问A的Web服务
curl http://192.168.4.10 #不可以访问
-
在虚拟机 B上测试能否 ping通 虚拟机A
ping 192.168.4.10 #不可以访问
案例19:实现虚拟机A 的防火墙配置
-
修改虚拟机A防火墙配置,将默认区域修改为trusted
firewall-cmd --set-default-zone=trusted #修改防火墙默认区域为trusted
-
在虚拟机B上测试能否访问A的Web服务
curl http://192.168.4.10 #可以访问
-
在虚拟机B上测试能否 ping通 虚拟机 A
ping 192.168.4.10 #可以访问
案例20:实现虚拟机A的防火墙配置
-
修改虚拟机A防火墙配置,将默认区域修改为public
firewall-cmd --set-default-zone=public
-
修改虚拟机A防火墙配置,在public区域中添加http协议,实现永久配置
firewall-cmd --permanent --zone=public --add-service=http #永久启动http服务 firewall-cmd --reload #重新加载配置文件 firewall-cmd --permanent --zone=public --list-all #查看区域策略 netatat -anptu | grep :80 #过滤80端口 systemcli status httpd #查看http服务状态 systemcli enable httpd #设置http服务开机自启
-
在虚拟机B上测试能否访问A 的Web服务
curl ftp://192.168.4.10 #使用B主机检测,可以访问 curl http://192.168.4.10 #使用B主机检测,可以访问
5.7 练习
服务端是svr7,客户端为pc207,完成以下案例
案例1:构建网络yum
利用ftp服务实现yum源提供服务
-
svr7构建vsftpd服务
setenforce 0 #SELinux运行模式切换 0宽松 1强制 /etc/selinux/config #永久配置 getenforce #查看 ststemctl stop firewall mount /dev/cdrom /mnt vim /etc/yum.repos.d/mnt.repo [mnt] name=Centos7.5 baseurl=file:///mnt gpgcheck=0 enabled=1 rm -rf /etc/yum.repos.d/C* yum clean all yum repolist yum -y install vsftpd systemctl start vsftpd systemctl status vsftpd #查看服务运行状态 firewall-cmd --set-default-zone=trusted curl ftp://192.168.4.7
-
利用vsftpd服务提供如下内容:
a. Centos7光盘内容mkdir /var/ftp/dvd mount /dev/cdrom /var/ftp/dvd
b. 自定义yum仓库内容
```shell
vim /etc/yum.repos.d/dvd.repo
[dvd]
name=CentOS7.5
baseurl=ftp://192.168.4.7/dvd
enabled=1
gpgcheck=0
yum clean all
yum repolist
```
案例2:高级远程管理
-
实现svr7远程管理pc207,无密码验证
ssh root@192.168.4.207 ssh-keygen ssh-copy-id root@192.168.4.207 ssh root@192.168.4.207
-
将svr7的/home目录拷贝到pc207的/opt目录下
scp -r /home root@192.168.4.207:/opt/ ls /opt
-
将svr7的/etc/passwd文件拷贝到tom用户的家目录下,以用户tom的密码验证(用户tom密码为redhat)
ssh root@192.168.4.207 useradd tom echo 'redhat' | passwd --stdin tom scp -r /etc/passwd tom@192.168.4.207:/home/tom/ ls /home/tom
案例练习
配置iSCSI服务端
-
配置svr7提供iSCSI服务,磁盘名为iqn.2016-02.com.example:svr7,服务端口为3260,使用store作其后端卷,其大小为3GiB
fdisk /dev/sdb +3G partprobe /dev/sdb #刷新分区 lsblk yum -y install targetcli systemctl stop firewalld targetcli ls backstores/block create dev=/dev/sdb1 name=store iscsi/ create iqn.2016-02.com.example:svr7 iscsi/iqn.2016-02.com.example:svr7/tpg1/luns create /backstores/block/store iscsi/iqn.2016-02.com.example:svr7/tpg1/acls create iqn.2016-02.com.example:client ls exit systemctl restart target.service
配置iSCSI客户端
-
配置pc207使其能连接上svr7提供的iqn.2016-02.com.example.svr7,iSCSI设备在系统启动期间自动挂载,块设备iSCSI上包含一个大小为2100MiB的分区,并格式化为ext4文件系统,此分区挂载在/mnt/data上,同时在系统启动的期间自动挂载
#安装客户端软件 yum -y install iscsi-initiator-utils rpm -q iscsi-initiator-utils #修改配置文件,指定客户端声称的名称 vim /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2016-02.com.example.client #重启iscsi服务(主服务),使用共享存储 systemctl restart iscsi d iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.7 --discover #利用命令发现服务端共享存储 #iSCSI自动挂载 systemctl restart iscsi systemctl enable iscsi #重起iscsid服务,仅仅是刷新客户端声称的名称 systemctl restart iscsi #添加iSCSI 2100M分区 fdisk /dev/sdb +2100M partprobe /dev/sdb #刷新分区 lsblk #格式化为ext4文件系统类型? mkfs.ext4 /dev/sdb2 #挂载到 /mnt/data umount /mnt mkdir /mnt/data mount /mnt/data mount /dev/sdb2 /mnt/data #系统启动自动挂载 vim /etc/fstab /dev/sdb2 /mnt/data ext4 defaults 0 0 mount -a df -h
5.10
案例ISCSI练习
-
为svr7添加一块10G硬盘
-
在svr7操作,采用MBR分区模式利用/dev/sdb/划分一个主分区,大小为5G
lsblk fdisk /dev/sdb n +5G w lsblk
-
在svr7创建iscsi服务,磁盘名为iqn.2020-05.com.example:server,
服务端口号为3260,使用nsd做后端卷,大小为5Gyum -y install targetcli #安装服务软件包 targetcli systemctl stop firewalld #关闭防火墙 targetcli #运行 targetcli 命令进行配置 ls #创建后端存储 backstores/block create name=nsd dev=/dev/sdb1 ls #创建磁盘组target,使用IQN名称规范 iscsi/ create iqn.2020-05.com.example:server #创建lun关联 iscsi/iqn.2020-05.com.example:server/tpg1/luns/ create /backstores/block/nsd #设置访问控制(acl),设置客户端的名称 iscsi/iqn.2020-05.com.example:serve/tpg1/acls create iqn.2020-05.com.example:client ls exit systemctl restart target getenforce 0 systemctl status firewalld.service
-
在pc207上连接使用服务端提供的iqn.2020-05.com.example:server,
并利用共享过来的磁盘划分一个主分区,大小为2G,格式化xfs文件系统类型,
挂载到/data文件夹下#安装客户端软件 yum -y install iscsi-initiator-utils rpm -q iscsi-initiator-utils #修改配置文件,指定客户端声称的名称 vim /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2020-05.com.example:client #重起iscsid服务,刷新客户端声称的名称 systemctl restart iscsid #利用命令发现服务端共享存储 man iscsiadm #查看iscsiadm帮助 /example按n向下匹配,按b向上匹配 iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.7 --discover #重启iscsi服务(主服务),使用共享存储 systemctl restart iscsi lsblk fdisk /dev/sdb n +2G mkfs.xfs /dev/sdb1 mount /dev/sdb1 /data df -h
5.11 练习
案例:虚拟主机练习
-
配置域名为www.tedu.cn,访问页面内容为I AM KING.
yum -y install httpd vim /etc/httpd/conf.d/nsd01.conf <VirtualHost *:80> ServerName www.tedu.cn DocumentRoot /var/www/tedu </VirtualHost> <VirtualHost *:80> ServerName www0.qq.com DocumentRoot /var/www/qq </VirtualHost> <VirtualHost *:80> ServerName www.baidu.com DocumentRoot /var/www/baidu </VirtualHost> mkdir /var/www/qq /var/www/baidu /var/www/tedu echo I AM KING > /var/www/tedu/index.html
-
配置域名为www0.qq.com,访问页面内容为I GOOD STUDY.
echo I GOOD STUDY > /var/www/qq/index.html
-
配置域名为www.baidu.com,访问页面内容为I AM girl.
echo I AM girl > /var/www/qq/index.html systemctl restart httpd
-
用客户端pc207测试访问3个页面
vim /etc/host 192.168.4.7 www.baidu.com 192.168.4.7 www.tedu.cn 192.168.4.7 www0.qq.com curl www.baidu.com curl www.tedu.cn www0.qq.com
-
书写页面内容为wo shi abc,用pc207测试页面内容(用IP地址访问)
#svr7 echo "wo shi abc" > /var/www/html/index.html vim /etc/httpd/conf.d/nsd01.conf <VirtualHost *:80> ServerName www.test.cn DocumentRoot /var/www/html </VirtualHost> systemctl restart httpd.service #pc207 vim /etc/hosts 192.168.4.7 www.test.cn curl www.test.cn
案例15:为虚拟机A配置以下虚拟Web主机
实现三个网站的部署
-
实现客户端访问server0.example.com网页内容为 大圣归来
-
实现客户端访问www0.example.com网页内容为 大圣又归来
-
实现客户端访问webapp0.example.com网页内容为 大圣累了
setenforce 0 systemctl stop firewalld.services #关闭防火墙 yum -y install httpd vim /etc/httpd/conf.d/nsd01.conf <VirtualHost *:80> ServerName server0.example.com DocumentRoot /var/www/server0 </VirtualHost> <VirtualHost *:80> ServerName www0.example.com DocumentRoot /var/www/www0 </VirtualHost> <VirtualHost *:80> ServerName webapp0.example.com DocumentRoot /var/www/webapp0 </VirtualHost> mkdir /var/www/server0 /var/www/www0 /var/www/webapp0 echo "大圣归来" > /var/www/server0/index.html echo "大圣又归来" > /var/www/www0/index.html echo "大圣累了" > /var/www/webapp0/index.html systemctl restart httpd #客户端测试 echo 192.168.4.10 server0.example.com >> /etc/hosts echo 192.168.4.10 www0.example.com >> /etc/hosts echo 192.168.4.10 webapp0.example.com >> /etc/hosts curl server0.example.com curl www0.example.com curl webapp0.example.com
案例16:为虚拟机A配置web服务访问控制
-
修改默认网页文件位置为/webapp1
#服务端配置 mkdir /webapp1 vim /etc/httpd/conf/httpd.conf DocumentRoot /webapp1
-
实现访问/webapp1页面文件为index.html,内容为奔跑吧 骆驼
#服务端配置 echo "奔跑吧 骆驼" > /webapp1/index.html systemctl restart httpd #客户端测试 curl http://192.168.4.7 #出现测试页面
案例17:发布iSCSI网络磁盘
配置 A提供 iSCSI 服务,要求如下:
-
磁盘名为iqn.2020-06.com.example:server0
-
服务端口为 3260
-
使用 iscsi_store(后端存储的名称) 作其后端卷,其大小为 3GiB
-
在A配置客户端ACL为iqn.2020-06.com.example:desktop0
fdisk /dev/sdb +3G partprobe /dev/sdb #刷新分区 lsblk yum -y install targetcli #安装服务软件包 targetcli systemctl stop firewalld #关闭防火墙 targetcli #运行 targetcli 命令进行配置 ls #创建后端存储 backstores/block create dev=/dev/sdb1 name=store #创建磁盘组target,使用IQN名称规范 iscsi/ create iqn.2020-06.com.example:server0 #创建lun关联 iscsi/iqn.2020-06.com.example:server0/tpg1/luns create /backstores/block/store #设置访问控制(acl),设置客户端的名称 iscsi/iqn.2020-06.com.example:server0/tpg1/acls create iqn.2020-06.com.example:desktop0 ls exit systemctl restart target.service
-
配置虚拟机B使用虚拟机A提供 iSCSI 服务
#安装客户端软件 yum -y install iscsi-initiator-utils rpm -q iscsi-initiator-utils #修改配置文件,指定客户端声称的名称 vim /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2020-06.com.example:desktop0 #重起iscsid服务,仅仅是刷新客户端声称的名称 systemctl restart iscsid #利用命令发现服务端共享存储(A的ip地址:192.168.4.7) man iscsiadm #查看iscsiadm帮助 /example按n向下匹配,按b向上匹配 iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.7 --discover #重启iscsi服务(主服务),使用共享存储 systemctl restart iscsi lsblk
5.12 练习
在虚拟机svr7上配置NFS共享,完成如下操作
-
以读写的方式访问目录/public,只能被192.168.4.0/24系统访问
rpm -q nfs-utils yum -y install nfs-utils mkdir /public vim /etc/exports /public 192.168.4.0/24(rw,no_root_squash) #开放权限 systemctl restart nfs-server systemctl enable nfs-server systemctl stop firewall
-
在虚拟机pc207上访问NFS共享目录,挂载点为/nfs
rpm -q nfs-utils yum -y install nfs-utils showmount -e 192.168.4.7 mkdir /nfs mount 192.168.4.7:/public /nfs df -h ls /nfs
-
实现开机自动挂载
_netdev:声明网络设备,系统在网络服务配置完成后,再挂载本设备
vim /etc/fstab
192.168.4.7:/test /abc nfs defaults,_netdev 0 0
mount /abc
mount -a
df -h
5.17 练习
案例:
提供以下正向解析记录的解析
-
svr7.tedu.cn --> 192.168.4.7
pc207.tedu.cn --> 192.168.4.207
www.tedu.cn --> 192.168.4.100
#服务器配置
systemctl stop firewalld.service
setenforce 0
yum -y install bind bind-chroot.x86_64 #安装named包默认端口号53
rpm -q bind bind-chroot
vim /etc/named.conf
options {
directory "/var/named";
};
#指定这台机器要解析的域名
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
named-checkconf /etc/named.conf #检查主配置文件是否存在语法问题
cp -p /var/named/named.localhost /var/named/tedu.cn.zone
#第二种方法:相对路径方式
cd /var/named/
cp -p named.localhost tedu.cn.zone
vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7.tedu.cn.
svr7.tedu.cn. A 192.168.4.7
pc207.tedu.cn. A 192.168.4.207
www.tedu.cn. A 192.168.4.100
named-checkzone tedu.cn /var/named/tedu.cn.zone #检查地址库文件是否存在语法问题
systemctl restart services #重启服务
-
在客户机上验证查询结果
#客户端测试 yum -y install bind-utils echo "nameserver 192.168.4.7" > /etc/resolv.conf nslookup pc207.tedu.cn nslookup www.tedu.cn
5.18 练习
案例:构建多区域DNS
实现以下正向解析记录
-
访问www.tedu.cn —> 192.168.4.100
-
访问www.baidu.com —> 10.20.30.40
-
访问ftp.baidu.com —> 50.60.70.80
#服务器配置 systemctl stop firewalld.service setenforce 0 yum -y install bind bind-chroot.x86_64 #安装named包默认端口号53 rpm -q bind bind-chroot vim /etc/named.conf #指定这台机器要解析的域名 options { directory "/var/named"; }; zone "tedu.cn" IN { type master; file "tedu.cn.zone"; }; zone "baidu.com" IN { type master; file "baidu.com.zone"; }; named-checkconf /etc/named.conf #检查主配置文件是否存在语法问题 cp -p /var/named/named.localhost /var/named/tedu.cn.zone cp -p /var/named/named.localhost /var/named/baidu.com.zone vim /var/named/tedu.cn.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum tedu.cn. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.100 vim /var/named/baidu.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum baidu.com. NS svr7 svr7 A 192.168.4.7 www A 10.20.30.40 ftp A 50.60.70.80 named-checkzone tedu.cn /var/named/tedu.cn.zone #检查地址库文件是否存在语法问题 named-checkzone baidu.com /var/named/baidu.com.zone systemctl restart services #重启服务 #客户端测试 yum -y install bind-utils echo "nameserver 192.168.4.7" > /etc/resolv.conf nslookup www.tedu.cn nslookup www.baidu.com nslookup ftp.baidu.com
5.19 练习
案例:搭建主/从DNS服务器
- 准备3台虚拟机,主机名及IP地址要求如下:
主机名 | IP地址 |
---|---|
svr7.tedu.cn | 192.168.4.7 |
pc207.tedu.cn | 192.168.4.207 |
A.tedu.cn | 192.168.4.10 |
虚拟机svr7
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.4.7/24 connection.autoconnect yes
nmcli connection up ens33
ifconfig
hostname svr7.tedu.cn
echo svr7.tedu.cn > /etc/hostname
虚拟机pc207
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.4.207/24 connection.autoconnect yes
nmcli connection up ens33
ifconfig
hostname pc207.tedu.cn
echo pc207.tedu.cn > /etc/hostname
虚拟机A
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.4.10/24 connection.autoconnect yes
nmcli connection up ens33
ifconfig
hostname A.tedu.cn
echo A.tedu.cn > /etc/hostname
- 构建主/从DNS服务
主DNS | svr7.tedu.cn | 192.168.4.7 |
---|---|---|
从DNS | pc207.tedu.cn | 192.168.4.207 |
提供 | www.tedu.cn | 1.2.3.4 |
用虚拟机A测试。
虚拟机svr7
yum -y install bind bind-chroot.x86_64
vim /etc/named.conf
options {
directory "/var/named";
allow-transfer { 192.168.4.207; };
};
zone "tedu.cn." IN {
type master;
file "tedu.cn.zone";
};
cp -p /var/named/named.localhost /var/named/tedu.cn.zone
vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7
tedu.cn. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 1.2.3.4
systemctl restart named #重启服务
systemctl stop firewalld.service
setenforce 0
虚拟机pc207
yum -y install bind bind-chroot.x86_64
vim /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn." IN {
type slave;
file "/var/named/slaves/tedu.cn.slave";
masters { 192.168.4.7; };
};
systemctl restart named
systemctl stop firewalld.service
setenforce 0
虚拟机A
vim /etc/resolv.conf
nameserver 192.168.4.7
nameserver 192.168.4.207
nslookup www.tedu.cn
5.20 练习
多区域DNS分离解析
- 分类(配户端相同)相同:
192.168.4.207 --> www.tedu.cn --> 192.168.4.100
www.qq.com
其他地址 --> www.tedu.cn --> 1.2.3.4
www.qq.com
- 分类(匹配客户端来源不相同)不相同:
客户端192.168.4.207 --> www.tedu.cn --> 192.168.4.100
客户端其他地址 --> www.tedu.cn --> 1.2.3.4
客户端192.168.4.10 --> www.qq.com -->192.168.10.100
客户端其他地址 --> www.qq.com --> 172.25.0.11
分析:
192.168.4.207 --> www.tedu.cn --> 192.168.4.100 --> 地址库tedu.cn.zone
192.168.4.207 --> www.qq.com --> 172.25.0.11 --> qq.com.other
192.168.4.10 --> www.tedu.cn --> 1.2.3.4 --> tedu.cn.other
192.168.4.10 --> www.qq.com --> 192.168.10.100 --> qq.com.other
其他地址 --> www.tedu.cn --> 1.2.3.4 --> tedu.cn.other
其他地址 --> www.qq.com --> 172.25.0.11 --> qq.com.zone
#服务端(svr7)
yum -y install bind bind-chroot
vim /etc/named.conf
options {
directory "/var/named";
};
view "nsd" {
match-clients { 192.168.4.207; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone"; #解析结果为192.168.4.100
};
zone "qq.com" IN {
type master;
file "qq.com.zone"; #解析结果为172.25.0.11
};
};
view "vip" {
match-clients { 192.168.4.10; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.other"; #解析结果为1.2.3.4
};
zone "qq.com" IN {
type master;
file "qq.com.other"; #解析结果为192.168.10.100
};
};
view "others" {
match-clients { any; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.other"; #解析结果为1.2.3.4
};
zone "qq.com" IN {
type master;
file "qq.com.zone"; #解析结果为172.25.0.11
};
};
cd /var/named/
cp -p named.localhost tedu.cn.zone
vim tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 1.2.3.4
cp -p tedu.cn.zone tedu.cn.other
vim tedu.cn.other
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.100
cp -p tedu.cn.zone qq.com.zone
vim qq.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
qq.com. NS svr7
svr7 A 192.168.4.7
www A 172.25.0.11
cp -p qq.com.zone qq.com.other
vim qq.com.other
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
qq.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.10.100
systemctl restart named
客户机(pc207)
echo "nameserver 192.168.4.7" > /etc/resolv.conf
yum -y install bind-utils
nslookup www.qq.com
nslookup www.tedu.cn
客户机A
echo "nameserver 192.168.4.7" > /etc/resolv.conf
nslookup www.qq.com
nslookup www.tedu.cn
服务端(svr7)
echo "nameserver 192.168.4.7" > /etc/resolv.conf
yum -y install bind-utils
nslookup www.qq.com
nslookup www.tedu.cn
案例
web 服务器和 DNS 服务结合(web 服务器做需要开启基于域名的虚拟主机,DNS 需要使用分离解析技术)
- | 主机名 | ip地址 |
---|---|---|
虚拟机 A | A.tedu.cn | 192.168.4.10 |
虚拟机 B | B.tedu.cn | 192.168.4.20 |
虚拟机 C | C.tedu.cn | 192.168.4.208 |
虚拟机 svr7 | svr7.tedu.cn | 192.168.4.7 |
虚拟机 pc207 | pc207.tedu.cn | 192.168.4.207 |
虚拟机 A 操作:
#1.安装软件包 httpd
yum -y install httpd
#2.建立修改调用配置文件
vim /etc/httpd/conf.d/nsd01.conf
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
<VirtualHost *:80>
ServerName www.163.com
DocumentRoot /var/www/163
</VirtualHost>
mkdir /var/www/qq /var/www/163
echo '<h1> Web1 QQ' > /var/www/qq/index.html
echo '<h1> Web1 163' > /var/www/163/index.html
systemctl restart httpd
虚拟机 B 操作:
yum -y install httpd
#从虚拟机A拷贝nsd01配置文件
scp /etc/httpd/conf.d/nsd01.conf 192.168.4.20:/etc/httpd/conf.d/
mkdir /var/www/qq /var/www/163
echo '<h1>Web2 QQ' > /var/www/qq/index.html
echo '<h1>Web2 163' > /var/www/163/index.html
systemctl restart httpd
虚拟机 svr7 操作:
#1、修改主配置文件
vim /etc/named.conf
……
view "vip" {
match-clients { 192.168.4.207; };
zone "163.com" IN {
type master;
file "163.com.zone";
};
zone "qq.com" IN {
type master;
file "qq.com.zone";
};
};
view "other" {
match-clients { any; };
zone "163.com" IN {
type master;
file "163.com.other";
};
zone "qq.com" IN {
type master;
file "qq.com.other";
};
};
#2、建立地址库文件
cd /var/named/
cp -p qq.com.zone 163.com.zone
cp -p qq.com.zone 163.com.other
vim 163.com.zone
…….
163.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.10
vim qq.com.zone
…
qq.com. NS svr7
svr7 A 192.168.4.7
www A 192.18.4.10
vim 163.com.other
…
163.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.20
vim qq.com.other
……
qq.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.20
systemctl restart named
测试:指定 DNS 服务器地址
虚拟机pc207
echo nameserver 192.168.4.7 > /etc/resolv.conf
curl www.qq.com
curl www.163.com
虚拟机C
echo nameserver 192.168.4.7 > /etc/resolv.conf
curl www.qq.com
curl www.163.com
6.2 练习
案例19:普通NFS共享的实现
-
只读的方式共享目录 /public,只允许192.168.4.0网段访问
rpm -q nfs-utils yum -y install nfs-utils mkdir /public touch /public/p1.txt echo "/public *(ro)" >> /etc/exports
-
可读写共享目录/protected,允许所有人访问
mkdir /protected touch /protected/p2.txt echo "/protected 192.168.4.0/24(rw,no_root_squash)" >> /etc/exports systemctl restart nfs-server systemctl enable nfs-server systemctl stop firewall.service
-
在虚拟机 B上访问NFS共享目录
3.1. 将A 的 /public 挂到本地 /nfsmount#虚拟机B操作 yum -y install nfs-utils showmount -e 192.168.4.10 mkdir /nfsmount mount 192.168.4.10:/public /nfsmount df -h ls /nfsmount
-
这些文件系统在系统启动时自动挂载
4.1. 将/protected实现触发挂载到/abc/mynfs下mkdir -p /abc/mynfs echo "192.168.4.10:/public /nfsmount nfs defaults,_netdev 0 0" >> /etc/fstab echo "192.168.4.10:/protected /abc/mynfs nfs defaults,_netdev 0 0" >> /etc/fstab umount /nfsmount mount -a df -h
案例20:iscsi磁盘共享
- 配置 虚拟机A提供 iSCSI 服务,要求如下:
- 磁盘名为iqn.2020-08.tedu.cn:server0
- 服务端口为 3260
- 使用 store(后端存储的名称) 作其后端卷,其大小为 3GiB
- 配置客户端ACL为iqn.2020-08.tedu.cn:desktop0
- 配置虚拟机B使用 虚拟机svr7提供 iSCSI 服务
partprobe /dev/sdc
lsblk
yum -y install targetcli
systemctl stop firewalld
targetcli
ls
backstores/block create dev=/dev/sdc1 name=store
iscsi/ create iqn.2020-08.tedu.cn:server0
iscsi/iqn.2020-08.tedu.cn:server0/tpg1/luns create /backstores/block/store
iscsi/iqn.2020-08.tedu.cn:server0/tpg1/acls create iqn.2020-08.tedu.cn:desktop0
ls
exit
systemctl restart target.service
#虚拟机B
yum -y install iscsi-initiator-utils
rpm -q iscsi-initiator-utils
echo "InitiatorName=iqn.2020-08.tedu.cn:desktop0" > /etc/iscsi/initiatorname.iscsi
systemctl restart iscsid
iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.10 --discover
systemctl restart iscsi
systemctl enable iscsi
systemctl restart iscsi
lsblk
案例21:NTP时间同步
- 在虚拟机A设置ntp时间同步
- 设置时间服务器上层与0.centos.pool.ntp.org同步
- 设置本地服务器层数为10
- 允许192.168.4.0/24网络的主机同步时间
- 客户端B验证时间是否同步
yum -y install chrony
rpm -qc chrony #查看配置文件(.conf结尾的文件)
vim /etc/chrony.conf
server 0.centos.pool.ntp.org iburst #网络标准时间服务器(快速同步)
allow 192.168.4.0/24 #允许同步时间的主机网络段
local statum 10 #访问层数
systemctl restart chronyd #重启时间同步服务
setenforce 0
systemctl stop firewalld #关闭防火墙
#虚拟机B
vim /etc/chrony.conf
server 192.168.4.10 iburst #指定要同步时间的服务器(192.168.4.7)
systemctl restart chronyd #重启时间同步服务
chronyc sources -v #验证时间是否同步成功
案例22:利用FTP服务实现网络yum源
-
虚拟机A构建ftp服务
yum -y install vsftpd systemctl restart vsftpd
-
利用ftp服务提供Centos7光盘内容,自定义yum仓库内容
ls /var/ftp/ mkdir /var/ftp/centos mount /dev/cdrom /var/ftp/centos/ ls /var/ftp//centos/ firefox ftp://192.168.4.10/centos #虚拟机软件-toos.tar.gz -> /root tar -xf tools.tar.gz ls tools/other/ mkdir /var/ftp/other/ cp tools/other/* /var/ftp/other/ ls /var/ftp/other createrepo /var/ftp/other/ ls /var/ftp/other
-
利用虚拟机B进行测试,并安装软件包sl
vim /etc/yum.repos.d/mnt.repo [centos] name=Centos7.5 baseurl=ftp://192.168.4.10/centos gpgcheck=0 [myrpm] name=myyum baseurl=ftp://192.168.4.10/other gpgcheck=0 yum clean all yum repolist yum -y install sl sl
如有侵权,请联系作者删除