网络相关指令及服务
• ping - 发送 ICMP ECHO_REQUEST 数据包到网络主机
• traceroute - 打印到一台网络主机的路由数据包
• netstat - 打印网络连接,路由表,接口统计数据,伪装连接,和多路广播成员
• ftp - 因特网文件传输程序
• wget - 非交互式网络下载器
• ssh - OpenSSH SSH 客户端(远程登录程序)
traceroute
本地到指定主机要经过的所有"跳数"的网络流量列表
主机名,IP地址和性能数据
traceroute slashdot.org
netstat
netstat 程序被用来检查各种各样的网络设置和统计数据。通过此命令的许多选项,我们可以看看网络设置中的各种特性。使用“-ie”选项,我们能够查看系统中的网络接口:
第一个,叫做 eth0,是以太网接口,和第二个,叫做 lo,是内部回环网络接口,它是一个虚拟接口,系统用它来“自言自语”。
当执行日常网络诊断时,要查看的重要信息是每个网络接口第四行开头出现的单词“UP”,
说明这个网络接口已经生效,还要查看第二行中 inet addr 字段出现的有效 IP 地址。对于使用DHCP(动态主机配置协议)的系统,在这个字段中的一个有效 IP 地址则证明了 DHCP 工作正常
IP与ping
ip address show
ip a s#命令缩写
添加临时ip地址
ip address add 192.168.8.1/24 dev eth0
ipconfig查找不到 因为是临时 但是ip a s可以
ping测试网络通信 -c:指定ping包的个数
ping -c 2 192.168.4.7
ping -c 4 192.168.4.7
ssh
原理:
当你通过 SSH 协议与远端主机建立连接的时候,其中发生的事就是在本地与远端系统之间创建了一条加密通道
通常,这条通道被用来把在本地系统中输入的命
令安全地传输到远端系统,同样地,再把执行结果安全地发送回来。除了这个基本功能之外,SSH 协议允许大多数网络流量类型通过这条加密通道来被传送,在本地与远端系统之间创建一种 VPN(虚拟专用网络)。
scp(安全复制)
sftp:ftp安全替代品,不用明码传递数据,用加密的的SSH通道.不需要远端系统中运行FTP服务器
ssh 用户名@ip
输入密码
exit登出
ssh-keygen生成公私钥
默认存放在/root/.ssh
id_rsa为公钥 id_rsa.pub为私钥
A通过ssh首次连接到B,B会将公钥1(host key)传递给A,A将公钥1存入known_hosts文件中,以后A再连接B时,B依然会传递给A一个公钥2,OpenSSH会核对公钥,通过对比公钥1与公钥2 是否相同来进行简单的验证,如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。。
[root@svr7 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:R2k3F4i1b/WDX8AORoxgVBrKAPIDbl3+wUrMI+8usuA root@svr7.tedu.cn
The key's randomart image is:
+---[RSA 2048]----+
|o .... .=o.=o.. |
|.+. =o.o ooooo . |
| ooo *oo. + * + .|
|. .+ + .o o *.o.|
| o .S . .+.o|
| . . .. o|
|. . . |
|o. .. |
| Eo .. |
+----[SHA256]-----+
[root@svr7 ~]# ls /root/.ssh
id_rsa id_rsa.pub known_hosts
ssh-copy-id 用户名@主机号 传递公钥到主机B
#输入主机的密码
#查看B的.ssh目录
[root@pc207 ~]# ls /root/.ssh
authorized_keys
存放了加密的文件
然后A再ssh B的主机无需密码
使用scp远程复制工具
安全复制工具 scp
如果带目录 一定要-r
-scp [-r] 用户名@服务器:路径 本地路径
-scp [-r] 本地路径 用户名@服务器:路径
网络配置
服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的。
Linux系统的命名原来是eth0,eth1这样的形式,但是这个编号往往不一定准确对应网卡接口的物理顺序。
为解决这类问题,dell开发了biosdevname方案
ens33 pci网卡
内核参数组合使用的时候,其结果如下:
默认内核参数(biosdevname=0,net.ifnames=1): 网卡名 "enp5s2"
biosdevname=1,net.ifnames=0:网卡名 "em1"
biosdevname=0,net.ifnames=0:网卡名 “eth0” (最传统的方式,eth0 eth1 傻傻分不清)
ifconfig | head -2
#原来命名为ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:a1:a5:d3 txqueuelen 1000 (Ethernet)
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:** flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
为了自动化考虑 nmcli “取外号”一样的名字
[root@svr7 ~]# nmcli connection show
NAME UUID TYPE DEVICE
有线连接 1 907d645d-59e8-33d2-bb0b-7f77b36c67b5 ethernet eth0
virbr0 7bf73d8d-b4a8-4ad9-bfae-44c0229cd433 bridge virbr0
ens33 852e4614-216a-4a0f-94fd-83085eb36b6a ethernet --
[root@svr7 ~]# nmcli connection delete ens33
成功删除连接 "ens33" (852e4614-216a-4a0f-94fd-83085eb36b6a)。
[root@svr7 ~]# nmcli connection delete 有线连接\ 1
成功删除连接 "有线连接 1" (907d645d-59e8-33d2-bb0b-7f77b36c67b5)。
[root@svr7 ~]# nmcli connection show
NAME UUID TYPE DEVICE
virbr0 7bf73d8d-b4a8-4ad9-bfae-44c0229cd433 bridge virbr0
nmcli connection 添加 类型 以太网设备 网卡设备名为eth0 nmcli命令的命名为eth0
[root@svr7 ~]# nmcli connection add type ethernet ifname eth0 con-name eth0
连接 "eth0" (c4788d65-af60-44da-ab65-56ef583ab72d) 已成功添加。
[root@svr7 ~]# nmcli connection modify eth0
ipv4.method manual
ipv4.addresses 192.168.4.7/24
ipv4.gateway 192.168.4.254
connection.autoconnect yes
###注意这些在一行里配置完 getway 网关
[root@svr7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernetf
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=c4788d65-af60-44da-ab65-56ef583ab72d
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.4.7
PREFIX=24
GATEWAY=192.168.4.254
[root@svr7 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.4.254 0.0.0.0 UG 100 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
模版机器
要将/etc/fstab中的UUID进行修改 修改为/dev/sda1 对应的挂载目录
因为克隆后如果UUID复制 对应的出错。
UUID可以通过blkid来查看对应的

配置虚拟网卡



克隆后需要修改主机名和IP名称
链路聚合
作用:备份网卡设备,提高可靠性
虚拟网卡:team0
1.关闭虚拟机添加两块网卡


[root@A ~]# ifconfig | less
2.建立虚拟网卡设备,
参考 man teamd.conf 进行全文查找 /example
[root@A ~]# nmcli connection add type team ifname team0 con-name team0 autoconnect yes config '{"runner": {"name": "activebackup"}}'
[root@A ~]# nmcli 连接 添加 类型 组队 网卡名 team0命名为team0
每次开机自启动 工作方式 活跃备份
[root@A ~]# ifconfig
3.添加成员
[root@A ~]# nmcli connection add type team-slave autoconnect yes ifname eth1 con-name team0-1 master team0
[root@A ~]# nmcli connection add type team-slave autoconnect yes ifname eth2 con-name team0-2 master team0
[root@A ~]# nmcli 连接 添加 类型 组队-成员 每次开机自动启用 网卡名 eth2 命名为 team0-2 主设备为 team0
4.激活,以配置文件的名进行激活
[root@A ~]# nmcli connection up team0
[root@A ~]# nmcli connection up team0-1
[root@A ~]# nmcli connection up team0-2
5.为team0配置IP地址
[root@A ~]# nmcli connection modify team0 ipv4.method manual ipv4.addresses 192.168.1.1/24 connection.autoconnect yes
[root@A ~]# nmcli connection up team0
[root@A ~]# teamdctl team0 state #专门查看team0状态的命令
[root@A ~]# ifconfig eth1 down
[root@A ~]# teamdctl team0 state
NFS
• Network File System,网络文件系统
– 用途:为客户机提供共享使用的文件夹
– 协议:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)
• 所需软件包:nfs-utils
• 系统服务:nfs-server
虚拟机A
1.检测是否安装nfs-utils
[root@svr7 ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.54.el7.x86_64
2.创建共享的目录
[root@svr7 ~]# mkdir /public
[root@svr7 ~]# echo 123 > /public/a.txt
[root@svr7 ~]# ls /public
a.txt
3.修改配置文件
[root@svr7 ~]# vim /etc/exports
– 文件夹路径 客户机地址(权限) 客户机地址(权限) .. ..
/public *(ro) #允许所有客户端,以只读方式进行访问
4.重启服务
[root@svr7 ~]# systemctl restart nfs-server
虚拟机B:客户端
1.检测是否安装nfs-utils
[root@pc207 ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.54.el7.x86_64
2.挂载进行访问
[root@pc207 ~]# mkdir /mnt/nsd
[root@pc207 ~]# mount 192.168.4.7:/public /mnt/nsd
[root@pc207 ~]# ls /mnt/nsd
[root@pc207 ~]# df -h #查看正在挂载的信息
3.开机自动挂载
_netdev:声明网络设备,本机在识别网络参数后,在进行挂载本设备
[root@pc207 ~]# vim /etc/fstab
192.168.4.7:/public /mnt/nsd nfs defaults,_netdev 0 0
[root@pc207 ~]# umount /mnt/nsd
[root@pc207 ~]# df -h
[root@pc207 ~]# mount -a
[root@pc207 ~]# df -h
autofs自动挂载
• 主配置文件 /etc/auto.master
– 监控点目录 挂载配置文件的路径
• 挂载配置文件,比如 /etc/auto.misc
– 触发点子目录 -挂载参数 :设备名
1.安装
yum -y install autofs
[root@localhost ~]# vim /etc/auto.master
1 #
2 # Sample auto.master file
3 # This is an automounter map and it has the following format
4 # key [ -mount-options-separated-by-comma ] location
5 # For details of the format look at autofs(5).
6 #
7 /misc /etc/auto.misc
8 /media /etc/cdrom.misc
--------省略部分输出------------
配置对应的
[root@localhost ~]# vim /etc/cdrom.misc
cdrom -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
[root@localhost ~]# systemctl restart autofs
[root@localhost ~]# systemctl enable autofs
ln -s '/usr/lib/systemd/system/autofs.service' '/etc/systemd/system/multi-user.target.wants/autofs.service'
DNS
• BIND服务器端程序
– 主要执行程序:/usr/sbin/named
– 系统服务:named
– DNS协议默认端口:TCP/UDP 53
– 运行时的虚拟根环境:/var/named/chroot/
• 主配置文件:/etc/named.conf #设置负责解析的域名
• 地址库文件:/var/named/ #完at全合格的主机名与IP地址对应关系
配置流程
1.安装软件包
虚拟机A:构建DNS服务器
[root@svr7 ~]# yum -y install bind bind-chroot
bind(主程序)
bind-chroot(提供牢笼政策)
2.修改主配置文件
[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"; #地址库文件名称
};
3.建立地址库文件
保证named对地址库文件有读取权限
所有的域名都要以点作为结尾
如果没有以点作为结尾,那么默认补全本地库文件负责的域名
!!!注意cp -p 需要named组权限!!!
DNS的区域解析库中定义了资源记录(Resource Record, RR), 资源记录类型如下:
- SOA(Start Of Authority): 起始授权记录, 一个区域解析库仅能有一个SOA记录, 而且必须为解析库的第一条记录
- A(Internet Address): 用于实现将FQDN解析为IP地址
- AAAA: 用于IPv6, 将FQDN解析为IPv6地址
- PTR(PonTeR): 将IP解析为FQDN
- NS(Name Server): 专用于标明当前区域的DNS服务器
- CNAME(Canonical Name): 别名记录
- MX(Mail eXchanger): 邮件交换器
]# cd /var/named/
]# cp -p named.localhost tedu.cn.zone #保持权限不变
]# ls -l tedu.cn.zone
]# vim tedu.cn.zone
……此处省略一万字
tedu.cn. NS svr7 #声明DNS服务器为svr7
svr7 A 192.168.4.7 #svr7解析结果为192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
[root@svr7 named]# systemctl restart named
虚拟机B:测试DNS服务器
]# echo nameserver 192.168.4.7 > /etc/resolv.conf
]# cat /etc/resolv.conf
]# nslookup www.tedu.cn
]# nslookup ftp.tedu.cn
SOA记录
# name: 当前区域的名字, 例如: leistudy.com
# value: 有多部分组成
# 当前主区域的DNS服务器的FQDN, 也可以使用当前区域的名字
# 当前区域管理员的邮箱地址, 但地址中不能使用@符号, 一般用“.”代替, 例如linuxedu.magedu.com
# 主从服务协调属性的定义以及否定的答案的统一的TTL
# 示例:
leistudy.com. 86400 IN SOA ns.leistudy.com. nsadmin.leistudy.com. (
2018022801 ;序列号
2H ;刷新时间
10M ;重试时间
1W ;过期时间
1D ;否定答案的TTL值
)
A记录
A记录:
# name: 某主机的FQDN, 例如www.leistudy.com.
# value: 主机名对应主机的IP地址
# 示例:
www.leistudy.com. IN A 1.1.1.1
www.leistudy.com. IN A 1.1.1.2
mx1.leistudy.com. IN A 1.1.1.3
mx2.leistudy.com. IN A 1.1.1.3
# NOTE: 避免用于写错名称时给错误答案, 可通过泛域名解析进行解析至某特定地址
# 示例:
*.leistudy.com. IN A 1.1.1.4
magedu.com. IN A 1.1.1.4
DNS的轮询(负载均衡)
DNS的轮询(负载均衡)
[root@svr7 /]# vim /var/named/tedu.cn.zone
……此处省略一万字
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.20
www A 192.168.4.21
www A 192.168.4.22
ftp A 2.2.2.2
[root@svr7 /]# systemctl restart named
DNS的泛域名解析
[root@svr7 /]# vim /var/named/tedu.cn.zone
……此处省略一万字
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.20
ftp A 2.2.2.2
* A 4.4.4.4
tedu.cn. A 5.5.5.5
[root@svr7 /]# systemctl restart named
虚拟机B测试:
[root@pc207 /]# nslookup wwwwww.tedu.cn
[root@pc207 /]# nslookup tedu.cn
主从架构
DNS主从架构
作用:提高可靠性,从DNS服务器备份主DNS服务器的数据
主DNS的配置关键——修改named.conf配置文件,为从DNS设置授权:
options {
.. ..
allow-transfer {
从DNS服务器的IP地址;
};
};
从DNS的配置关键——无需手动建立解析记录,只需修改named.conf配置文件:
zone "tedu.cn" IN {
type slave; //类型为slave
file "slaves/tedu.cn.zone"; //下载存放位置
masters { 主DNS服务器的IP地址; };
};
虚拟机A:主DNS服务器,以lol.com域名
虚拟机B:从DNS服务器,以lol.com域名
虚拟机A:主DNS服务器
- 授权从DNS服务器
[root@svr7 /]# man named.conf #参考man帮助
[root@svr7 /]# vim /etc/named.conf
options {
directory "/var/named";
allow-transfer { 192.168.4.207; }; #允许谁进行传输数据
};
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
zone "lol.com" IN {
type master;
file "lol.com.zone";
};
\2. 声明从DNS服务器
[root@svr7 /]# vim /var/named/lol.com.zone
lol.com. NS svr7
lol.com. NS pc207 #声明从DNS服务器
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 3.3.3.3
[root@svr7 /]# systemctl restart named
虚拟机B:从DNS服务器
1.安装软件包
[root@pc207 /]# yum -y install bind bind-chroot
2.修改主配置文件
[root@pc207 /]# cp /etc/named.conf /root
[root@pc207 /]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "lol.com" IN {
type slave; #类型为从服务器
file "/var/named/slaves/lol.com.slave"; #确保named用户有读写执行权限
masters { 192.168.4.7; }; #指定主DNS服务器
masterfile-format text; #地址库文件明文存储
};
[root@pc207 /]# ls /var/named/slaves/ [root@pc207 /]# systemctl restart named
[root@pc207 /]# ls /var/named/slaves/
lol.com.slave
[root@pc207 /]# vim /etc/resolv.conf
nameserver 192.168.4.7
nameserver 192.168.4.207
[root@pc207 /]# nslookup www.lol.com
九、DNS主从数据同步
虚拟机A:
[root@svr7 /]# vim /var/named/lol.com.zone
…….此处省略一万字
2020081801 ; serial #数据的版本号,由10个数字组成
1D ; refresh #每隔1天主从进行数据交互
1H ; retry #失效之后的时间间隔每一个1小时
1W ; expire #真正的失效时间,1周
3H ) ; minimum #失效记录的记忆时间3小时
lol.com. NS svr7
lol.com. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 8.8.8.8
[root@svr7 /]# systemctl restart named
虚拟机B:
[root@pc207 /]# nslookup www.lol.com 192.168.4.207
配置DNS子域授权
为一个DNS区域添加授权子域时,需要修改此区域的地址库,添加以下记录:
子域域名. IN NS 子DNS的FQDN.
子DNS的FQDN. IN A 子DNS的IP地址
步骤一:构建父DNS(tedu.cn)服务器
1)将svr7配置为父DNS服务器,确认配置
主配置文件/etc/named.conf:
[root@svr7 ~]# viim /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn" {
type master;
file "tedu.cn.zone";
};
.. ..
正向地址库文件:
[root@svr7 ~]# vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS svr7.tedu.cn.
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 192.168.4.100
.. ..
确保服务已启用:
[root@svr7 ~]# systemctl restart named
步骤一:构建父DNS(tedu.cn)服务器
1)将svr7配置为父DNS服务器,确认配置
主配置文件/etc/named.conf:
[root@svr7 ~]# viim /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn" {
type master;
file "tedu.cn.zone";
};
.. ..
正向地址库文件:
[root@svr7 ~]# vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS svr7.tedu.cn.
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 192.168.4.100
.. ..
确保服务已启用:
[root@svr7 ~]# systemctl restart named
步骤二:构建子DNS(bj.tedu.cn)服务器
1)将pc207配置为子DNS服务器,确认配置
安装软件包bind、bind-chroot:
[root@pc207 ~]# yum -y install bind bind-chroot
.. ..
建立主配置文件/etc/named.conf:
[root@pc207 ~]# mv /etc/named.conf /etc/named.conf.origin //备份默认配置
[root@pc207 ~]# vim /etc/named.conf //建立新配置
options {
directory "/var/named";
};
zone "bj.tedu.cn" { //定义子DNS的正向区域
type master;
file "bj.tedu.cn.zone";
};
建立地址库配置文件:
[root@pc207 ~]# cd /var/named/ //进地址库目录
[root@pc207 named]# cp -p named.localhost tedu.cn.zone //参考范本建地址库文件
[root@pc207 named]# vim bj.tedu.cn.zone //修订地址库记录
$TTL 1D //文件开头部分可保持不改
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS pc207.bj.tedu.cn. //本区域DNS服务器的FQDN
pc207 A 192.168.4.207 //为NS主机提供A记录
www A 1.2.3.4 //添加测试记录 www.bj.tedu.cn
2)启动系统服务named,并设置开机自启
[root@pc207 named]# systemctl restart named
[root@pc207 named]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
3)测试 —— 向子DNS可成功查询到子区域中的站点
[root@pc207 ~]# host www.bj.tedu.cn 192.168.4.207
Using domain server:
Name: 192.168.4.207
Address: 192.168.4.207#53
Aliases:
www.bj.tedu.cn has address 1.2.3.4
步骤三:在父DNS上配置子域授权
1)测试 —— 未配置子域授权时,向父DNS无法正确查询到子区域中的站点
若父DNS配置有 * 泛域名,则反馈的结果为对应的IP地址119.75.217.56,而不是子DNS中记录的1.2.3.4:
[root@pc207 ~]# host www.bj.tedu.cn 192.168.4.7
Using domain server:
Name: 192.168.4.7
Address: 192.168.4.7#53
Aliases:
www.bj.tedu.cn has address 119.75.217.56
若父DNS未配置有 * 泛域名,则找不到解析结果(not found):
[root@pc207 ~]# host www.bj.tedu.cn 192.168.4.7
Using domain server:
Name: 192.168.4.7
Address: 192.168.4.7#53
Aliases:
Host www.bj.tedu.cn not found: 3(NXDOMAIN)
2)修改父DNS区域tedu.cn的地址库,添加授权子域信息
[root@svr7 ~]# vim /var/named/tedu.cn.zone
.. ..
bj.tedu.cn. NS pc207.bj.tedu.cn. //子区域及子DNS主机名
pc207.bj.tedu.cn. A 192.168.4.207 //子DNS的IP地址
[root@svr7 named]# systemctl restart named //重启服务
步骤四:测试子域授权查询
测试 —— 成功配置子域授权以后,向父DNS可以正确查询到子区域中的站点:
[root@pc207 ~]# host www.bj.tedu.cn 192.168.4.7
Using domain server:
Name: 192.168.4.7
Address: 192.168.4.7#53
Aliases:
www.bj.tedu.cn has address 1.2.3.4
[root@pc207 ~]# systemctl enable named
4)可向缓存DNS服务器pc207查询到公共域名(百度、网易等站点)
[root@pc207 ~]# host www.baidu.com 192.168.4.207 //查百度的站点IP
Using domain server:
Name: 192.168.4.207
Address: 192.168.4.207#53
Aliases:
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 111.13.100.92
www.a.shifen.com has address 111.13.100.91
[root@pc207 ~]# host www.163.com 192.168.4.207 //查网易的站点IP
Using domain server:
Name: 192.168.4.207
Address: 192.168.4.207#53
Aliases:
www.163.com is an alias for www.163.com.lxdns.com.
www.163.com.lxdns.com is an alias for 163.xdwscache.ourglb0.com.
163.xdwscache.ourglb0.com has address 111.11.31.104
163.xdwscache.ourglb0.com has address 111.11.31.114
DNS分离解析
当收到客户机的DNS查询请求的时候
– 能够区分客户机的来源地址
– 为不同类别的客户机提供不同的解析结果
– 为客户端提供最近的服务器地址
view "视图1" {
match-clients { 客户机地址1; .. .. ; }; //匹配第1类客户机地址
zone "目标域名" IN { //同一个DNS区域
type master;
file "地址库1"; //第1份地址库
};
};
view "视图2" {
match-clients { 客户机地址2; .. .. ; }; //匹配第2类客户机地址
match-clients { any; }; //匹配任意地址
zone "目标域名" IN { //同一个DNS区域
type master;
file "地址库2"; //第2份地址库
};
};
.. ..
view "视图n" {
match-clients { any; }; //匹配任意地址
zone "目标域名" IN { //同一个DNS区域
type master;
file "地址库n"; //第n份地址库
};
};
acl地址列表:为大批量的客户机地址建立列表
[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 "a" {
match-clients { test; };
·······························
view "b" {
match-clients { test; };
案例:DNS项目

- 在Web1机器上构建Web服务,实现基于域名的虚拟Web主机,提供www.163.com与www.qq.com两个网站
- 在Web2机器上构建Web服务,实现基于域名的虚拟Web主机,提供www.163.com与www.qq.com两个网站
- 客户端192.168.4.207访问www.163.com与www.qq.com两个网站,由Web1服务器提供
- 客户端192.168.4.208访问www.163.com与www.qq.com两个网站,由Web2服务器提供
- 在192.168.4.7上实现DNS服务器分离解析
实验规划
先配置IP地址(nmcli)和主机名(hostname)
| IP地址 | 主机名 | 角色 |
|---|---|---|
| 192.168.4.7 | svr7.test.cn | DNS服务器 |
| 192.168.4.10 | web1.test.cn | Web服务器 |
| 192.168.4.20 | web2.test.cn | Web服务器 |
| 192.168.4.207 | client1.test.cn | 客户端1 |
| 192.168.4.208 | client2.test.cn | 客户端2 |
web1服务器配置
[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 "test web1 163" > /var/www/163/index.html
[root@web1 ~]# echo "test web1 qq" > /var/www/qq/index.html
[root@web1 ~]# systemctl restart httpd
[root@web1 ~]# systemctl enable httpd
web2服务器配置
[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
dns服务器配置
[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 ~]# 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 svr7
svr7 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 svr7
svr7 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 svr7
svr7 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 svr7
svr7 A 192.168.4.7
www A 192.168.4.20
[root@dns1 named]# systemctl restart named
[root@dns1 ~]# systemctl enable named
指定主机们的DNS到DNS服务器
[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
客户端测试
客户端1
[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
test web1 163
[root@client1 ~]# curl http://www.qq.com
test web1 qq
客户端2
[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
test web2 163
[root@client2 ~]# curl http://www.qq.com
test web2 qq
NTP时间同步
- 部署一台NTP时间服务器
- 设置时间服务器上层与0.centos.pool.ntp.org同步
- 设置本地服务器层级数量为10
- 允许192.168.4.0/24网络的主机同步时间
- 客户端验证时间是否同步
使用yum安装bind、bind-chroot软件包
修改配置文件/etc/chrony.conf
[root@proxy ~]# vim /etc/chrony.conf
server 0.centos.pool.ntp.org iburst //server用户客户端指向上层NTP服务器
allow 192.168.4.0/24 //允许那个IP或网络访问NTP
local stratum 10 //设置NTP服务器的层数量
重启chronyd服务
[root@mail ~]# systemctl restart chronyd
[root@svr7 ~]# firewall-cmd --set-default-zone=trusted #设置防火墙
步骤二:虚拟机B构建NTP时间同步的客户端
1)修改/etc/chrony.conf文件
[root@pc207 ~]# vim /etc/chrony.confserver
192.168.4.7 iburst
2)重启chronyd服务
[root@pc207 ~]# systemctl restart chronyd[root@svr7 ~]
# firewall-cmd --set-default-zone=trusted #设置防火墙
3)修改时间进行测试
[root@pc207 ~]# date -s "2008-9-1"
2008年 09月 01日 星期一 00:00:00 CST
[root@pc207 ~]# date
2008年 09月 01日 星期一 00:00:01 CST
[root@pc207 ~]# systemctl restart chronyd
[root@pc207 ~]# date
2008年 09月 01日 星期一 00:01:42 CST
[root@pc207 ~]# date
2020年 04月 13日 星期一 18:44:56 CST
[root@pc207 ~]# chronyc sources –v #专业查看时间服务端信息命令
邮件服务器
1.构建DNS服务器,提供邮件交换解析记录
虚拟机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
2.构建邮件服务器
- 虚拟机A:
- 安装软件包
- 修改主配置文件
[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
3.测试
- mail 发信操作:mail -s ‘邮件标题’ -r 发件人 收件人
[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 #非交互式发邮件
- mail 收信操作:mail [-u 用户名]
[root@svr7 /]# mail -u xln #以root的身份查看xln的邮件
\>N 1 yg@qq.com Wed Jun 17 16:44 18/508 "test01"
& 1 #输入邮件编号1
& quit
rsync同步操作
基本操作
rsync [选项...] 源目录 目标目录
• 同步与复制的差异
– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据
• rsync操作选项
– -n:测试同步过程,不做实际修改
– --delete:删除目标文件夹内多余的文档
– -a:归档模式,相当于-rlptgoD #
– -v:显示详细操作信息
– -z:传输过程中启用压缩/解压
rlptgoD:

- 将目录 /boot 同步到目录 /todir 下
- 将目录 /boot 下的文档同步到目录 /todir 下
- 在目录 /boot 下新增文件 a.txt,删除 /todir 下的子目录 grub2,再次同步使 /todir 与 /boot 一致
1.rsync -a /boot /todir
2.rsync -a /boot/ /todir
3.touch /boot/a.txt
rm -rf /todir/grub2/
rsync -a /boot/ /todir/
rsync+SSH同步
列出SSH服务端资源
rsync user@host:远程目录:/
下行:rsync [...] user@host:远程目录 本地目录 #将远程同步到本地
上行:rsync [...] 本地目录 user@host:远程目录 #将本地同步到远程
服务端需要开始sshd服务,并提供授权的用户和密码
同步数据,ssh无密码验证
1.虚拟机A:生成公钥(锁)与私钥(钥匙)
[root@svr7 ~]# ssh-keygen #一路回车
[root@svr7 ~]# ls /root/.ssh/
id_rsa(私钥) id_rsa.pub (公钥)
known_hosts(记录曾经远程管理过哪些机器)
2.虚拟机A:将公钥传递到虚拟机B
]# ssh-copy-id root@192.168.4.207
]# rsync -av --delete /mydir/ root@192.168.4.207:/opt/
inotify实时同步
部署环境
下载地址:
http://download.sf.net/inotify-tools
下载到后,解压到/usr/loca后make&install
[root@svr7 ~]# tar -xf /root/inotify-tools-3.13.tar.gz -C /usr/src/
[root@svr7 ~]# cd /usr/src/inotify-tools-3.13/
[root@svr7 inotify-tools-3.13]# ./configure
[root@svr7 inotify-tools-3.13]#make
[root@svr7 inotify-tools-3.13]#make install
基本用法
• 基本用法
– inotifywait [选项] 目标文件夹
• 常用命令选项
– -m,持续监控(捕获一个事件后不退出)
– -r,递归监控、包括子目录及文件
– -q,减少屏幕输出信息
– -e,指定监视的 modify、move、create、delete、attrib 等事件类别
测试inotifywait监控
1)开启监控任务,置入后台
[root@svr7 ~]# inotifywait -mrq -e create,modify,move,attrib,delete /opt &
[1] 55564
2)测试/opt/目录下的新建、修改、改名、更改权限、删除文件等事件的响应消息
观察新建文件时的监控信息:
[root@svr7 ~]# touch /opt/a.txt
/opt/ CREATE a.txt
/opt/ ATTRIB a.txt
......其他更改提醒响应式操作
3)停止监控任务
[root@svr7 ~]# kill -9 %1
[1]+ 已杀死 inotifywait -mr -e create,modify,move,attrib,delete /opt
shell:结合inotifywait和rsync进行监控
本例要求为两台Web服务器svr7、pc207的网页文档目录配置镜像同步,主要基于inotifywait监控技术实现实时触发操作,需要完成下列任务:
- 以 svr7 为发起方,原始目录为 /var/www/html/
- 以 pc207 为同步目标,基于SSH免密验证
- 编写 inotify+rsync 同步脚本,验证实时同步效果
思想:
解决重复性事情:利用循环解决
while inotifywait监控操作
do
需要执行的rsync同步操作
done
#!/bin/bash
FROM_DIR="/var/www/html/"
RSYNC_CMD="rsync -az --delete $FROM_DIR root@192.168.4.207:/var/www/html"
while inotifywait -rqq -e modify,move,create,delete,attrib $FROM_DIR
do
$RSYNC_CMD
done &
[root@svr7 ~]#/root/isync.sh
[root@svr7 ~]# pgrep -l inotify //确认任务在运行
56494 inotifywait
[root@svr7 ~]# pkill -9 inotify //结束任务
[root@svr7 ~]# pgrep -l inotify //确认已没有监控任务
虚拟Web
• 提供的默认配置
– Listen:监听地址:端口(80)
– ServerName:本站点注册的DNS名称(空缺)
– DocumentRoot:网页根目录(/var/www/html)
– DirectoryIndex:起始页/首页文件名(index.html)
[root@svr7 ~]# vim /etc/conf/httpd.conf
[root@svr7 ~]# vim /etc/httpd/conf/http.conf
[root@svr7 ~]# vim /etc/httpd/conf/httpd.conf
[root@svr7 ~]# mkdir /var/www/myweb
[root@svr7 ~]# echo test for myweb >/var/www/myweb/index.html
[root@svr7 ~]# systemctl restart httpd
[root@svr7 ~]# curl 192.168.4.7(ip)
test for myweb
一台服务器,提供多个不同页面
• 区分方式
– 基于域名的虚拟主机
– 基于端口的虚拟主机
– 基于IP地址的虚拟主机
• 为每个虚拟站点添加配置
<VirtualHost IP地址:端口>
ServerName 此站点的DNS名称
DocumentRoot 此站点的网页根目录
</VirtualHost>
• 配置文件路径
– /etc/httpd/conf/httpd.conf #主配置文件
– /etc/httpd/conf.d/*.conf #调用配置文件
• 一旦使用虚拟Web主机功能,所有的网站都要使用虚拟Web主机功能进行呈现
1.新建调用配置文件
[root@svr7 ~]# vim /etc/httpd/conf.d/haha.conf
<VirtualHost *:80> #本机所有地址的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
[root@svr7 ~]# mkdir /var/www/baidu
[root@svr7 ~]# echo 企鹅 > /var/www/qq/index.html
[root@svr7 ~]# echo 度娘 > /var/www/baidu/index.html
[root@svr7 ~]# systemctl restart httpd
[root@svr7 ~]# curl www.qq.com
curl: (6) Could not resolve host: www.qq.com; 未知的错误
[root@svr7 ~]# curl http://www.qq.com
curl: (6) Could not resolve host: www.qq.com; 未知的错误
[root@svr7 ~]# cat /var/www/lol/index.html
testlol
[root@svr7 ~]# vim /etc/httpd/conf/httpd.conf
[root@svr7 ~]# curl http://192.168.4.7
testqq
需要域名解析
2./etc/hosts文件直接起到域名解析(只为本机提供解析 没有DNS服务前)
[root@svr7 ~]# vim /etc/hosts
192.168.4.7 www.qq.com www.baidu.com
[root@svr7 ~]# curl http://www.qq.com
[root@svr7 ~]# curl http://www.baidu.com
[root@svr7 ~]# vim /etc/httpd/conf.d/haha.conf
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
<VirtualHost *:80>
ServerName www.baidu.com
DocumentRoot /var/www/baidu
</VirtualHost>
<VirtualHost *:80>
ServerName www.360.com
DocumentRoot /webroot
</VirtualHost>
[root@svr7 ~]# systemctl restart httpd
[root@svr7 ~]# vim /etc/hosts
192.168.4.7 www.qq.com www.baidu.com www.360.com
[root@svr7 ~]# curl http://www.360.com
3.基于端口的虚拟主机
[root@svr7 ~]# vim /etc/httpd/conf.d/haha.conf
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
Listen 9000
<VirtualHost *:9000>
ServerName www.qq.com
DocumentRoot /var/www/baidu
</VirtualHost>
<VirtualHost *:80>
ServerName www.360.com
DocumentRoot /webroot
</VirtualHost>
[root@svr7 ~]# systemctl restart httpd
[root@svr7 ~]# curl http://www.qq.com
[root@svr7 ~]# curl http://www.qq.com:9000

2428

被折叠的 条评论
为什么被折叠?



