1.安装软件包
[root@svr7 ~]# yum -y install bind-chroot bind
bind-9.9.4-29.el7.x86_64 //域名服务包
bind-chroot-9.9.4-29.el7.x86_64 //提供虚拟根支持 牢笼
2.修改配置文件/etc/named.conf
[root@svr7 ~]# cp /etc/named.conf /root/named.bak
[root@svr7 ~]# vim /etc/named.conf
options {
directory "/var/named"; #指定地址库文件路径
};
zone "tedu.cn" IN { #指定本机负责解析的域名
type master; #本机为权威主DNS服务器
file "tedu.cn.zone"; #指定地址库文件名字
};
3.创建地址库文件/var/named/tedu.cn.zone
# cd /var/named
# cp -p named.localhost tedu.cn.zone #保持属性不变
# ls -l tedu.cn.zone
# vim tedu.cn.zone
#没有以点结尾,默认补全tedu.cn.
tedu.cn. NS svr7 #tedu.cn.区域有svr7负责
svr7 A 192.168.4.7 #svr7的IP地址为192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
4.重起named服务
# systemctl restart named
5.客户端验证
1.指定DNS服务器位置
# echo nameserver 192.168.4.7 > /etc/resolv.conf
2.域名解析测试
# nslookup www.tedu.cn
# nslookup ftp.tedu.cn
多区域的DNS服务器
虚拟机A:
1.修改配置文件/etc/named.conf
......
zone "qq.com" IN {
type master;
file "qq.com.zone";
};
3.创建地址库文件/var/named/qq.com.zone
# cd /var/named
# cp -p tedu.cn.zone qq.com.zone
# vim qq.com.zone
qq.com. NS svr7
svr7 A 192.168.4.7
www A 3.3.3.3
ftp A 4.4.4.4
4.重起named服务
# systemctl restart named
5.客户端验证
1.指定DNS服务器位置
# echo nameserver 192.168.4.7 > /etc/resolv.conf
2.域名解析测试
# nslookup www.qq.com
# nslookup ftp.qq.com
特殊的解析记录,以tedu.cn.zone为例
一 DNS的负载均衡,轮询的相同解析记录(了解)
[root@svr7 /]# vim /var/named/tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.1
www A 192.168.4.2
www A 192.168.4.3
www A 192.168.4.4
ftp A 2.2.2.2
[root@svr7 /]# !sys
systemctl restart named
二 泛域名解析
[root@svr7 /]# vim /var/named/tedu.cn.zone
.......
* A 10.11.12.14
[root@svr7 /]# !sys
systemctl restart named
客户端验证:
[root@pc207 /]# nslookup wwwwww.tedu.cn
[root@pc207 /]# nslookup hahaxixi.tedu.cn
三 解析记录的别名(了解)
[root@svr7 /]# vim /var/named/tedu.cn.zone
.......
tts CNAME ftp #tts解析结果与ftp解析结果一致
[root@svr7 /]# !sys
systemctl restart named
客户端验证
[root@pc207 ~]# nslookup tts.tedu.cn
四 有规律的泛域名解析
pc1.tedu.cn ----> 192.168.10.1
pc2.tedu.cn ----> 192.168.10.2
pc3.tedu.cn ----> 192.168.10.3
......
pc50.tedu.cn ----> 192.168.10.50
内置函数: $GENERATE 产生连续的数字
[root@svr7 /]# vim /var/named/tedu.cn.zone
.......
$GENERATE 1-50 pc$ A 192.168.10.$
[root@svr7 /]# !sys
systemctl restart named
[root@svr7 /]#
客户端验证
[root@pc207 ~]# nslookup pc1.tedu.cn
[root@pc207 ~]# nslookup pc2.tedu.cn
[root@pc207 ~]# nslookup pc18.tedu.cn
[root@pc207 ~]# nslookup pc50.tedu.cn
DNS子域授权 ,qq.com域名为例
父域:www.qq.com
子域:www.bj.qq.com
父域的DNS服务器为虚拟机A,负责解析qq.com
子域的DNS服务器为虚拟机B,负责解析bj.qq.com
虚拟机B
1.安装软件包
[root@pc207 ~]# yum -y install bind-chroot bind
2.修改配置文件/etc/named.conf
[root@pc207 ~]# cp /etc/named.conf /root/named.bak
[root@pc207 ~]# vim /etc/named.conf
options {
directory "/var/named"; #指定地址库文件路径
};
zone "bj.qq.com" IN { #指定本机负责解析的域名
type master; #本机为权威主DNS服务器
file "bj.qq.com.zone"; #指定地址库文件名字
};
3.创建地址库文件/var/named/bj.qq.com.zone
# vim bj.qq.com.zone
bj.qq.com. NS pc207
pc207 A 192.168.4.207
www A 5.5.5.5
4.重起named服务
# systemctl restart named
子域授权
通过父域的DNS服务器为虚拟机A,能够解析www.bj.qq.com
虚拟机A:
[root@svr7 /]# vim /var/named/qq.com.zone
qq.com. NS svr7
bj.qq.com. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 3.3.3.3
ftp A 4.4.4.4
[root@svr7 /]#systemctl restart named
[root@pc207 /]# nslookup www.bj.qq.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Non-authoritative answer: #非权威解答
Name: www.bj.qq.com
Address: 5.5.5.5
递归查询:
客户端向首选DNS服务器寻求解析,首选DNS服务器与其他DNS服务器交互,最终将解析结果,带回来的过程
options {
directory "/var/named";
recursion no; #禁止递归
};
[root@pc207 /]# dig www.bj.qq.com 192.168.4.7
迭代查询:首选DNS服务器与其他DNS服务器交互
直接起到DNS解析的功能(只能对本机解析)
/etc/hosts 主机名映射文件(本地主机名与IP地址对应关系)
[root@svr7 /]# vim /etc/hosts
[root@svr7 /]# tail -1 /etc/hosts
192.168.4.110 www.360.com
[root@svr7 /]# ping www.360.com
/etc/hosts(DNS解析过程中,最高优先级)
客户端解析域名顺序:
1./etc/hosts
2./etc/resolv.conf
3.找寻DNS服务器
缓存DNS: 利用内存进行缓存解析记录,加速解析
真机搭建缓存DNS服务器
1.搭建Yum仓库
[root@room9pc01 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@room9pc01 ~]# ls /iso/
CentOS-7-x86_64-DVD-1708.iso
[root@room9pc01 ~]# mkdir /dvd/
[root@room9pc01 ~]# mount /iso/CentOS-7-x86_64-DVD-1708.iso /dvd/
# ls /dvd/
# cd /etc/yum.repos.d/
# mkdir repo
# mv *.repo repo
# vim dvd.repo
[dvd]
name=CentOS7.4
baseurl=file:///dvd #指定本地Yum
enabled=1
gpgcheck=0
# yum -y install bind bind-chroot
2.查看达内 内网DNS服务器地址
[root@room9pc01 /]# cat /etc/resolv.conf
nameserver 172.40.1.10
[root@room9pc01 /]#
3.修改DNS服务器主配置文件,指定转发给内网DNS服务器
[root@room9pc01 /]# vim /etc/named.conf
options {
directory "/var/named";
forwarders { 172.40.1.10; };
};
4. 重起named服务
[root@room9pc01 /]# systemctl restart named
5.在虚拟机上验证:
[root@svr7 /]# nslookup www.taobao.com 192.168.4.254
1.客户端必须找到,自己的分类,需要管理员分类合理
2.view客户端由上及下,匹配及停止
3.所有的zone都必须在view中
view "haha" {
match-clients { 192.168.4.207; };
zone "12306.cn" IN {
...... 地址库1;
};
};
view "xixi" {
match-clients { 192.168.4.110; };
zone "12306.cn" IN {
...... 地址库2;
};
};
view "hehe" {
match-clients { any; };
zone "12306.cn" IN {
...... 地址库3;
};
};
• 环境及需求
– 权威DNS:svr7.tedu.cn 192.168.4.7
– 负责区域:tedu.cn
– A记录分离解析 —— 以 www.tedu.cn 为例
客户机来自 解析结果
192.168.4.207----------》 192.168.4.100
其他地址 ----------》 1.2.3.4
view nsd {
match-clients { 192.168.4.207; };
zone "tedu.cn" {
type master;
file "tedu.cn.zone";
};
};
view other {
match-clients { any; };
zone "tedu.cn" {
type master;
file "tedu.cn.other";
};
};
acl地址列表
• 为大批量的客户机地址建立列表
acl "liantong" {
IP地址1; IP地址2; .. ..
网段1; 网段2; .. ..
.. ..
};
acl "tietong" {
IP地址3; IP地址4; .. ..
网段3; 网段4; .. ..
.. ..
};
acl test { 192.168.4.207; 192.168.4.1;
192.168.4.2; 192.168.4.3;
};
view nsd {
match-clients { test; };
zone "tedu.cn" {
type master;
file "tedu.cn.zone";
};
};
补充:多区域的分离解析
每一个view中,zone的个数保持一致,域名的个数保持一致
[root@svr7 /]# vim /etc/named.conf
options {
directory "/var/named";
};
acl test { 192.168.4.207; 192.168.4.1;
192.168.4.2; 192.168.4.3;
};
view nsd {
match-clients { test; };
zone "tedu.cn" {
type master;
file "tedu.cn.zone";
};
zone "sina.com" {
type master;
file "sina.com.zone";
};
};
view other {
match-clients { any; };
zone "tedu.cn" {
type master;
file "tedu.cn.other";
};
zone "sina.com" {
type master;
file "sina.com.other";
};
};
查看进程树
• pstree — Processes Tree
– 格式:pstree [选项] [PID或用户名]
• 常用命令选项
– -a:显示完整的命令行
– -p:列出对应PID编号
systemd:上帝进程是所有进程的父进程 PID编号为1
[root@svr7 ~]# pstree
[root@svr7 ~]# pstree lisi
bash───vim
[root@svr7 ~]# pstree -p lisi
bash(13952)───vim(13996)
[root@svr7 ~]# pstree -ap lisi
查看进程快照
• ps — Processes Snapshot
– 格式:ps [选项]...
• 常用命令选项
– aux:显示当前终端所有进程(a)、当前用户在所有
终端下的进程(x), 以用户格式输出(u)
– -elf:显示系统内所有进程(-e)、以长格式输出(-l)
信息、包括最完整的进程信息(-f)
ps aux:输出进程信息非常详细
– 列出正在运行的所有进程
ps -elf:输出进程信息比较详细,有该进程的父进程信息
– 列出正在运行的所有进程
PPID:父进程的PID号
请统计Linux一共有多少个用户?
[root@svr7 ~]# wc -l /etc/passwd #统计有多少行
42 /etc/passwd
请统计/etc目录下以tab结尾的文件,一共有多少个?
# find /etc/ -name "*tab" -type f
# find /etc/ -name "*tab" -type f | wc -l
请统计/etc目录下以 .conf 结尾的文件,一共有多少个?
# find /etc/ -name "*.conf" -type f
# find /etc/ -name "*.conf" -type f | wc -l
请统计Linux正在运行的进程,一共有多少个?
[root@svr7 ~]# ps aux | wc -l
进程动态排名
• top 交互式工具
– 格式:top [-d 刷新秒数] [-U 用户名]
按键盘上 P(大写)按照CPU排序
按键盘上 M(大写)按照内存排序
检索进程
• pgrep — Process Grep
– 用途:pgrep [选项]... 查询条件
• 常用命令选项
– -l:输出进程名,而不仅仅是 PID
– -U:检索指定用户的进程
– -t:检索指定终端的进程
– -x:精确匹配完整的进程名
[root@svr7 ~]# who #当前系统有哪些用户正在登陆
pts:图形命令行终端
[root@svr7 ~]# pgrep crond
[root@svr7 ~]# pgrep -l crond
[root@svr7 ~]# pgrep -l log
[root@svr7 ~]# pgrep -lU lisi
[root@svr7 ~]# pgrep -lU lisi -t pts/3
[root@svr7 ~]# pgrep -lU lisi -t pts/2
控制进程
• 后台启动
– 在命令行末尾添加“&”符号,(运行并转入后台)
• Ctrl + z 组合键
– 挂起当前进程(暂停并转入后台)
• jobs 命令
– 查看后台任务列表
• fg 命令
– 将后台任务恢复到前台运行
• bg 命令
– 激活后台被挂起的任务
[root@svr7 ~]# sleep 800 & #运行放入后台
[root@svr7 ~]# jobs #查看后台运行的进程
[root@svr7 ~]# sleep 1000
^Z #按键盘上 Ctrl + Z 暂停放入后台
[2]+ 已停止 sleep 1000
[root@svr7 ~]# jobs #查看后台运行的进程
[root@svr7 ~]# bg 2 #将后台编号为2的进程继续运行
[root@svr7 ~]# jobs
[root@svr7 ~]# fg 2 #将后台编号为2的进程,恢复到前台
sleep 1000
^C #按键盘上 Ctrl + C 结束
[root@svr7 ~]# jobs
[root@svr7 ~]# fg 1 #将后台编号为1的进程,恢复到前台
sleep 800
^C #按键盘上 Ctrl + C 结束
[root@svr7 ~]# jobs
杀死进程
• 干掉进程的不同方法
– Ctrl+c 组合键,中断当前命令程序
– kill [-9] PID...
– killall [-9] 进程名...
– pkill 查找条件
[root@svr7 ~]# sleep 800 &
[root@svr7 ~]# sleep 900 &
[root@svr7 ~]# jobs
[root@svr7 ~]# jobs -l
[root@svr7 ~]# kill 15519
[root@svr7 ~]# jobs -l
[root@svr7 ~]# killall sleep
[root@svr7 ~]# jobs -l
使用journalctl工具
• 提取由 systemd-journal 服务搜集的日志
– 主要包括内核/系统日志、服务日志
• 常见用法
– journalctl | grep 关键词
– journalctl -u 服务名 [-p 优先级]
– journalctl -n 消息条数
– journalctl --since="yyyy-mm-dd HH:MM:SS" --
until="yyyy-mm-dd HH:MM:SS"
[root@svr7 ~]# yum -y install httpd
[root@svr7 ~]# systemctl restart httpd
#查看关于httpd服务日志
[root@svr7 ~]# journalctl -u httpd
#查看是否开机自启动
[root@svr7 /]# systemctl is-enabled httpd
disabled #禁止开机启动
[root@svr7 /]# systemctl enable httpd
[root@svr7 /]# systemctl is-enabled httpd
enabled #允许开机启动
[root@svr7 /]#
systemd
• 一个更高效的系统&服务管理器
– 开机服务并行启动,各系统服务间的精确依赖
– 服务目录:/lib/systemd/system/
[root@svr7 /]# vim /lib/systemd/system/httpd.service
RHEL6:运行级别 200
0:关机 0
1:单用户模式(基本功能的实现,破解Linux密码)50
2:多用户字符界面(不支持网络) 80
3:多用户字符界面(支持网络)服务器默认的运行级别 100
4:未定义
5:图形界面 190
6:重起 0
切换运行级别:init 数字
RHEL7:运行模式
字符模式:multi-user.target
图形模式:graphical.target
当前直接切换到图形模式
[root@svr7 /]# systemctl isolate graphical.target
当前直接切换到字符模式
[root@svr7 /]# systemctl isolate multi-user.target
查看每次开机默认进入模式
# systemctl get-default
multi-user.target
设置永久策略,每次开机自动进入graphical.target
# systemctl set-default graphical.target
# reboot
• 常见用法
– journalctl | grep 关键词
– journalctl -u 服务名 [-p 优先级]
– journalctl -n 消息条数
– journalctl --since="yyyy-mm-dd HH:MM:SS" --
until="yyyy-mm-dd HH:MM:SS"
[root@svr7 ~]# yum -y install httpd
[root@svr7 ~]# systemctl restart httpd
#查看关于httpd服务日志
[root@svr7 ~]# journalctl -u httpd
systemctl控制
• Linux系统和服务管理器
– 是内核引导之后加载的第一个初始化进程(PID=1)
– 负责掌控整个Linux的运行/服务资源组合
对于服务的管理
systemctl restart 服务名 #重起服务
systemctl start 服务名 #开启服务
systemctl stop 服务名 #停止服务
systemctl status 服务名 #查看服务当前的状态
systemctl enable 服务名 #设置服务开机自启动
systemctl disable 服务名 #设置服务不开机自启动
systemctl enable 服务名
#查看是否开机自启动
[root@svr7 /]# systemctl is-enabled httpd
disabled #禁止开机启动
[root@svr7 /]# systemctl enable httpd
[root@svr7 /]# systemctl is-enabled httpd
enabled #允许开机启动