]# yum -y install qemu-kvm #提供底层仿真支持
]# yum -y install libvirt-daemon #守护进程,管理虚拟机
]# yum -y install libvirt-client #用户端软件,提供客户端管理命令
]# yum -y install libvirt-daemon-driver-qemu #连接 qemu 的驱动
]# yum -y install virt-manager #图形管理工具
]# virt-manager #打开虚拟机图形管理工具
]# virsh nodeinfo
CPU 型号: x86_64
CPU: 4
CPU 频率: 2591 MHz
CPU socket: 4
每个 socket 的内核数: 1
每个内核的线程数: 1
NUMA 单元: 1
内存大小: 8388020 KiB
]# virsh list [--all]
[root@svr7 ~]# virsh list
Id 名称 状态
----------------------------------------------------
2 centos7.0 running
]# virsh dominfo 虚拟机名称
]# virsh start或reboot或shutdown 虚拟机名称
]# virsh destroy 虚拟机名称
]# virsh autostart [--disable] 虚拟机名称
xml配置文件:
磁盘镜像文件:
[root@svr7 ~]# virsh destroy centos7.0
[root@svr7 ~]# cd /var/lib/libvirt/images/
[root@svr7 images]# cp centos7.0.qcow2 nsd01.qcow2
[root@svr7 images]# ls
centos7.0.qcow2 nsd01.qcow2
[root@svr7 images]# cd /etc/libvirt/qemu/
[root@svr7 qemu]# cp centos7.0.xml nsd01.xml
[root@svr7 qemu]# ls
centos7.0.xml networks nsd01.xml
[root@svr7 qemu]# vim nsd01.xml
<name>nsd01</name> #修改xml文件中定义虚拟机名字的行
<source file='/var/lib/libvirt/images/nsd01.qcow2'/>#修改xml文件中定义虚拟机磁盘镜像文件的行
<uuid>6516.......</uuid> #定义UUID的行全部删除
<mac address='5......:cf'/> #定义Mac地址的行全部删除
[root@svr7 ~]# virsh define /etc/libvirt/qemu/nsd01.xml
定义域 nsd01(从 /etc/libvirt/qemu/nsd01.xml)
[root@svr7 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- centos7.0 关闭
- nsd01 关闭
[root@svr7 ~]# virsh start nsd01
域 nsd01 已开始
[root@svr7 ~]# virsh list
Id 名称 状态
----------------------------------------------------
3 nsd01 running
[root@svr7 ~]# virsh destroy nsd01 #关闭虚拟机nsd01
[root@svr7 ~]# cd /var/lib/libvirt/images/ #切换到磁盘文件路径
[root@svr7 images]# cp nsd01.qcow2 stu05.qcow2
[root@svr7 images]# ls
[root@svr7 /]# virsh edit nsd01 #编辑并且导入
编辑了域 stu05 XML 配置。
1)虚拟机的名字:<name>stu05</name>
2)虚拟机的UUID:<uuid>6516.......</uuid> #整行删除
3)修改虚拟机的磁盘镜像文件:
<source file='/var/lib/libvirt/images/stu05.qcow2'/>
4)虚拟机的网卡MAC地址:<mac address='5......:cf'/> #整行删除
[root@svr7 /]# virsh list --all
[root@svr7 ~]# virsh shutdown nsd01
域 nsd01 被关闭
[root@svr7 ~]# virsh undefine nsd01
域 nsd01 已经被取消定义
[root@svr7 ~]# virsh list --all
[root@svr7 ~]# rm -rf /var/lib/libvirt/images/nsd01.qcow2
Copy On Write,写时复制
快速生成磁盘镜像文件
命令格式:
[root@svr7 ~]# cd /var/lib/libvirt/images/
[root@svr7 images]# ls
centos7.0.qcow2
[root@svr7 images]# qemu-img create -f qcow2 -b centos7.0.qcow2 nsd01.qcow2
Formatting 'nsd01.qcow2', fmt=qcow2 size=21474836480 backing_file='centos7.0.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
[root@svr7 images]# du -sh nsd01.qcow2
196K nsd01.qcow2
[root@svr7 images]# qemu-img info nsd01.qcow2
image: nsd01.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes) #虚拟大小
disk size: 196K #实际占用磁盘空间
cluster_size: 65536
backing file: centos7.0.qcow2 #后端盘
Format specific information:
compat: 1.1
lazy refcounts: false
[root@svr7 qemu]# pwd
/etc/libvirt/qemu
[root@svr7 qemu]# ls
centos7.0.xml networks
[root@svr7 qemu]# cp centos7.0.xml nsd01.xml
[root@svr7 qemu]# vim nsd01.xml
<name>nsd01</name> #修改xml文件中定义虚拟机名字的行
<source file='/var/lib/libvirt/images/nsd01.qcow2'/> #修改xml文件中定义虚拟机磁盘镜像文件的行
<uuid>6516.......</uuid> #定义UUID的行全部删除
<mac address='5......:cf'/> #定义Mac地址的行全部删除
[root@svr7 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- centos7.0 关闭
[root@svr7 ~]# virsh define /etc/libvirt/qemu/nsd01.xml
定义域 nsd01(从 /etc/libvirt/qemu/nsd01.xml)
[root@svr7 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- centos7.0 关闭
- nsd01 关闭
使用 guestmount 工具
支持离线挂载 raw、qcow2 格式虚拟机磁盘
可以在虚拟机关机的情况下,直接修改磁盘中的文档
方便对虚拟机定制、修复、脚本维护
命令格式:
guestmount -a 虚拟机磁盘路径 -i /挂载点
[root@svr7 ~]# yum -y install libguestfs-tools-c
[root@svr7 ~]# guestmount -a /var/lib/libvirt/images/nsd01.qcow2 -i /mnt/
[root@svr7 ~]# guestmount -o nonempty -a /var/lib/libvirt/images/nsd01.qcow2 -i /mnt
[root@svr7 ~]# ls /mnt/
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
Web服务:提供页面内容
Web服务器:提供页面内容的机器
HTML : 超文本标记语言(书写网页的语言)
http协议:超文本传输协议
https协议:安全的超文本传输协议
可以提供Web服务功能的软件(httpd、Nginx、Tomcat)
默认的网页根目录 : /var/www/html
首页文件名 : index.html
默认的监听端口 : 80
URL 统一资源定位器
[root@svr7 ~]# yum -y install httpd #安装提供服务的软件
[root@svr7 ~]# systemctl start httpd #启动hhtpd服务
[root@svr7 ~]# systemctl enable httpd #设置开机自启
[root@svr7 ~]# vim /var/www/html/index.html #默认存放网页文件的路径
[root@svr7 ~]# cat /var/www/html/index.html
人在塔在
[root@pc207 ~]# curl http://192.168.4.7 #curl为非图形的浏览器
人在塔在
[root@svr7 ~]# mkdir /var/www/myweb #创建新的网页根目录
[root@svr7 ~]# echo "wo shi myweb" > /var/www/myweb/index.html
[root@svr7 ~]# vim /etc/httpd/conf/httpd.conf #修改httpd主配置文件
119 DocumentRoot "/var/www/myweb"
[root@svr7 ~]# systemctl restart httpd
[root@pc207 ~]# curl http://192.168.4.7 #客户端测试
wo shi myweb
<Directory 存放网页文件路径>
Require all denied #拒绝所有客户端访问
</Directory>
<Directory "/var/www"> #针对/var/www实行访问控制
Require all granted #允许所有客户端访问
</Directory>
[root@svr7 ~]# vim /etc/httpd/conf/httpd.conf
130 DocumentRoot "/webroot" #指定新的网页文件目录
131
132 <Directory "/webroot"> #针对/webroot实行访问控制
133 Require all granted #允许所有客户端访问
134 </Directory>
[root@svr7 ~]# mkdir /webroot
[root@svr7 ~]# echo wo shi webroot > /webroot/index.html
[root@svr7 ~]# systemctl restart httpd
[root@pc207 ~]# curl http://192.168.4.7
wo shi webroot
[root@svr7 ~]# vim /etc/httpd/conf/httpd.conf
42 Listen 8000
[root@svr7 ~]# systemctl restart httpd
[root@pc207 ~]# curl http://192.168.4.7:8000
wo shi webroot
由同一台服务器提供多个不同的Web站点
虚拟Web主机一旦启用,所有的站点都必须要用虚拟Web主机功能呈现
配置文件路径
[root@svr7 ~]# vim /etc/httpd/conf.d/nsd01.conf
[root@svr7 ~]# cat /etc/httpd/conf.d/nsd01.conf
<VirtualHost *:80> #在本机的所有IP地址都监听80端口
ServerName www.qq.com #指定网站名称
DocumentRoot /var/www/qq #指定存放网页路径
</VirtualHost>
<VirtualHost *:80>
ServerName www.baidu.com
DocumentRoot /var/www/baidu
</VirtualHost>
[root@svr7 ~]# mkdir /var/www/qq /var/www/baidu
[root@svr7 ~]# echo "wo shi qq" > /var/www/qq/index.html
[root@svr7 ~]# echo "wo shi baidu" > /var/www/baidu/index.html
[root@svr7 ~]# systemctl restart httpd
[root@pc207 ~]# vim /etc/hosts
192.168.4.7 www.qq.com www.baidu.com #只能为本机提供域名解析
[root@pc207 ~]# curl http://www.baidu.com
wo shi baidu
[root@pc207 ~]# curl http://www.qq.com
wo shi QQ
[root@svr7 ~]# vim /etc/httpd/conf.d/nsd01.conf
[root@svr7 ~]# cat /etc/httpd/conf.d/nsd01.conf
listen 8000
<VirtualHost *:8000>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
listen 9000
<VirtualHost *:9000>
ServerName www.baidu.com
DocumentRoot /var/www/baidu
</VirtualHost>
[root@svr7 ~]# systemctl restart httpd
[root@pc207 ~]# curl http://www.baidu.com:9000
wo shi baidu
[root@pc207 ~]# curl http://www.qq.com:8000
wo shi QQ
Network File System 网络文件系统
用途:为客户机提供共享使用的文件夹
协议:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)
所需软件包:nfs-utils
系统服务:nfs-server
检查系统中是否安装了nfs-utils
[root@svr7 ~]# yum -y install nfs-utils
[root@svr7 ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.54.el7.x86_64
[root@svr7 ~]# mkdir /public
[root@svr7 ~]# echo 123 > /public/1.txt
[root@svr7 ~]# ls /public
1.txt
[root@svr7 ~]# vim /etc/exports
/public *(ro) #允许所有客户端以只读方式进行访问
[root@svr7 ~]# systemctl restart rpcbind #必须优先启动rpcbind服务
[root@svr7 ~]# systemctl restart nfs-server
[root@pc207 ~]# mkdir /mnt/nfsmount
[root@pc207 ~]# mount 192.168.4.7:/public /mnt/nfsmount
[root@pc207 ~]# ls /mnt/nfsmount
1.txt
[root@pc207 ~]# vim /etc/fstab
192.168.4.7:/public /mnt/nfsmount nfs defaults,_netdev 0 0
[root@pc207 ~]# mount -a
由 autofs 服务提供的“按需访问”机制
主配置文件 /etc/auto.master
默认挂载配置文件, /etc/auto.misc
提供服务的软件包 autofs
安装软件
[root@pc207 ~]# yum -y install autofs
[root@pc207 ~]# systemctl restart autofs
[root@pc207 ~]# ls /misc/
[root@pc207 ~]# ls /misc/cd
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@pc207 ~]# cat /etc/auto.misc
#
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# Details may be found in the autofs(5) manpage
cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
# the following entries are samples to pique your imagination
#linux -ro,soft,intr ftp.example.org:/pub/linux
#boot -fstype=ext2 :/dev/hda1
#floppy -fstype=auto :/dev/fd0
#floppy -fstype=ext2 :/dev/fd0
#e2floppy -fstype=ext2 :/dev/fd0
#jaz -fstype=ext2 :/dev/sdc1
#removable -fstype=ext2 :/dev/hdd
[root@pc207 ~]# mkdir /nsd
[root@pc207 ~]# cat /etc/auto.master
/nsd /opt/nsd.txt
[root@pc207 ~]# cp /etc/auto.misc /opt/nsd.txt
[root@pc207 ~]# vim /opt/nsd.txt
[root@pc207 ~]# cat /opt/nsd.txt
dc -fstype=iso9660 :/dev/cdrom
tc -fstyoe=nfs 192.168.4.7:/public
挂载点目录 设备的文件系统类型 挂载的设备
[root@pc207 ~]# systemctl restart autofs
[root@pc207 ~]# ls /nsd/tc
1.txt
[root@pc207 ~]# ls /nsd/dc
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@pc207 ~]# ls /nsd/
dc tc
域名系统(服务)协议
DNS服务器的功能(互联网中的导航员)
根域名: . (一个点)
一级域名: .cn .us .hk .tw .kr .jp …
二级域名:.com.cn .net.cn .org.cn …
三级域名: dc.com.cn tc.com.cn nb.com.cn …
DNS服务器的分类
Full Qualified Domain Name
DNS服务器资源解析记录的类型
NS解析记录:声明DNS服务器
A解析记录:正向解析记录
CNAME解析记录:解析记录别名
BIND(Berkeley Internet Name Daemon)
BIND服务器端程序
主配置文件:/etc/named.conf #设置负责解析的域名
地址库文件:/var/named/ #完全合格的主机名与IP地址的对应关系
虚拟机A
[root@svr7 ~]# yum -y install bind-chroot bind
[root@svr7 ~]# cp /etc/named.conf /root
[root@svr7 ~]# vim /etc/named.conf
options {
directory "/var/named"; #指定地址库文件存放目录
};
zone "tedu.cn" IN { #指定本机负责解析的域名
type master; #指定本机为权威主服务器
file "tedu.cn.zone"; #地址库文件名字
};
[root@svr7 ~]# cd /var/named/
[root@svr7 named]# cp -p named.localhost tedu.cn.zone #-p保持权限不变
[root@svr7 named]# ls -l tedu.cn.zone
[root@svr7 named]# vim tedu.cn.zone
.......此处省略一万字
tedu.cn. NS svr7 #NAMESERVER 声明DNS服务器
svr7 A 192.168.4.7 #代表了正向解析记录
www A 1.1.1.1
ftp A 2.2.2.2
vip A 3.3.3.3
[root@svr7 named]# systemctl restart named
虚拟机B
[root@pc207 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@pc207 ~]# nslookup www.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 1.1.1.1
[root@pc207 ~]# nslookup ftp.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: ftp.tedu.cn
Address: 2.2.2.2
[root@pc207 ~]# nslookup vip.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: vip.tedu.cn
Address: 3.3.3.3
虚拟机A
[root@svr7 ~]# vim /etc/named.conf
[root@svr7 ~]# cat /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
zone "qq.com" IN {
type master;
file "qq.com.zone";
};
[root@svr7 ~]# cd /var/named/
[root@svr7 named]# cp -p named.localhost qq.com.zone
[root@svr7 named]# vim qq.com.zone
[root@svr7 named]# cat qq.com.zone
.......此处省略一万字
qq.com. NS svr7
svr7 A 192.168.4.7
www A 5.5.5.5
[root@svr7 named]# systemctl restart named
[root@pc207 ~]# nslookup www.qq.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.qq.com
Address: 5.5.5.5
**DNS****轮询:基于DNS的站点负载均衡
以www.qq.com为例
[root@svr7 /]# vim /var/named/qq.com.zone
.......此处省略一万字
qq.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.10
www A 192.168.4.20
www A 192.168.4.30
[root@svr7 /]# systemctl restart named
[root@pc207 ~]# ping www.qq.com #测试
[root@svr7 /]# vim /var/named/qq.com.zone
.......此处省略一万字
qq.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.10
www A 192.168.4.20
www A 192.168.4.30
\* A 6.6.6.6
qq.com. A 7.7.7.7
[root@svr7 /]# systemctl restart named
[root@pc207 ~]# nslookup wwww.qq.com #测试
[root@pc207 ~]# nslookup qq.com #测试
[root@svr7 /]# vim /var/named/qq.com.zone
.......此处省略一万字
qq.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.10
www A 192.168.4.20
www A 192.168.4.30
\* A 6.6.6.6
qq.com. A 7.7.7.7
vip A 8.8.8.8
mail CNAME vip
[root@svr7 /]# systemctl restart named
[root@pc207 ~]# nslookup mail.qq.com
Server: 192.168.4.7
Address: 192.168.4.7#53
mail.qq.com canonical name = vip.qq.com. #mail.qq.com规范名称= vip.qq.com.
Name: vip.qq.com
Address: 8.8.8.8
适用于同一个DNS组织
递归解析:客户端发送请求给首选DNS服务器,首选DNS服务器与其他的DNS服务器交互,最终将解析结果带回来过程
迭代解析:客户端发送请求给首选DNS服务器,首选DNS服务器告知下一个服务器的IP地址
虚拟机B:负责域名bj.tedu.cn(子域)
[root@pc207 ~]# yum -y install bind-chroot bind
[root@pc207 ~]# cp /etc/named.conf /root
[root@pc207 ~]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "bj.tedu.cn" IN {
type master;
file "bj.tedu.cn.zone";
};
[root@pc207 ~]# cd /var/named/
[root@pc207 named]# cp -p named.localhost bj.tedu.cn.zone
[root@pc207 named]# vim bj.tedu.cn.zone
[root@pc207 named]# cat bj.tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
bj.tedu.cn. NS pc207
pc207 A 192.168.4.207
www A 9.9.9.9
[root@pc207 named]# systemctl restart named
[root@svr7 /]# vim /var/named/tedu.cn.zone
.......此处省略一万字
tedu.cn. NS svr7
bj.tedu.cn. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 1.1.1.1
ftp A 2.2.2.2
vip A 3.3.3.3
[root@svr7 /]# systemctl restart named
[root@pc207 /]# nslookup www.bj.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Non-authoritative answer: #非权威解答
Name: www.bj.tedu.cn
Address: 9.9.9.9
[root@svr7 /]# vim /etc/named.conf
options {
directory "/var/named";
recursion no; #禁止DNS递归查询
};
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
zone "qq.com" IN {
type master;
file "qq.com.zone";
};
[root@svr7 /]# systemctl restart named
[root@pc207 /]# nslookup www.bj.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Non-authoritative answer:
*** Can't find www.bj.tedu.cn: No answer
[root@pc207 /]# dig www.bj.tedu.cn 192.168.4.7 #专门用于DNS查询过程的命令dig
虚拟机A:主DNS服务器,以tedu.cn域名为例
虚拟机B:从DNS服务器,以tedu.cn域名为例
[root@svr7 /]# man named.conf #参考man帮助
/allow
[root@svr7 /]# vim /etc/named.conf
options {
directory "/var/named";
allow-transfer { 192.168.4.207; }; #指定从服务器地址
};
.......此处省略一万字
[root@svr7 /]# vim /var/named/tedu.cn.zone
.......此处省略一万字
tedu.cn. NS svr7
tedu.cn. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 1.1.1.1
ftp A 2.2.2.2
vip A 3.3.3.3
[root@svr7 /]# systemctl restart named
[root@pc207 /]# yum -y install bind bind-chroot
[root@pc207 /]# ls -ld /var/named/slaves/
[root@pc207 /]# 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; }; #指定主DNS服务器IP地址
#保证named用户对目录有写入权限
};
[root@pc207 /]# ls /var/named/slaves/
[root@pc207 /]# systemctl restart named
[root@pc207 /]# ls /var/named/slaves/
tedu.cn.slave
数据的版本号:由管理员进行编写,由10个数字组成。越大版本越新
虚拟机A:
1.修改地址库文件
[root@svr7 /]# vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
2020061601 ; serial #数据的版本号
1D ; refresh #每个1天时间,主从自动交接一次
1H ; retry #重试时间间隔1小时
1W ; expire #失效时间1周
3H ) ; minimum #失效记录的记忆时间3小时
tedu.cn. NS svr7
tedu.cn. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 10.10.10.10
ftp A 2.2.2.2
vip A 3.3.3.3
[root@svr7 /]# systemctl restart named
[root@pc207 /]# nslookup www.tedu.cn 192.168.4.7
[root@pc207 /]# nslookup www.tedu.cn 192.168.4.207
作用:缓存解析结果,加快解析效率
一般应用于企业内网中。
[root@svr7 ~]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "dc.com" IN {
type master;
file "dc.com.zone";
};
[root@svr7 named]# vim dc.com.zone
........此处省略一万字
dc.com. NS svr7
svr7 A 192.168.4.7
www A 1.2.3.4
[root@svr7 named]# systemctl restart named
[root@svr7 named]# nslookup www.dc.com 192.168.4.7
[root@pc207 ~]# vim /etc/named.conf
options {
directory "/var/named";
forwarders { 192.168.4.7; }; #转发给真正的DNS服务器
};
[root@pc207 ~]# systemctl restart named
[root@pc207 ~]# nslookup www.dc.com 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53
Non-authoritative answer:
Name: www.dc.com
Address: 1.2.3.4
当收到客户机的DNS查询请求的时候
根据源地址集合将客户机分类
虚拟机A
[root@svr7 ~]# 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";
};
};
view "other" {
match-clients { any; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.other";
};
};
[root@svr7 ~]# cd /var/named/
[root@svr7 named]# cp -p named.localhost tedu.cn.zone
[root@svr7 named]# vim tedu.cn.zone
.......此处省略一万字
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.100
[root@svr7 named]# cp -p tedu.cn.zone tedu.cn.other
[root@svr7 named]# vim tedu.cn.other
.......此处省略一万字
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 1.2.3.4
[root@svr7 named]# systemctl restart
虚拟机A:测试
[root@svr7 named]# nslookup www.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 1.2.3.4
虚拟机B:测试
[root@pc207 ~]# nslookup www.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 192.168.4.100
[root@svr7 /]# vim /etc/named.conf
······························
acl test { 192.168.4.207; 192.168.4.1; 192.168.4.2; 192.168.4.3; };
view "nsd" {
match-clients { test; };
································
虚拟机A:构建DNS服务器
[root@svr7 /]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "qq.com" IN {
type master;
file "qq.com.zone";
};
[root@svr7 /]# cd /var/named/
[root@svr7 named]# cp -p named.localhost qq.com.zone
[root@svr7 named]# vim qq.com.zone
.......此处省略一万字
qq.com. NS svr7
svr7 A 192.168.4.7
www A 1.2.3.4
[root@svr7 /]# vim /var/named/qq.com.zone
.......此处省略一万字
qq.com. NS svr7
qq.com. MX 10 mail #声明邮件解析记录,优先级为10,数字越小越优先
svr7 A 192.168.4.7
mail A 192.168.4.7 #解析邮件服务器地址为192.168.4.7
www A 1.2.3.4
[root@svr7 /]# systemctl restart named
[root@svr7 /]# host -t MX qq.com #测试邮件交换记录,qq.com域名的邮件服务器
qq.com mail is handled by 10 mail.qq.com.
[root@svr7 /]# nslookup mail.qq.com
[root@svr7 /]# yum -y install postfix
[root@svr7 /]# vim /etc/postfix/main.cf
在末行模式 : set nu 开启行号功能
99 myorigin = qq.com #默认补全的域名后缀
116 inet_interfaces = all #在本机所有网卡的IP地址,提供邮件功能
164 mydestination = qq.com #判断为本域邮件的依据
[root@svr7 /]# systemctl restart postfix
[root@svr7 /]# useradd yg
[root@svr7 /]# useradd xln
[root@svr7 /]# mail -s 'test01' -r yg xln #交互式发邮件
hahaxixihehelele
. #只有一个点,代表发送
EOT
[root@svr7 /]# echo hahaxixi | mail -s '九阴真经' -r yg xln #非交互式发邮件
[root@svr7 /]# mail -u xln #以root的身份查看xln的邮件
\>N 1 [email protected] Wed Jun 17 16:44 18/508 "test01"
& 1 #输入邮件编号1
& quit
IP地址 | 主机名 | 角色 |
---|---|---|
192.168.4.7 | dns1.tedu.cn | DNS服务器 |
192.168.4.10 | web1.tedu.cn | Web服务器 |
192.168.4.20 | web2.tedu.cn | Web服务器 |
192.168.4.207 | client1.tedu.cn | 客户端1 |
192.168.4.208 | client2.tedu.cn | 客户端2 |
[root@dns1 ~]# hostname
dns1.tedu.cn
[root@dns1 ~]# ifconfig | head -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.4.7 netmask 255.255.255.0 broadcast 192.168.4.255
[root@dns1 ~]# firewall-cmd --set-default-zone=trusted
success
[root@dns1 ~]# setenforce 0
[root@web1 ~]# hostname
web1.tedu.cn
[root@web1 ~]# ifconfig | head -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.4.10 netmask 255.255.255.0 broadcast 192.168.4.255
[root@web1 ~]# firewall-cmd --set-default-zone=trusted
success
[root@web1 ~]# setenforce 0
[root@web1 ~]# getenforce
Permissive
[root@web2 ~]# hostname
web2.tedu.cn
[root@web2 ~]# ifconfig | head -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.4.20 netmask 255.255.255.0 broadcast 192.168.4.255
[root@web2 ~]# firewall-cmd --set-default-zone=trusted
success
[root@web2 ~]# setenforce 0
[root@client1 ~]# hostname
client1.tedu.cn
[root@client1 ~]# ifconfig |head -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.4.207 netmask 255.255.255.0 broadcast 192.168.4.255
[root@client1 ~]# firewall-cmd --set-default-zone=trusted
success
[root@client1 ~]# setenforce 0
[root@client2 ~]# hostname
client2.tedu.cn
[root@client2 ~]# ifconfig | head -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.4.208 netmask 255.255.255.0 broadcast 192.168.4.255
[root@client2 ~]# firewall-cmd --set-default-zone=trusted
success
[root@client2 ~]# setenforce 0
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# vim /etc/httpd/conf.d/web1.conf
[root@web1 ~]# cat /etc/httpd/conf.d/web1.conf
<VirtualHost *:80>
ServerName www.163.com
DocumentRoot /var/www/163
</VirtualHost>
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
[root@web1 ~]# mkdir /var/www/163 /var/www/qq
[root@web1 ~]# echo "wo shi web1 163" > /var/www/163/index.html
[root@web1 ~]# echo "wo shi web1 qq" > /var/www/qq/index.html
[root@web1 ~]# systemctl restart httpd
[root@web1 ~]# systemctl enable httpd
[root@client1 ~]# vim /etc/hosts #临时添加,测试完成后删除
[root@client1 ~]# tail -1 /etc/hosts
192.168.4.10 www.163.com www.qq.com
[root@client1 ~]# curl http://www.163.com
wo shi web1 163
[root@client1 ~]# curl http://www.qq.com
wo shi web1 qq
[root@web2 ~]# yum -y install httpd
[root@web2 ~]# vim /etc/httpd/conf.d/web2.conf
[root@web2 ~]# cat /etc/httpd/conf.d/web2.conf
<VirtualHost *:80>
ServerName www.163.com
DocumentRoot /var/www/163
</VirtualHost>
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
[root@web2 ~]# mkdir /var/www/163 /var/www/qq
[root@web2 ~]# echo "wo shi web2 163" > /var/www/163/index.html
[root@web2 ~]# echo "wo shi web2 qq" > /var/www/qq/index.html
[root@web2 ~]# systemctl restart httpd
[root@web2 ~]# systemctl enable httpd
[root@client2 ~]# vim /etc/hosts #临时添加,测试完成后删除
[root@client2 ~]# tail -1 /etc/hosts
192.168.4.20 www.163.com www.qq.com
[root@client2 ~]# curl http://www.163.com
wo shi web2 163
[root@client2 ~]# curl http://www.qq.com
wo shi web2 qq
[root@dns1 ~]# yum -y install bind bind-chroot
[root@dns1 ~]# vim /etc/named.conf
[root@dns1 ~]# cat /etc/named.conf
options {
directory "/var/named";
};
view "web1" {
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 "web2" {
match-clients { 192.168.4.208; };
zone "163.com" IN {
type master;
file "163.com.other";
};
zone "qq.com" IN {
type master;
file "qq.com.other";
};
};
[root@dns1 ~]# cp /etc/named.conf /root/
[root@dns1 ~]# cd /var/named/
[root@dns1 named]# cp -p named.localhost 163.com.zone
[root@dns1 named]# vim 163.com.zone
[root@dns1 named]# cat 163.com.zone
···································省略一万字
163.com. NS dns1
dns1 A 192.168.4.7
www A 192.168.4.10
[root@dns1 named]# cp -p named.localhost qq.com.zone
[root@dns1 named]# vim qq.com.zone
[root@dns1 named]# cat qq.com.zone
···································省略一万字
qq.com. NS dns1
dns1 A 192.168.4.7
www A 192.168.4.10
[root@dns1 named]# cp -p 163.com.zone 163.com.other
[root@dns1 named]# vim 163.com.other
[root@dns1 named]# cat 163.com.other
163.com. NS dns1
dns1 A 192.168.4.7
www A 192.168.4.20
[root@dns1 named]# cp -p qq.com.zone qq.com.other
[root@dns1 named]# vim qq.com.other
[root@dns1 named]# cat qq.com.other
qq.com. NS dns1
dns1 A 192.168.4.7
www A 192.168.4.20
[root@dns1 named]# systemctl restart named
[root@dns1 ~]# systemctl enable named
[root@dns1 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@web1 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@web2 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@client1 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@client2 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@client1 ~]# nslookup www.qq.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.qq.com
Address: 192.168.4.10
[root@client1 ~]# nslookup www.163.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.163.com
Address: 192.168.4.10
[root@client1 ~]# curl http://www.163.com
wo shi web1 163
[root@client1 ~]# curl http://www.qq.com
wo shi web1 qq
[root@client2 ~]# nslookup www.163.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.163.com
Address: 192.168.4.20
[root@client2 ~]# nslookup www.qq.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.qq.com
Address: 192.168.4.20
[root@client2 ~]# curl http://www.163.com
wo shi web2 163
[root@client2 ~]# curl http://www.qq.com
wo shi web2 qq
Network Time Protocol(网络时间协议)
它用来同步网络中各个计算机的时间的协议
210.72.145.39 (国家授时中心服务器IP地址)
虚拟机A:构建时间服务器
[root@svr7 /]# yum -y install chrony
[root@svr7 /]# vim /etc/chrony.conf
allow all #允许所有客户端同步时间
local stratum 10 #本机为时间服务器第10层
[root@svr7 /]# systemctl restart chronyd
[root@pc207 ~]# yum -y install chrony
[root@pc207 ~]# vim /etc/chrony.conf
server 192.168.4.7 iburst #指定与192.168.4.7进行同步时间
[root@pc207 ~]# systemctl restart chronyd
[root@pc207 ~]# chronyc sources -v #查看时间同步信息的命令
网络装机的优势
规模化:同时装配多台主机
自动化:装系统、配置各种服务
远程实现:不需要光盘、U盘等物理安装介质
PXE,Pre-boot eXecution Environment
预启动执行环境,在操作系统之前运行
可用于远程安装
工作模式
PXE client 集成在网卡的启动芯片中
当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行
PXE服务端需要哪些服务组件?
DHCP服务,分配IP地址、定位引导程序
TFTP服务,提供引导程序下载
HTTP服务(或FTP/NFS),提供yum安装源
Dynamic Host Configuration Protocol
主要分配以下入网参数
IP地址/子网掩码/广播地址
默认网关地址、DNS服务器地址
DHCP地址分配的四次会话(以广播进行,先到先得)
服务端基本概念
租期:允许客户机租用IP地址的时间期限,单位为秒
作用域:分配给客户机的IP地址所在的网段
地址池:用来动态分配的IP地址的范围
构建DHCP服务器
[root@localhost ~]# yum -y install dhcp #安装DHCP
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf #编辑配置文件
:r /usr/share/doc/dhcp*/dhcpd.conf.example #末行模式读入模板文件
·································省略一万字
subnet 192.168.4.0 netmask 255.255.255.0 { #指定分配IP地址的网段
range 192.168.4.100 192.168.4.200; #分配的IP地址范围
option domain-name-servers 192.168.4.7; #指定DNS服务器地址
option routers 192.168.4.254; #指定网关地址
default-lease-time 600; #默认的租赁时间,600秒
max-lease-time 7200; #最大租赁时间
next-server 192.168.4.7; #指定下一个服务器地址
filename "pxelinux.0"; #指定网卡引导文件名称
}
[root@localhost ~]# systemctl restart dhcpd #重启DHCP服务
TFTP:简单的文件传输协议 默认端口:69
安装TFTP服务
[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# systemctl restart tftp
[root@localhost ~]# yum provides */pxelinux.0 #查询仓库中那个软件包产生该文件
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost ~]# ls /var/lib/tftpboot/
pxelinux.0
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /mnt/isolinux
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vmlinuz
boot.msg initrd.img isolinux.cfg splash.png vesamenu.c32
[root@localhost ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@localhost ~]# ls -R /var/lib/tftpboot/
/var/lib/tftpboot/:
pxelinux.0 pxelinux.cfg
/var/lib/tftpboot/pxelinux.cfg:
default
[root@localhost ~]# cp /mnt/isolinux/splash.png /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
[root@localhost ~]# ls /var/lib/tftpboot/
pxelinux.0 pxelinux.cfg splash.png vesamenu.c32
[root@localhost ~]# cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /var/lib/tftpboot/
[root@localhost ~]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 pxelinux.cfg splash.png vesamenu.c32 vmlinuz
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
1 default vesamenu.c32 #默认加载图形的模块
2 timeout 600 #读秒时间,60秒
10 menu background splash.png #背景图片
11 menu title NSD2005 PXE Server #菜单界面的标题
61 label linux #Linux标签
62 menu label ^Install CentOS 7 #选项的内容
63 menu default #读秒结束默认选择
64 kernel vmlinuz #运行内核
65 append initrd=initrd.img #运行驱动程序
#66行以下全部删除
FTP:文件传输协议 默认端口 21
搭建FTP服务
[root@localhost ~]# yum -y install vsftpd #安装vsftpd软件包
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# mkdir /var/ftp/centos #创建一个目录
[root@localhost ~]# mount /dev/cdrom /var/ftp/centos
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# curl ftp://192.168.4.7/centos/
[root@localhost ~]# vim /etc/yum.repos.d/mydvd.repo #必须要求Yum仓库的标识为[development]
[root@localhost ~]# cat /etc/yum.repos.d/mydvd.repo
[development]
name = mydvd
baseurl = file:///mydvd
enabled = 1
gpgcheck = 0
[root@localhost ~]# yum -y install system-config-kickstart
[root@localhost ~]# system-config-kickstart #运行它
[root@localhost ~]# cp /root/ks.cfg /var/ftp/
[root@localhost ~]# ls /var/ftp/
centos ks.cfg pub
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
[root@localhost ~]# tail -1 /var/lib/tftpboot/pxelinux.cfg/default
append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg
命令用法
同步与复制的差异
本地目录间的数据同步
[root@svr7 ~]# mkdir /mydir /todir
[root@svr7 ~]# cp /etc/passwd /etc/fstab /mydir/
[root@svr7 ~]# ls /mydir/
fstab passwd
[root@svr7 ~]# rsync -av /mydir/ /todir/
sending incremental file list
./
fstab
passwd
sent 2,839 bytes received 57 bytes 5,792.00 bytes/sec
total size is 2,669 speedup is 0.92
[root@svr7 ~]# ls /todir/
fstab passwd
[root@svr7 ~]# ls -l /todir/
总用量 8
-rw-r--r--. 1 root root 477 6月 20 10:32 fstab
-rw-r--r--. 1 root root 2192 6月 20 10:32 passwd
[root@svr7 ~]# touch /mydir/1.txt
[root@svr7 ~]# rsync -av /mydir/ /todir/
sending incremental file list
./
1.txt
sent 147 bytes received 38 bytes 370.00 bytes/sec
total size is 2,669 speedup is 14.43
[root@svr7 ~]# ls -l /todir/
总用量 8
-rw-r--r--. 1 root root 0 6月 20 10:34 1.txt
-rw-r--r--. 1 root root 477 6月 20 10:32 fstab
-rw-r--r--. 1 root root 2192 6月 20 10:32 passwd
[root@svr7 ~]# touch /todir/2.txt
[root@svr7 ~]# ls /todir/
1.txt 2.txt fstab passwd
[root@svr7 ~]# ls /mydir
1.txt fstab passwd
[root@svr7 ~]# rsync -av --delete /mydir/ /todir/
sending incremental file list
deleting 2.txt
./
sent 108 bytes received 28 bytes 272.00 bytes/sec
total size is 2,669 speedup is 19.62
[root@svr7 ~]# ls /todir/
1.txt fstab passwd
[root@svr7 ~]# rsync -av --delete /mydir/ [email protected]:/opt
[root@pc207 ~]# ls /opt/
1.txt fstab passwd