10.6 监控io性能
10.7 free命令
10.8 ps命令
10.9 查看网络状态
10.10 linux下抓包
扩展tcp三次握手四次挥手 http://www.doc88.com/p-9913773324388.html
tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html
10.6 监控io性能
磁盘状态的两个命令
iostat -x 磁盘使用
iotop 磁盘使用
我们在运维工作中,除了查看内存 cpu工作情况外,磁盘io也是非常重要的指标。
有时候,内存和CPU明明还有剩余,但是系统负载很高,用vmstat查看状态,会发现b和wa比较大,这说明系统的磁盘有瓶颈。所以,要更加详细去查看磁盘的状态。
监控系统状态
iostat命令 在安装sysstat的时候已经安装好了
用法可以是#iostat 也可以#iostat 1
用法和vmstat挺相似的
[root@centos7 sed]# iostat
Linux 3.10.0-693.el7.x86_64 (centos7.4-01) 2018年03月20日 _x86_64_(1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.06 0.00 0.16 0.08 0.00 99.69
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.68 8.63 1.40 107340 17392
sdb 0.02 0.29 0.00 3612 0
dm-0 0.00 0.08 0.00 1036 0
这里可以看到sda sdb两块硬盘 和 读、写速度 这个命令看的东西不太丰富,
因为这些#sar -b都可以看到的。
[root@centos7 sed]# sar -b
Linux 3.10.0-693.el7.x86_64 (centos7.4-01) 2018年03月20日 _x86_64_(1 CPU)
11时25分06秒 LINUX RESTART
11时30分02秒 tps rtps wtps bread/s bwrtn/s
11时40分01秒 0.07 0.00 0.07 0.00 1.27
11时50分01秒 0.30 0.14 0.16 3.84 3.76
12时00分01秒 0.07 0.01 0.06 0.78 0.68
12时10分01秒 0.11 0.02 0.09 0.31 1.14
12时20分01秒 0.88 0.41 0.47 11.15 11.03
12时30分01秒 0.04 0.00 0.04 0.00 0.55
12时40分01秒 0.05 0.00 0.05 0.00 0.53
[root@centos7 sed]# iostat -x
Linux 3.10.0-693.el7.x86_64 (centos7.4-01) 2018年03月20日 _x86_64_(1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.06 0.00 0.15 0.07 0.00 99.72
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.01 0.36 0.23 7.32 1.23 29.14 0.01 15.13 5.89 29.42 2.64 0.15
sdb 0.00 0.00 0.02 0.00 0.25 0.00 29.25 0.00 1.53 1.53 0.00 0.93 0.00
dm-0 0.00 0.00 0.00 0.00 0.07 0.00 48.19 0.00 3.53 3.53 0.00 1.47 0.00
关注点
- %util 这一列表示io等待
- 磁盘使用,有多少时间占用cpu的,CPU有一部分是给进程处理的,计算的。也有一部分是要等待io的,等待磁盘读和写。
- 这个等待的时间比是多少 就是%util
- 如果这个等待时间比大,读和写跟着大。证明磁盘读写处于繁忙状态,如果读和写不大,只是%util大就说明硬盘可能存在问题,有故障。如果硬盘很慢的话,肯定会影响性能,即使是CPU再厉害,运算再快,硬盘跟不上,也是会存在很大的瓶颈。
比如发现磁盘io很忙,很频繁,可以使用#iotop (第一次运行需要安装)
它和top很相似,也是动态显示,排序。
[root@centos7 sed]# iotop
10.7 free命令
free 命令可以查看当前系统的总内存大小以及使用情况。
CentOS 7系统的free命令显示结果比CentOS 6更加简洁了一些,但大体上的内容是一致的。
[root@centos7 ~]# free
total used free shared buff/cache available
Mem: 1008152 126864 605284 6880 276004 702136
Swap: 2097148 0 2097148
三行,第一行是说明,第二行内存使用情况,第三行swap交换分区使用情况。需要关注的是第二行内存。
添加-m 使其输出单位是M,
[root@centos7 ~]# free -m
total used free shared buff/cache available
Mem: 984 123 591 6 269 685
Swap: 2047 0 2047
-h显示当前适当的单位 *常用
[root@centos7 ~]# free -h
total used free shared buff/cache available
Mem: 984M 123M 591M 6.7M 269M 685M
Swap: 2.0G 0B 2.0G
解释:
linux系统 会把内存预分配一部分给 buff/cache
buffer和cache的区别方法
000是数据
000(磁盘)-->内存(cache)-->CPU
CPU要计算时,需要把数据从磁盘中读出来,临时放到内存中,这部分内存就是cache。
cpu(000)-->内存(buffer)-->磁盘
数据经过CPU计算,即将要写入磁盘,这时用的内存为buffer。
因为磁盘和CPU之间的数据转换速度有点差别,所以需要通过内存来缓解这种速度换算。
total=used+free+buff/cache
avaiable:系统可使用内存有多大。
avaiable包含了free和buffer/cache剩余部分。(available是关注点)
total和available是不同的。
如果发现cache/buff占用超过真实物理内存的50%,可以考虑释放它,处理方法:http://blog.51cto.com/13578154/2150303
10.8 ps命令
PS命令是专门显示系统进程,作用是汇报当前进程的快照。相当于windows的任务管理器。
#ps aux 把系统的所有进程都列出来
[root@DD-Server-9F ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 51632 3688 ? Ss 6月11 0:49 /usr/lib/systemd/systemd --system --deserialize 21
root 2 0.0 0.0 0 0 ? S 6月11 0:01 [kthreadd]
root 3 0.0 0.0 0 0 ? S 6月11 0:01 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 6月11 0:00 [kworker/0:0H]
root 8 0.0 0.0 0 0 ? S 6月11 0:00 [migration/0]
root 9 0.0 0.0 0 0 ? S 6月11 0:00 [rcu_bh]
root 10 0.0 0.0 0 0 ? S 6月11 1:45 [rcu_sched]
root 11 0.0 0.0 0 0 ? S 6月11 1:36 [watchdog/0]
root 12 0.0 0.0 0 0 ? S 6月11 0:13 [watchdog/1]
root 13 0.0 0.0 0 0 ? S 6月11 0:00 [migration/1]
root 14 0.0 0.0 0 0 ? S 6月11 0:03 [ksoftirqd/1]
root 16 0.0 0.0 0 0 ? S< 6月11 0:00 [kworker/1:0H]
root 17 0.0 0.0 0 0 ? S 6月11 0:27 [kworker/u34:0]
root 18 0.0 0.0 0 0 ? S 6月11 0:12 [watchdog/2]
root 19 0.0 0.0 0 0 ? S 6月11 0:00 [migration/2]
root 20 0.0 0.0 0 0 ? S 6月11 0:00 [ksoftirqd/2]
root 22 0.0 0.0 0 0 ? S< 6月11 0:00 [kworker/2:0H]
root 23 0.0 0.0 0 0 ? S 6月11 0:13 [watchdog/3]
root 24 0.0 0.0 0 0 ? S 6月11 0:00 [migration/3]
root 25 0.0 0.0 0 0 ? S 6月11 0:00 [ksoftirqd/3]
root 27 0.0 0.0 0 0 ? S< 6月11 0:00 [kworker/3:0H]
root 30 0.0 0.0 0 0 ? S 6月11 0:15 [kdevtmpfs]
root 31 0.0 0.0 0 0 ? S< 6月11 0:00 [netns]
root 32 0.0 0.0 0 0 ? S 6月11 0:01 [khungtaskd]
root 33 0.0 0.0 0 0 ? S< 6月11 0:00 [writeback]
root 34 0.0 0.0 0 0 ? S< 6月11 0:00 [kintegrityd]
root 35 0.0 0.0 0 0 ? S< 6月11 0:00 [bioset]
root 36 0.0 0.0 0 0 ? S< 6月11 0:00 [kblockd]
root 37 0.0 0.0 0 0 ? S< 6月11 0:00 [md]
root 43 0.0 0.0 0 0 ? S 6月11 0:00 [kswapd0]
root 44 0.0 0.0 0 0 ? S 6月11 0:00 [kswapd1]
root 45 0.0 0.0 0 0 ? SN 6月11 0:00 [ksmd]
root 46 0.0 0.0 0 0 ? SN 6月11 0:11 [khugepaged]
root 47 0.0 0.0 0 0 ? S< 6月11 0:00 [crypto]
root 55 0.0 0.0 0 0 ? S< 6月11 0:00 [kthrotld]
root 56 0.0 0.0 0 0 ? S 6月11 0:00 [kworker/u33:1]
root 57 0.0 0.0 0 0 ? S< 6月11 0:00 [kmpath_rdacd]
root 58 0.0 0.0 0 0 ? S< 6月11 0:00 [kpsmoused]
root 60 0.0 0.0 0 0 ? S< 6月11 0:00 [ipv6_addrconf]
root 79 0.0 0.0 0 0 ? S< 6月11 0:00 [deferwq]
root 114 0.0 0.0 0 0 ? S 6月11 0:00 [kauditd]
root 251 0.0 0.0 0 0 ? S< 6月11 0:00 [ata_sff]
root 252 0.0 0.0 0 0 ? S 6月11 0:00 [scsi_eh_0]
root 254 0.0 0.0 0 0 ? S< 6月11 0:00 [scsi_tmf_0]
root 258 0.0 0.0 0 0 ? S 6月11 0:00 [scsi_eh_1]
root 259 0.0 0.0 0 0 ? S< 6月11 0:00 [scsi_tmf_1]
root 263 0.0 0.0 0 0 ? S< 6月11 0:00 [mpt_poll_0]
root 264 0.0 0.0 0 0 ? S< 6月11 0:00 [mpt/0]
root 280 0.0 0.0 0 0 ? S< 6月11 0:00 [ttm_swap]
root 290 0.0 0.0 0 0 ? S< 6月11 0:06 [kworker/1:1H]
root 292 0.0 0.0 0 0 ? S 6月11 0:00 [scsi_eh_2]
root 293 0.0 0.0 0 0 ? S< 6月11 0:00 [scsi_tmf_2]
root 311 0.0 0.0 0 0 ? S< 6月11 0:00 [kworker/2:1H]
root 312 0.0 0.0 0 0 ? S< 6月11 0:43 [kworker/0:1H]
root 317 0.0 0.0 0 0 ? S< 6月11 0:00 [bioset]
root 318 0.0 0.0 0 0 ? S< 6月11 0:00 [xfsalloc]
root 319 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs_mru_cache]
root 320 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-buf/sdc3]
root 321 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-data/sdc3]
root 322 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-conv/sdc3]
root 323 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-cil/sdc3]
root 324 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-reclaim/sdc]
root 325 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-log/sdc3]
root 326 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-eofblocks/s]
root 327 0.0 0.0 0 0 ? S 6月11 13:37 [xfsaild/sdc3]
root 395 0.0 0.3 69580 28520 ? Ss 6月11 2:42 /usr/lib/systemd/systemd-journald
root 422 0.0 0.0 43768 1672 ? Ss 6月11 4:53 /usr/lib/systemd/systemd-udevd
root 452 0.0 0.0 0 0 ? SN 6月11 0:00 [kipmi0]
root 472 0.0 0.0 0 0 ? S< 6月11 0:00 [kvm-irqfd-clean]
root 473 0.0 0.0 0 0 ? S< 6月11 0:00 [edac-poller]
root 483 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-buf/sdc1]
root 484 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-data/sdc1]
root 485 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-conv/sdc1]
root 486 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-cil/sdc1]
root 487 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-reclaim/sdc]
root 488 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-log/sdc1]
root 489 0.0 0.0 0 0 ? S< 6月11 0:00 [xfs-eofblocks/s]
root 490 0.0 0.0 0 0 ? S 6月11 0:00 [xfsaild/sdc1]
root 509 0.0 0.0 55452 1072 ? S<sl 6月11 0:03 /sbin/auditd
polkitd 532 0.0 0.1 534888 12932 ? Ssl 6月11 0:04 /usr/lib/polkit-1/polkitd --no-debug
root 533 0.0 0.2 519392 19004 ? Ssl 6月11 3:46 /usr/sbin/rsyslogd -n
root 534 0.0 0.0 21576 1228 ? Ss 6月11 4:28 /usr/sbin/irqbalance --foreground
dbus 538 0.0 0.0 24544 1824 ? Ss 6月11 0:11 /bin/dbus-daemon --system --address=systemd: --nofork --nopid
root 546 0.0 0.0 24600 2044 ? Ss 6月11 1:01 /usr/lib/systemd/systemd-logind
root 553 0.0 0.0 110044 800 tty1 Ss+ 6月11 0:00 /sbin/agetty --noclear tty1 linux
chrony 560 0.0 0.0 115640 1728 ? S 6月11 0:11 /usr/sbin/chronyd
root 570 0.0 0.1 472244 9080 ? Ssl 6月11 0:46 /usr/sbin/NetworkManager --no-daemon
root 884 0.0 0.2 562388 16664 ? Ssl 6月11 5:35 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 885 0.0 0.0 105996 4040 ? Ss 6月11 0:00 /usr/sbin/sshd -D
root 1097 0.0 0.0 89544 2148 ? Ss 6月11 0:18 /usr/libexec/postfix/master -w
postfix 1099 0.0 0.0 89716 3976 ? S 6月11 0:03 qmgr -l -t unix -u
root 1161 0.0 0.0 0 0 ? S< 6月11 0:12 [kworker/3:1H]
root 3476 0.0 0.0 113308 1588 pts/1 S 7月24 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysq
mysql 3626 0.0 5.7 1629132 460856 pts/1 Sl 7月24 2:13 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --data
root 5454 0.0 0.0 123660 5028 ? Ss 7月18 1:33 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 5455 0.0 0.0 123660 5800 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5456 0.0 0.0 123660 5732 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5457 0.0 0.0 123660 5736 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5458 0.0 0.0 123660 4756 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5459 0.0 0.0 123660 4760 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5460 0.0 0.0 123660 4760 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5461 0.0 0.0 123660 4760 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5462 0.0 0.0 123660 4760 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5463 0.0 0.0 123660 4760 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5464 0.0 0.0 123660 4764 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5465 0.0 0.0 123660 4764 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5466 0.0 0.0 123660 4764 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5467 0.0 0.0 123660 4764 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5468 0.0 0.0 123660 4764 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5469 0.0 0.0 123660 4764 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5470 0.0 0.0 123660 4764 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5471 0.0 0.0 123660 4764 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5472 0.0 0.0 123660 4764 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5473 0.0 0.0 123660 4764 ? S 7月18 0:00 php-fpm: pool kevin.com
php-fpm 5474 0.0 0.0 123660 4764 ? S 7月18 0:00 php-fpm: pool kevin.com
root 5679 0.0 0.0 126308 1620 ? Ss 6月11 0:08 /usr/sbin/crond -n
root 8758 0.0 0.0 0 0 ? S 7月25 0:00 [kworker/u32:2]
nobody 9313 0.0 0.0 23368 3588 ? S 00:00 0:00 nginx: worker process
nobody 9314 0.0 0.0 23368 3588 ? S 00:00 0:00 nginx: worker process
root 10402 0.0 0.0 21488 1832 ? Ss 7月19 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/loc
root 10622 0.0 0.0 0 0 ? S 05:17 0:00 [kworker/u32:0]
postfix 11369 0.0 0.0 89696 3996 ? S 09:00 0:00 pickup -l -t unix -u
root 11481 0.0 0.0 0 0 ? S 09:30 0:00 [kworker/2:2]
root 11570 0.0 0.0 0 0 ? S 09:58 0:00 [kworker/1:3]
root 11610 0.0 0.0 0 0 ? S 10:06 0:00 [kworker/3:2]
root 11643 0.0 0.0 0 0 ? S 10:17 0:00 [kworker/3:0]
root 11647 0.2 0.0 0 0 ? S 10:18 0:01 [kworker/0:0]
root 11666 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/2:0]
root 11668 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/3:1]
root 11677 0.0 0.0 0 0 ? S 10:23 0:00 [kworker/1:0]
root 11695 0.1 0.0 0 0 ? S 10:23 0:00 [kworker/0:2]
root 11703 0.0 0.0 0 0 ? S 10:27 0:00 [kworker/2:1]
root 11708 0.0 0.0 0 0 ? S 10:28 0:00 [kworker/1:1]
root 11709 0.0 0.0 0 0 ? S 10:29 0:00 [kworker/0:1]
root 11712 0.0 0.0 151104 1788 pts/1 R+ 10:29 0:00 ps aux
root 16098 3.8 6.7 5713804 541568 ? Sl 7月20 320:02 /usr/local/jdk1.8/bin/java -Djava.util.logging.config.file=/u
root 16125 1.0 1.2 3064644 103568 ? Sl 7月20 86:14 /usr/local/jdk1.8/jre/bin/java -Xms8m -Xmx32m -Dfile.encoding
root 16162 1.0 1.3 3199820 107396 ? Sl 7月20 87:45 /usr/local/jdk1.8/jre/bin/java -Xms8m -Xmx32m -Dfile.encoding
root 28443 0.0 0.0 148552 5700 ? Ss 7月16 0:07 sshd: root@pts/1
root 28445 0.0 0.0 116616 3304 pts/1 Ss 7月16 0:15 -bash
root 29014 0.0 0.0 262780 2340 ? Ssl 7月23 0:00 /usr/sbin/gssproxy -D
rpcuser 29015 0.0 0.0 42420 1704 ? Ss 7月23 0:00 /usr/sbin/rpc.statd
root 29021 0.0 0.0 0 0 ? S< 7月23 0:00 [rpciod]
root 29022 0.0 0.0 0 0 ? S< 7月23 0:00 [xprtiod]
rpc 29345 0.0 0.0 65392 1684 ? Ss 7月23 0:00 /sbin/rpcbind -w
root 29362 0.0 0.0 0 0 ? S 7月23 0:00 [kworker/u33:2]
root 29561 0.0 0.0 0 0 ? S 7月23 0:00 [kworker/u34:2]
root 29630 0.0 0.0 43860 544 ? Ss 7月23 0:00 /usr/sbin/rpc.idmapd
root 29631 0.0 0.1 49596 8444 ? Ss 7月23 0:00 /usr/sbin/rpc.mountd
root 29641 0.0 0.0 0 0 ? S< 7月23 0:00 [nfsd4_callbacks]
root 29642 0.0 0.0 0 0 ? S 7月23 0:00 [lockd]
root 29645 0.0 0.0 0 0 ? S 7月23 0:00 [nfsd]
root 29646 0.0 0.0 0 0 ? S 7月23 0:00 [nfsd]
root 29647 0.0 0.0 0 0 ? S 7月23 0:00 [nfsd]
root 29648 0.0 0.0 0 0 ? S 7月23 0:00 [nfsd]
root 29649 0.0 0.0 0 0 ? S 7月23 0:00 [nfsd]
root 29650 0.0 0.0 0 0 ? S 7月23 0:00 [nfsd]
root 29651 0.0 0.0 0 0 ? S 7月23 0:00 [nfsd]
root 29652 0.0 0.0 0 0 ? S 7月23 0:00 [nfsd]
查看系统某个进程 利用grep来筛选
格式# ps aux |grep 进程名称
[root@centos7 ~]# ps aux |grep nginx
root 1831 0.0 0.0 112676 984 pts/0 R+ 17:45 0:00 grep --color=auto nginx
#这种用法和#ps aux差不多。都是显示所有进程
[root@centos7 ~]# ps -elf
关注点
PID表示进程的ID。
- kill pid可以把相关进程杀死 用法格式是#kill 1346。如果这样都不能把终止进程的话,可以使用“kill -9 进程pid”,这样有点暴力,严重的话会丢失数据,一般少用,所以慎用。
- 每个进程都有一个目录/proc/505(pid)/
**test **
[root@centos7 ~]# 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
3 0 0 604728 2076 274284 0 0 8 2 48 54 0 0 100 0 0
[root@centos7 ~]# vmstat 1
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 604868 2076 274316 0 0 8 2 48 54 0 0 100 0 0
0 0 0 604852 2076 274316 0 0 0 0 45 41 0 0 100 0 0
0 0 0 604852 2076 274316 0 0 0 0 63 53 1 0 99 0 0
^Z
[1]+ 已停止 vmstat 1
[root@centos7 ~]# ps aux |grep vmstat显示T状态
root 1878 0.0 0.1 148316 1356 pts/0 T 18:09 0:00 vmstat 1
root 1884 0.0 0.0 112676 980 pts/0 S+ 18:09 0:00 grep --color=auto vmstat
[root@centos7 ~]# fg调回前台
vmstat 1
2 0 0 604224 2076 274452 0 0 124 149 23199 21059 0 0 100 0 0
0 0 0 604224 2076 274452 0 0 0 0 47 43 0 0 100 0 0
[root@centos7 ~]# ps aux |grep vmstat 此时vmstat已经处于S+状态,S+状态表示sleep且处于前台。+表示前台。
root 1878 0.0 0.1 148316 1356 pts/0 S+ 18:09 0:00 vmstat 1
root 1917 0.0 0.0 112676 980 pts/1 R+ 18:18 0:00 grep --color=auto vmstat
注释:
STAT状态
- Z僵尸进程。
- <:高优先级进程。CPU资源会优先给此进程使用。
- N:低优先级进程。
- L:在内存中被锁了内存分页。
- s:主进程,后面nginx或者php-fpm服务会经常有它的影子。
- l:多线程进程,意思就是,这个进程有多个线程。
- 线程和进程的最大的区别就是:
- 1 进程里包含了线程,线程是进程的子单元,一个进程有多个线程。
- 2 同一个进程下的线程全部共享相同的内存(线程与线程之间的内存互相共享),而进程之间内存相互隔离。
- +:前台进程。
- D 不能中断的进程,通常是IO。这个状态直接影响系统的负载。
- R run状态的进程,某个时间段在使用CPU。
- S sleep状态的进程。
- T已经停止或暂停的进程。如果我们运行一个命令,例如vmstat 1,我们按一下ctrl+z暂停进程时,用ps命令就会显示T状态。
START开始的时间
TIME开始的时长
COMMAND命令,和top的command是一样的
10.9 查看网络状态
本节学到netstat命令,此命令是用来查看网络状态的。
linux服务器上面有很多服务,服务往往跟客户端之间进行相互通讯的,意味着,它要有监听端口,有对外通讯的端口。 netstat就是查看tcp/ip通讯的一个状态。
给系统安装一个服务,安装一个Nginx,提供一个web服务。。。。有了这些服务之后,就需要给这些服务监听一个端口。正常情况下,一台机器,它是没有任何端口监听的,如果没有任何端口,是没办法进行监听的。
*了解一下socket文件的作用。
[root@centos7 ~]# netstat -lnp 监听端口,打印当前系统启动哪些端口。
# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 29345/rpcbind
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 29631/rpc.mountd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9313/nginx: worker
tcp 0 0 0.0.0.0:44083 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:45491 0.0.0.0:* LISTEN 29015/rpc.statd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 885/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1097/master
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp6 0 0 127.0.0.1:44299 :::* LISTEN 16162/java
tcp6 0 0 127.0.0.1:24299 :::* LISTEN 16162/java
tcp6 0 0 :::34093 :::* LISTEN 29015/rpc.statd
tcp6 0 0 :::111 :::* LISTEN 29345/rpcbind
tcp6 0 0 :::20048 :::* LISTEN 29631/rpc.mountd
tcp6 0 0 :::8080 :::* LISTEN 16098/java
tcp6 0 0 :::22 :::* LISTEN 885/sshd
tcp6 0 0 127.0.0.1:50935 :::* LISTEN 16125/java
tcp6 0 0 ::1:25 :::* LISTEN 1097/master
tcp6 0 0 :::36699 :::* LISTEN -
tcp6 0 0 127.0.0.1:54299 :::* LISTEN 16162/java
tcp6 0 0 :::2049 :::* LISTEN -
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 16098/java
tcp6 0 0 127.0.0.1:40935 :::* LISTEN 16125/java
tcp6 0 0 127.0.0.1:20935 :::* LISTEN 16125/java
tcp6 0 0 :::8009 :::* LISTEN 16098/java
tcp6 0 0 :::3306 :::* LISTEN 3626/mysqld
[root@centos7 ~]# netstat -an查看tcp/ip状态
# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:44083 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:45491 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN
tcp 0 0 192.88.24.200:20048 192.88.34.196:60898 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61624 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60864 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60598 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61649 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61603 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61618 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60872 ESTABLISHED
tcp 0 300 192.88.24.200:22 192.88.34.196:60499 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61643 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60664 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60668 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60894 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61620 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60892 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60674 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60600 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60602 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60868 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60666 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60866 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60613 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60596 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61613 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60874 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60680 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60896 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60678 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61647 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60604 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60594 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61611 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61607 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60607 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60670 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60609 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60611 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61622 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60672 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60870 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60662 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:60676 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61605 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61609 ESTABLISHED
tcp 0 0 192.88.24.200:20048 192.88.34.196:61645 ESTABLISHED
tcp6 0 0 127.0.0.1:44299 :::* LISTEN
tcp6 0 0 127.0.0.1:24299 :::* LISTEN
tcp6 0 0 :::34093 :::* LISTEN
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 :::20048 :::* LISTEN
tcp6 0 0 :::8080 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 127.0.0.1:50935 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
tcp6 0 0 :::36699 :::* LISTEN
tcp6 0 0 127.0.0.1:54299 :::* LISTEN
tcp6 0 0 :::2049 :::* LISTEN
tcp6 0 0 127.0.0.1:8005 :::* LISTEN
tcp6 0 0 127.0.0.1:40935 :::* LISTEN
tcp6 0 0 127.0.0.1:20935 :::* LISTEN
tcp6 0 0 :::8009 :::* LISTEN
tcp6 0 0 :::3306 :::* LISTEN
tcp6 0 0 127.0.0.1:46926 127.0.0.1:54299 ESTABLISHED
tcp6 0 0 127.0.0.1:50935 127.0.0.1:45208 ESTABLISHED
tcp6 0 0 127.0.0.1:40210 127.0.0.1:3306 ESTABLISHED
tcp6 0 0 127.0.0.1:3306 127.0.0.1:40212 ESTABLISHED
tcp6 0 0 127.0.0.1:3306 127.0.0.1:40210 ESTABLISHED
tcp6 0 0 127.0.0.1:40212 127.0.0.1:3306 ESTABLISHED
tcp6 0 0 127.0.0.1:45208 127.0.0.1:50935 ESTABLISHED
tcp6 0 0 127.0.0.1:54299 127.0.0.1:46926 ESTABLISHED
udp 0 0 0.0.0.0:20048 0.0.0.0:*
udp 0 0 0.0.0.0:49041 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp 0 0 0.0.0.0:688 0.0.0.0:*
udp 0 0 127.0.0.1:783 0.0.0.0:*
udp 0 0 0.0.0.0:54816 0.0.0.0:*
udp 0 0 0.0.0.0:2049 0.0.0.0:*
udp6 0 0 :::20048 :::*
udp6 0 0 :::111 :::*
udp6 0 0 ::1:323 :::*
udp6 0 0 :::688 :::*
udp6 0 0 :::38073 :::*
udp6 0 0 :::2049 :::*
udp6 0 0 :::47155 :::*
raw6 0 0 :::58 :::* 7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 18836 public/pickup
unix 2 [ ACC ] STREAM LISTENING 18840 public/cleanup
unix 2 [ ACC ] STREAM LISTENING 18843 public/qmgr
unix 2 [ ACC ] STREAM LISTENING 18865 public/flush
unix 2 [ ACC ] STREAM LISTENING 18853 private/bounce
unix 2 [ ACC ] STREAM LISTENING 18856 private/defer
unix 2 [ ACC ] STREAM LISTENING 18859 private/trace
unix 2 [ ACC ] STREAM LISTENING 18847 private/tlsmgr
unix 2 [ ACC ] STREAM LISTENING 18862 private/verify
unix 2 [ ACC ] STREAM LISTENING 18868 private/proxymap
unix 2 [ ACC ] STREAM LISTENING 18871 private/proxywrite
unix 2 [ ACC ] STREAM LISTENING 18874 private/smtp
unix 2 [ ACC ] STREAM LISTENING 18877 private/relay
unix 2 [ ACC ] SEQPACKET LISTENING 13615 /run/udev/control
unix 2 [ ] DGRAM 12598 /run/systemd/shutdownd
unix 2 [ ] DGRAM 13166 /var/run/chrony/chronyd.sock
unix 2 [ ACC ] STREAM LISTENING 10863 /var/run/dbus/system_bus_socket
unix 2 [ ACC ] STREAM LISTENING 2947208 /run/gssproxy.sock
unix 2 [ ACC ] STREAM LISTENING 3024750 /tmp/mysql.sock
unix 2 [ ACC ] STREAM LISTENING 41886 /run/systemd/private
unix 2 [ ACC ] STREAM LISTENING 2597738 /data/web/kevin.com/kevin.com.sock
unix 2 [ ] DGRAM 8898 /run/systemd/notify
unix 2 [ ] DGRAM 8900 /run/systemd/cgroups-agent
unix 2 [ ACC ] STREAM LISTENING 2944463 /var/run/rpcbind.sock
unix 2 [ ACC ] STREAM LISTENING 8918 /run/systemd/journal/stdout
unix 5 [ ] DGRAM 8921 /run/systemd/journal/socket
unix 16 [ ] DGRAM 8923 /dev/log
unix 2 [ ACC ] STREAM LISTENING 18880 public/showq
unix 2 [ ACC ] STREAM LISTENING 18850 private/rewrite
unix 2 [ ACC ] STREAM LISTENING 18883 private/error
unix 2 [ ACC ] STREAM LISTENING 18886 private/retry
unix 2 [ ACC ] STREAM LISTENING 18889 private/discard
unix 2 [ ACC ] STREAM LISTENING 18892 private/local
unix 2 [ ACC ] STREAM LISTENING 18895 private/virtual
unix 2 [ ACC ] STREAM LISTENING 18898 private/lmtp
unix 2 [ ACC ] STREAM LISTENING 2947207 /var/lib/gssproxy/default.sock
unix 2 [ ACC ] STREAM LISTENING 18901 private/anvil
unix 2 [ ACC ] STREAM LISTENING 18904 private/scache
unix 3 [ ] STREAM CONNECTED 18906
unix 2 [ ] DGRAM 13000
unix 2 [ ] DGRAM 13127
unix 3 [ ] STREAM CONNECTED 13134 /var/run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 18902
unix 2 [ ] DGRAM 16273
unix 3 [ ] STREAM CONNECTED 14219
unix 3 [ ] STREAM CONNECTED 18903
unix 2 [ ] DGRAM 14330
unix 3 [ ] STREAM CONNECTED 15633 /var/run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 18905
unix 2 [ ] DGRAM 2463463
unix 3 [ ] STREAM CONNECTED 13001
unix 3 [ ] STREAM CONNECTED 2605095
unix 2 [ ] DGRAM 14265
unix 2 [ ] STREAM CONNECTED 2953926
unix 3 [ ] STREAM CONNECTED 18845
unix 3 [ ] STREAM CONNECTED 13133
unix 3 [ ] STREAM CONNECTED 18899
unix 2 [ ] DGRAM 18910
unix 3 [ ] STREAM CONNECTED 18900
unix 3 [ ] STREAM CONNECTED 15445
unix 3 [ ] STREAM CONNECTED 13002
unix 3 [ ] STREAM CONNECTED 18894
unix 3 [ ] STREAM CONNECTED 18896
unix 3 [ ] STREAM CONNECTED 18897
unix 3 [ ] STREAM CONNECTED 2947206
unix 3 [ ] STREAM CONNECTED 18890
unix 3 [ ] STREAM CONNECTED 2605096
unix 3 [ ] STREAM CONNECTED 18891
unix 3 [ ] STREAM CONNECTED 11038 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 13219
unix 3 [ ] STREAM CONNECTED 18893
unix 2 [ ] DGRAM 2947203
unix 3 [ ] STREAM CONNECTED 2947205
unix 3 [ ] STREAM CONNECTED 12713 /run/systemd/journal/stdout
unix 2 [ ] DGRAM 3091559
unix 3 [ ] STREAM CONNECTED 18887
unix 3 [ ] STREAM CONNECTED 18888
unix 3 [ ] STREAM CONNECTED 14461
unix 3 [ ] STREAM CONNECTED 18884
unix 3 [ ] STREAM CONNECTED 18885
unix 3 [ ] STREAM CONNECTED 14218
unix 3 [ ] STREAM CONNECTED 18852
unix 3 [ ] STREAM CONNECTED 18872
unix 3 [ ] STREAM CONNECTED 15519
unix 3 [ ] STREAM CONNECTED 18869
unix 2 [ ] STREAM CONNECTED 2755236
unix 3 [ ] DGRAM 10604
unix 3 [ ] STREAM CONNECTED 18870
unix 2 [ ] DGRAM 3150919
unix 3 [ ] STREAM CONNECTED 2947271
unix 2 [ ] DGRAM 11027
unix 3 [ ] STREAM CONNECTED 18875
unix 3 [ ] STREAM CONNECTED 15615
unix 2 [ ] DGRAM 10594
unix 3 [ ] STREAM CONNECTED 18637
unix 2 [ ] DGRAM 36755
unix 3 [ ] STREAM CONNECTED 18876
unix 3 [ ] STREAM CONNECTED 16089
unix 3 [ ] STREAM CONNECTED 18873
unix 3 [ ] STREAM CONNECTED 2951046
unix 3 [ ] STREAM CONNECTED 13074 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 18879
unix 3 [ ] STREAM CONNECTED 18639 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 18752 /var/run/dbus/system_bus_socket
unix 2 [ ] DGRAM 11146
unix 3 [ ] STREAM CONNECTED 15616 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 43144
unix 2 [ ] DGRAM 2944964
unix 3 [ ] STREAM CONNECTED 36748 /var/run/dbus/system_bus_socket
unix 2 [ ] STREAM CONNECTED 2754184
unix 3 [ ] STREAM CONNECTED 18878
unix 3 [ ] STREAM CONNECTED 18881
unix 3 [ ] STREAM CONNECTED 3114864
unix 3 [ ] STREAM CONNECTED 18638 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 18882
unix 2 [ ] DGRAM 15618
unix 3 [ ] STREAM CONNECTED 13030 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 18834
unix 2 [ ] DGRAM 2951052
unix 3 [ ] STREAM CONNECTED 2951045
unix 2 [ ] STREAM CONNECTED 2755210
unix 3 [ ] STREAM CONNECTED 18855
unix 3 [ ] STREAM CONNECTED 3114865
unix 3 [ ] STREAM CONNECTED 2947277 /run/gssproxy.sock
unix 3 [ ] STREAM CONNECTED 18837
unix 3 [ ] STREAM CONNECTED 15722
unix 2 [ ] STREAM CONNECTED 2755238
unix 3 [ ] STREAM CONNECTED 11224 /var/run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 18854
unix 3 [ ] STREAM CONNECTED 13143 /var/run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 11015
unix 3 [ ] STREAM CONNECTED 41930
unix 3 [ ] STREAM CONNECTED 18849
unix 3 [ ] STREAM CONNECTED 3114866
unix 3 [ ] STREAM CONNECTED 18848
unix 3 [ ] STREAM CONNECTED 18841
unix 2 [ ] STREAM CONNECTED 2754223
unix 3 [ ] STREAM CONNECTED 18860
unix 3 [ ] STREAM CONNECTED 18857
unix 3 [ ] STREAM CONNECTED 18858
unix 3 [ ] STREAM CONNECTED 18863
unix 3 [ ] STREAM CONNECTED 2947157 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 18844
unix 3 [ ] STREAM CONNECTED 18864
unix 3 [ ] STREAM CONNECTED 2946263
unix 3 [ ] STREAM CONNECTED 18835
unix 3 [ ] STREAM CONNECTED 18861
unix 3 [ ] STREAM CONNECTED 3114867
unix 3 [ ] STREAM CONNECTED 36753 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 18842
unix 2 [ ] STREAM CONNECTED 2755212
unix 3 [ ] STREAM CONNECTED 18867
unix 3 [ ] DGRAM 10605
unix 3 [ ] STREAM CONNECTED 18851
unix 3 [ ] STREAM CONNECTED 10933
unix 3 [ ] STREAM CONNECTED 18751
unix 3 [ ] STREAM CONNECTED 18838
unix 3 [ ] STREAM CONNECTED 18866
查看tcp udp状态
[root@centos7 ~]# netstat -ltunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 949/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1055/master
tcp6 0 0 :::22 :::* LISTEN 949/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1055/master
udp 0 0 127.0.0.1:323 0.0.0.0:* 577/chronyd
udp6 0 0 ::1:323 :::* 577/chronyd
[root@centos7 ~]# netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
LISTEN 4
ESTABLISHED 1
关注ESTABLISHED ,如果这数字很大,说明系统很忙。
#ss -an 也可以查看tcp/ip状态
查看listen状态
#ss -an |grep -i listen
ppt在*centos7.aminglinux.com
*了解一下socket文件的作用。三次握手过程。
10.10 Linux下抓包
大纲
抓包工具
有时也许想看一下某个网卡上都有哪些数据包,尤其是当你初步绑定服务器上有流量时,使用抓包工具来获取数据包就可以知道有哪些IP在了。
#tcpdump -nn -i 网卡名字 (网卡名称可以在ifconfig查看)
# ifconfig
enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.88.24.200 netmask 255.255.255.0 broadcast 192.88.24.255
inet6 fe80::2ad9:5a78:700c:eaee prefixlen 64 scopeid 0x20<link>
ether 00:1e:c9:2b:1a:e5 txqueuelen 1000 (Ethernet)
RX packets 3565263 bytes 1091650130 (1.0 GiB)
RX errors 0 dropped 242 overruns 0 frame 0
TX packets 509115 bytes 67701952 (64.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# tcpdump -nn -i enp4s0 源地址IP地址显示
10:53:05.900482 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18463892:18464072, ack 2581, win 641, length 180
10:53:05.900507 IP 192.88.34.196.60499 > 192.88.24.200.22: Flags [.], ack 18463712, win 16069, length 0
10:53:05.900530 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18464072:18464252, ack 2581, win 641, length 180
10:53:05.900642 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18464252:18464432, ack 2581, win 641, length 180
10:53:05.900748 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18464432:18464596, ack 2581, win 641, length 164
10:53:05.900856 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18464596:18464904, ack 2581, win 641, length 308
10:53:05.900962 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18464904:18465084, ack 2581, win 641, length 180
10:53:05.901068 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18465084:18465264, ack 2581, win 641, length 180
10:53:05.901175 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18465264:18465444, ack 2581, win 641, length 180
10:53:05.901282 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18465444:18465624, ack 2581, win 641, length 180
10:53:05.901713 IP 192.88.34.196.60499 > 192.88.24.200.22: Flags [.], ack 18465624, win 16425, length 0
10:53:05.901741 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18465624:18465984, ack 2581, win 641, length 360
10:53:05.901852 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18465984:18466148, ack 2581, win 641, length 164
10:53:05.901964 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18466148:18466508, ack 2581, win 641, length 360
10:53:05.902082 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18466508:18466688, ack 2581, win 641, length 180
10:53:05.902197 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18466688:18466868, ack 2581, win 641, length 180
10:53:05.902313 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18466868:18467048, ack 2581, win 641, length 180
10:53:05.902429 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18467048:18467228, ack 2581, win 641, length 180
10:53:05.902544 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18467228:18467408, ack 2581, win 641, length 180
10:53:05.902661 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18467408:18467588, ack 2581, win 641, length 180
10:53:05.902782 IP 192.88.24.200.22 > 192.88.34.196.60499: Flags [P.], seq 18467588:18467768, ack 2581, win 641, length 180
10:53:05.902976 IP 192.88.34.196.60499 > 192.88.24.200.22: Flags [P.], seq 2581:2633, ack 18465624, win 16425, length 52
^C10:53:05.903039 IP 192.88.34.196.60499 > 192.88.24.200.22: Flags [.], ack 18467768, win 15889, length 0
104225 packets captured
104228 packets received by filter
0 packets dropped by kernel
关于数据信息:
第一列是时间,第二列是ip,源IP,源端口 > 到哪里去 方向去 目标ip 目标ip端口 flage开始 数据包的信息。
主要关注源ip和源端口。
-nn 第一个n ip用数字显示出来,如果不加,会显示主机名。 一般使用-nn
[root@centos7 ~]# tcpdump -n -i enp4s0 源地址主机名显示
10:55:50.640134 IP 192.88.24.200.ssh > 192.88.34.196.60499: Flags [P.], seq 2094760:2094940, ack 261, win 641, length 180
10:55:50.640252 IP 192.88.24.200.ssh > 192.88.34.196.60499: Flags [P.], seq 2094940:2095120, ack 261, win 641, length 180
10:55:50.640370 IP 192.88.24.200.ssh > 192.88.34.196.60499: Flags [P.], seq 2095120:2095300, ack 261, win 641, length 180
10:55:50.640487 IP 192.88.24.200.ssh > 192.88.34.196.60499: Flags [P.], seq 2095300:2095480, ack 261, win 641, length 180
10:55:50.640604 IP 192.88.24.200.ssh > 192.88.34.196.60499: Flags [P.], seq 2095480:2095660, ack 261, win 641, length 180
10:55:50.640684 IP 192.88.34.196.60499 > 192.88.24.200.ssh: Flags [P.], seq 261:313, ack 2093568, win 16114, length 52
10:55:50.640791 IP 192.88.24.200.ssh > 192.88.34.196.60499: Flags [P.], seq 2095660:2095840, ack 313, win 641, length 180
^C
11850 packets captured
11851 packets received by filter
0 packets dropped by kernel
所看到的ssh是22端口,如果不知道ssh表示22端口,例如其他名称的 不知道指定端口的,那就容易看不到详细信息了。
信息一一对应 有来有回
#了解 DDOS**,udp flood udp洪水***。
#指定端口
[root@centos7 ~]# tcpdump -nn -i ens33 port 22
#排除端口用法
[root@centos7 ~]# tcpdump -nn -i ens33 not port 22
#指定端口,指定主机ip
[root@centos7 ~]# tcpdump -nn -i ens33 port 22 and host 192.168.189.128
数据包指定长度,指定个数,存到一个文件上
例如,指定长度,指定100个。
[root@centos7 ~]# tcpdump -nn -i ens33 -c 100 -w /tmp/1.cap
抓包过程中,是比较缓慢的,类似暂停状态。此时可以打开一个新的终端。
如果在这个终端不去产生一些数据流的话,那么它就不会产生那么多的数据包。
例如在使用tcpdump查看数据包的时候,其实就是在通讯产生数据流,所以有数据包产生,这是一个内循环。
如果此终端不产生任何数据,不产生任何的信息,那它就没有任何的数据包。 产生数据包了,屏幕(暂停的界面)自然而然会有数据了。所以打开一个新的终端,利用新的终端去产生数据包,这样就能继续进行抓包。
抓包成功提示,
数据包 1.cap
用#file查看属性,不能用cat查看,因为这是网卡捕获的信息,其实它是一个真正的通讯数据包信息,而不是文本格式。
抓包命令常用示例:
tcpdump -nn -i ens33 -c 100
#指定抓100个包
tcpdump -nn -i ens33 port 22
#指定只抓22端口的包
tcpdump -nn -i ens33 tcp and not port 22
#指定抓tcp的包,但是不要22端口的
tcpdump -nn -i ens33 port 22 and port 53
#指定抓22和53端口的包
读数据流(数据包里面的数据就叫数据流),需要利用#tcpdump -r /tmp/1.cap
[root@centos7 ~]# file /tmp/1.cap
/tmp/1.cap: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 262144)
#wireshark 工具
#tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"