Linux基础-week6

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

IPV4地址一共为32位,28表示网络段为28为,那么主机段为4位

网关地址为主机位

11111111 11111111 11111111 11110000

100.0.0.16对应的网段为 100.0.0.0001000 即100.0.0.16, 为其网关地址

那么广播地址为100.0.0.00011111 即100.0.0.31

可分配的IP地址为 100.0.0.00010001 -100.0.0.0001110,即100.0.0.17 – 100.0.0.30,共14个地址

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

tcpdump - dump traffic on a network

简单来说,tcpdump是一个对网络数据包抓取,分析的工具,其官方网址https://www.tcpdump.org/

下面介绍其简单用法

tcpdump -D 列出可以抓包的接口

image

tcpdump -i interface, 指定接口

本机只有一个接口为ens33, 但是抓取的数据显示在终端上会比较乱,可以用-输出到一个文件中以便查看

tcpdump -i ens33 -nn > /tcpdump/dump1.text

使用-nn选项,显示IP

可以看到抓取的信息

image

抓取的这些信息的含义:

第一段

00:58:51.814610 是表示抓取时间,是一个本地时间戳

第二段

IP 192.168.2.18.22 > 192.168.2.10.1962

左边的IP是源地址IP+端口号

右边是目的IP+端口号:

第三段

Flags [P.] 是TCP报文标记,通常由以下几个值

S

SYN

Connection Start

F

FIN

Connection Finish

P

PUSH

Data push

R

RST

Connection reset

.

ACK

Acknowledgment

该字段也可以是这些值的组合,例如 [S.] 代表 SYN-ACK 数据包

第四段

seq 2900043279:2900043491 代表数据流的开始字节和结束字节

第五段

ack 82691435 : Acknowledge number

第六段

win 274 窗口大小,表示接受缓冲区可用的字节数

第七段

length 212 表示数据表有效字节长度

要明白字段含义,需要了解TCP包头的格式,下面给出一个包头格式说明,具体信息请查看相关文档

image

头部固定为20字节,每行4字节

-c:指定要抓取的包数量

-n:对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。
-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。

-P --direction:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"

-s len:设置tcpdump的数据包抓取长度为len

-q:快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短

-w 把抓取的包输出到一个文档

tcpdump表达式

表达式用于筛选输出哪些类型的数据包

tcpdump的表达式由一个或多个"单元"组成,每个单元一般包含ID的修饰符和一个ID(数字或名称)。有三种修饰符:

(1).type:指定ID的类型。

可以给定的值有host/net/port/portrange。例如"host foo","net 128.3","port 20","portrange 6000-6008"。默认的type为host。

(2).dir:指定ID的方向。

可以给定的值包括src/dst/src or dst/src and dst,默认为src or dst。例如,"src foo"表示源主机为foo的数据包,"dst net 128.3"表示目标网络为128.3的数据包,"src or dst port 22"表示源或目的端口为22的数据包。

(3).proto:通过给定协议限定匹配的数据包类型。

常用的协议有tcp/udp/arp/ip/ether/icmp等,若未给定协议类型,则匹配所有可能的类型。例如"tcp port 21","udp portrange 7000-7009"。

所以,一个基本的表达式单元格式为"proto dir type ID"

除了使用修饰符和ID组成的表达式单元,还有关键字表达式单元:gateway,broadcast,less,greater以及算术表达式。

表达式单元之间可以使用操作符" and / && / or / || / not / ! "进行连接,从而组成复杂的条件表达式。如"host foo and not port ftp and not port ftp-data",这表示筛选的数据包要满足"主机为foo且端口不是ftp(端口21)和ftp-data(端口20)的包",常用端口和名字的对应关系可在linux系统中的/etc/service文件中找到。

另外,同样的修饰符可省略,如"tcp dst port ftp or ftp-data or domain"与"tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain"意义相同,都表示包的协议为tcp且目的端口为ftp或ftp-data或domain(端口53)。

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

一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程。通过ps命令查看其带有defunct的标志。僵尸进程是一个早已死亡的进程,但在进程表 (processs table)中仍占了一个位置(slot)。

但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程。因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看看有没有哪个 进程是刚刚结束的这个进程的子进程,如果是的话,就由Init进程来接管他,成为他的父进程,从而保证每个进程都会有一个父进程。而Init进程会自动 wait其子进程,因此被Init接管的所有进程都不会变成僵尸进程。

由于进程表的容量是有限的,所以defunct进程不仅占用系统的内存资源,影响系统的性能,而且如果其数目太多,还会导致系统瘫痪。

杀死僵尸进程
找到该defunct僵尸进程的父进程,将该进程的父进程杀掉,则此defunct进程将自动消失
    命令: ps -ef | grep defunct_process_pid

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

image

Procs r: The number of runnable processes (running or waiting for run time). 可运行cpu数量

b: The number of processes in uninterruptible sleep.
处于不可中断的进程数
Memory

    swpd: the amount of virtual memory used.
    交换内存使用量

    free: the amount of idle memory.
    空闲内存量

    buff: the amount of memory used as buffers.
    用于buffer的内存使用量

    cache: the amount of memory used as cache.
    用于cache的内存使用量

    inact: the amount of inactive memory. (-a option)
    非活动内存量

    active: the amount of active memory. (-a option)
    活动内存量
Swap

si: Amount of memory swapped in from disk (/s).
从磁盘进入内存的数据速率 kb/s

so: Amount of memory swapped to disk (/s).
此内存交换至磁盘的数据速录 kb/s
IO

bi: Blocks received from a block device (blocks/s).
从块设备读入的数据速率

bo: Blocks sent to a block device (blocks/s).
发送到块设备的数据速率
System

in: The number of interrupts per second, including the clock.
中断速率

cs: The number of context switches per second.
上下文切换速率
CPU

These are percentages of total CPU time.

us: Time spent running non-kernel code. (user time, including nice time)
用户空间占cpu时间百分比

sy: Time spent running kernel code. (system time)
内核空间占cpu时间百分比

id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
cpu空闲时间baifenb 

wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.
cpu等待IO时间百分比

st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown
被虚拟机占用的cpu时间百分比

猜你喜欢

转载自www.cnblogs.com/nuanyangyang/p/11416031.html