1. 100.0.0.16/28 对应网段的网关地址、广播地址、可分配IP地址范围
网络地址是 100.0.0.16
广播地址是 100.0.0.31
可分配地址范围是 100.0.0.17–100.0.0.30
2. 使用man手册学习tcpdump的使用
tcpdump是用于转存网络上的数据流。
语法格式如下:
tcpdump [option…] [expression]
常用选项 含义
-c 接收指定数量数据包后退出
-i 指定监听的网卡接口
-l 标准输出
-n 不将数字格式转换名字
几种关键字 类型
host,port 指定类型的关键字
src,dst,src or dst 确定传输方向的关键字
tcp,udp,arp,ip 指定协议的关键字
gateway,broadcast 其他关键字
支持的运算符 含义
and (&&) 与运算
or (||) 或运算
not (!) 非运算
> 大于
< 小于
= 等于
>> 右移
<< 左移
proto[x:y] 过滤从x字节开始的y字节数
示例 用途
tcpdump -i eth1 监视eth1接口
tcpdump host 210.27.48.1 截获所有210.27.48.1 的主机收到的和发出的所有的数据包
tcpdump -i eth0 src host webserver 截获主机webserver发送的所有数据
tcpdump -i eth0 dst host webserver 监视所有发送到主机webserver的数据包
tcpdump tcp port 23 and host 210.27.48.1 获取主机210.27.48.1接收或发出的telnet包
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
tcpdump -i eth1 ‘((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host 192.168.1.200)))’ 抓取所有经过eth1,目的地址是192.168.1.254或192.168.1.200端口是80的TCP数
tcpdump -i eth1 ‘((icmp) and ((ether dst host 00:01:02:03:04:05)))’ 抓取所有经过eth1,目标MAC地址是00:01:02:03:04:05的ICMP数据
tcpdump -i eth1 ‘((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))’ 抓取所有经过eth1,目的网络是192.168,但目的主机不是192.168.1.200的TCP数据
tcpdump -i eth1 ‘ip[0] & 0x0f > 5’ 同tcpdump -i eth1 ‘ip[0] & 15 > 5’
tcpdump -i eth1 ‘((ip[6:2] > 0) and (not ip[6] = 64))’ 匹配分片和最后分片
tcpdump -i eth1 ‘tcp[tcpflags] = tcp-syn’ 只抓SYN包
tcpdump -i eth1 ‘((port 25) and (tcp[(tcp[12]>>2):4] = 0x4d41494c))’ 抓取数据区开始为"MAIL"的包,"MAIL"的十六进制为0x4d41494c。其中>>是右移运算符
3. 详细叙述僵尸进程产生的原因以及危害
僵死进程产生的原因是:父子进程关系中,子进程退出后不会马上消失,而是留下了包含PID等信息的数据结构,然后向父进程发送SIGCHILD信号通知父进程处理,但是父进程由于某种原因并没有处理,导致子进程一直处于僵死状态。
僵死进程的危害:僵死进程不能使用kill命令来终止,因为僵死进程被认为是已经结束的进程。由于僵死进程占用了PID等系统资源,过多的僵死进程将导致系统没有PID可用,进而系统无法再产生新的子进程。
僵死进程的解决办法:杀掉产生僵死进程的父进程。如果僵死进程的父进程是init进程,那只有重启系统才能解决。此方法能解决僵死进程是由于父进程被杀掉后,它下面的子进程就变成了孤儿进程,最后被init进程接收。
关于僵死进程和孤儿进程:僵死进程是子进程生命终结后,父进程把它遗忘掉了,没有替他收尸,于是就成了僵死。孤儿进程是父进程老来得子还没有等到给子进程收尸,自己就挂了,于是就产生了孤儿进程。
4. 详细说明vmstat输出结果的含义
vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 608648 2208 311776 0 0 10 3 33 34 0 0 100 0 0```
procs部分 含义
r 可运行进程的个数,与核心数有关
b 处于不可中断睡眠进程的个数(被阻塞队列的长度)
memory部分(单位KB) 含义
swpd 交换内存的使用总量
free 空闲物理内存总量
buffer 用于buffer的内存总量
cache 用于cache的内存总量
swap部分 含义
si 从磁盘交换进内存的数据速率(KB/s)
so 从内存交换至磁盘的数据速率(KB/s)
io部分 含义
bi 从块设备读入到系统的数据速率
bo 保存数据到块设备的速率
system部分 含义
in 中断速率,包括时钟
cs context switch 进程切换速率
cpu部分 含义
us 用户进程消耗的CPU时间百分比
sy 内核进程消耗的CPU时间百分比
id 空闲时间百分比 ,Linux 2.5.41前,包括IO-wait time.
wa IO等待消耗的CPU时间百分比
st 虚拟机消耗的CPU时间百分比 ,2.6.11前此项是unknown