第六周

1、100.0.0.16/28 对应网段的网关地址、广播地址、可分配IP地址范围

广播地址:100.0.0.31

可分配IP地址范围:100.0.0.17 到 100.0.0.30

网关地址:为可分配地址中的任意一个

2、使用man手册学习tcpdump的使用

tcpdump - 转储网络上的数据流

      tcpdump [ -adeflnNOpqStvx ] [ -c count ] [ -F file ]

              [ -i interface ] [ -r file ] [ -s snaplen ]

              [ -T type ] [ -w file ] [ expression ]

选项(OPTIONS)

 -a   试着把网络和广播地址转换成名称。

  -c   当收到count报文后退出。

  -d   把编译好的报文匹配代码(packet-matching code)翻译成可读形式,传往标准输出,然后退出。

 -dd   把报文匹配代码(packet-matching code)以C程序片断的形式输出。

 -ddd 把报文匹配代码(packet-matching  code)以十进制数形式输出(前面加上总数)。

 -e     显示链路层报头。

 -f      以数字形式显示'外部的'互联网地址,而不是字符形式

 -F     把file的内容用作过滤表达式。忽略命令行上 的表达式。

 -i      监听interface。如果不指定接口,tcpdump在系统的接口清单中,寻找号码最小,已经配置好的接口 (loopback 除外)。选中的时候会中断连接。

 -l       行缓冲标准输出。可用于捕捉数据的同时查看数据。

 -n      不要把地址转换成名字(指的是主机地址, 端口号等)

 -N     不显示主机名字中的域名部分。

 -O     禁止运行报文匹配代码的优化器。这个选项只有当你怀疑优化器有bug时才有用。

-p       禁止把接口置成promiscuous(杂凑) 模式。

-q       快速输出。

-r       从file中读入数据报(文件是用-w选项创建的)。

-s      从每个报文中截取snaplen字节的数据,而不是缺省的68。

-T      把通过"expression" 挑选出来的报文解释成指定的type。

-S      显示绝对的,而不是相对的TCP流序号。

-t       禁止显示时戳标志。

-tt      显示未格式化的时戳标志。

-v      繁琐的输出。

-vv    更繁琐的输出。

-w    把原始报文存进file,不做分析和显示。

-x     以16进制数形式显示每一个报文(去掉链路层报头后)。

tcpdup表达式

用来选择要转储的数据报。如果没有指定expression,就转储网络的全部报文。否则,只转储相对expression为`true'的数据报。expression由一个或多个原语组成。原语通常由一个标识(id,名称或数字),和标识前面的一个或多个修饰子组成。

修饰子有三种不同的类型:

    type    类型修饰子指出标识名称或标识数字代表什么类型的东西。可以使用的类型有host,net和port。如果不指定类型修饰子,就使用缺省的 host 。

    dir       方向修饰子指出相对于标识的传输方向(数据是传入还是传出标识)。可以使用的方向有src,dst,src or dst 和  src  and  dst。如果不指定 方向修饰子,就使用缺省的src or dst。对于`null'链路层,用inbound和outbound修饰子指定所需的传输方向。

    proto   协议修饰子要求匹配指定的协议。可以使用的协议有:ether, fddi, ip,arp,rarp,decnet,lat,sca,moprc,mopdl,tcp和udp。如果不指定协议修饰子, 就使用所有符合类型的协议。

expr relop expr

如果这个关系式成立,则逻辑为真,其中relop 是 >, <, >=, <=,  =,  !=之一,expr是数学表达式,由 常整数,普通的二进制运算符[+, -, *, /, &, |],一个长度运算符,和指定的报文数据访问算符组成。

要访问报文内的数据,使用下面的语法:proto [ expr : size ]

Proto是ether,  fddi,  ip,  arp,  rarp,  tcp,  udp, or icmp 之一,同时也指出了下标操作的协议层。expr给出字节单位的偏移量,该偏移量相对于指定的协议层。Size是可选项,指出感兴趣的字节数,它可以是1,2,4,缺省为1字节。由关键字len给出的长度运算符指明报文的长度。

原语可以用下述方法结合使用:

     取反操作 (`!' or `not') 

     连结操作 (`&&' or `and') 

      或操作 (`||' or `or') 

取反操作有最高优先级。或操作和连结操作有相同的优先级,运算时从左到右结合。注意连结操作需要显式的and算符,而不是并列放置。

示例(EXAMPLES)

tcpdump -i ens33 -vnn host 10.10.10.122             #抓取包含10.10.10.122的数据包

tcpdump -i ens33 -vnn src host 10.10.10.122        #抓取源ip是10.10.10.122的数据包

tcpdump -i ens33 -vnn src host 10.10.10.122 and not port 22            #抓取源ip是10.10.10.122且端口不是22的数据包

tcpdump -i ens33 -vnn '\(src host 10.10.10.59 and dst port 22\) 'or '\(src host 10.10.10.68 and dst prot 80\)'        #抓取源ip是10.10.10.59且目的端口是22,或者源ip是10.10.10.68且目的端口是80的数据包

tcpdump -i ens33 -r /tmp/file host 10.10.10.58         #从/tmp/file记录中读取包含10.10.10.58的数据包 

3、详细叙述僵尸进程产生的原因以及危害

僵尸进程产生:

Linux 允许进程查询内核以获得其父进程的 PID,或者其任何子进程的执行状态。如果子进程已经终止,那么,它的终止代号将告诉父进程这个任务是否已成功地完成。如果一个进程已经终止,但是它的父进程尚未调用回收子进程,这时的进程状态称为僵死状态,处于僵死状态的进程称为僵尸进程。

僵尸进程危害:

在进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等。但是仍然为其保留一定的信息(包括进程号,退出状态,运行时间等)。直到父进程通过调用回收子进程时才释放。如果进程不调用回收子进程的话,那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程。

4、详细说明vmstat输出结果的含义

 [root@localhost admin]# vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r  b  swpd  free  buff  cache  si  so    bi    bo  in  cs us sy id wa st

1  0      0 731392  2084 520596    0    0  3879  186  887 1836 13 24 62  1  0

Procs

      r:等待运行的进程数

      b:处在非中断睡眠状态的进程数

      w:被交换出去的可运行的进程数。

      此数由linux计算得出,但linux并不耗尽交换空间

Memory

      swpd:虚拟内存使用情况,单位:KB

      free:空闲的内存,单位KB

      buff:被用来做为缓存的内存数,作为块设备的缓存,单位:KB

      cache:被用来做为缓存的内存数,作为文件系统的缓存,单位:KB

Swap

      si:从磁盘交换到内存的交换页数量,单位:KB/秒

      so:从内存交换到磁盘的交换页数量,单位:KB/秒

IO

      bi:发送到块设备的块数,单位:块/秒

      bo:从块设备接收到的块数,单位:块/秒

System

      in:每秒的中断数,包括时钟中断

      cs:每秒的环境(上下文)切换次数

CPU

      按CPU的总使用百分比来显示

      us:CPU使用时间

      sy:CPU系统使用时间

      id:闲置时间

      wa:等待IO时间 

你可能感兴趣的:(第六周)