10.6 监控io性能 ,free命令,ps命令,查看网络状态,linux下抓包
2018-07-12 08:59
1021 查看
监控io性能
iostat -x 磁盘使用
iostat 在安装sysstat的时候会自动安装上这个命令。它和sar是同一个包[root@linux-128 ~]# yum install -y sysstat
[root@linux-128 ~]# iostat Linux 3.10.0-514.el7.x86_64 (linux-128) 2017年11月28日 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 1.19 0.00 1.98 0.33 0.00 96.50 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sdb 1.65 10.21 0.00 1840 0 sda 31.35 1110.33 414.35 200192 74707 scd0 0.06 0.24 0.00 44 0 dm-0 0.33 2.53 0.00 456 0
iostat和sar命令差不多,后面接数字
iostat 1,1秒显示一次;sda bk_read/s kb_wrtn/s 读写速度
[root@linux-128 ~]# iostat 1 Linux 3.10.0-514.el7.x86_64 (linux-128) 2017年11月28日 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.57 0.00 0.98 0.16 0.00 98.29 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sdb 0.80 4.94 0.00 1840 0 sda 15.23 537.50 200.94 200192 74839 scd0 0.03 0.12 0.00 44 0 dm-0 0.16 1.22 0.00 456 0 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.00 0.00 0.00 100.00 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sdb 0.00 0.00 0.00 0 0 sda 0.00 0.00 0.00 0 0 scd0 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.00 0.00 0.00 100.00 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sdb 0.00 0.00 0.00 0 0 sda 0.00 0.00 0.00 0 0 scd0 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0 ^C
用sar -b 也可以查看速度些速度
iostat -x 1
这里最重要的是%util;这列表示你的IO等待,磁盘使用有多少时间占用cpu,cpu有部分时间给进程经销计算,也有一部分时间等待io的,等待磁盘读和写,这个时间比是多少,占比是多大呢,这个就是%util。如果这个数字很大,50%60%那你的IO太差,他非常的忙,数字很大,读和写也很大,如果读和写两列不大,但是util这列很大,说明你的硬盘存在问题和故障。如果你的硬盘很慢,肯定会影响你的性能,及时你的CPU很快在厉害,,硬盘更不上也会存在很大的瓶颈的。记住iostat -x 关注%util这一列。
[root@linux-128 ~]# iostat -x 1 Linux 3.10.0-514.el7.x86_64 (linux-128) 2017年11月28日 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.25 0.00 0.44 0.08 0.00 99.23 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sdb 0.00 0.00 0.33 0.00 2.03 0.00 12.35 0.00 0.06 0.06 0.00 0.05 0.00 sda 0.01 0.29 5.22 1.21 226.67 83.51 96.48 0.05 7.59 2.14 31.06 0.95 0.61 scd0 0.00 0.00 0.01 0.00 0.05 0.00 8.00 0.00 1.27 1.27 0.00 1.27 0.00 dm-0 0.00 0.00 0.07 0.00 0.50 0.00 15.20 0.00 0.02 0.02 0.00 0.02 0.00 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.00 0.00 0.00 100.00 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda 0.00 0.00 0.00 1.98 0.00 1.49 1.50 0.00 0.50 0.00 0.50 0.50 0.10 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.00 0.00 0.00 100.00 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
iotop 磁盘使用
如果发现磁盘io很忙,到底是那个进程在读写呢,我们用iotop来查看。[root@linux-128 ~]# yum install -y iotop
[root@linux-128 ~]#iotop
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-r~tem --deserialize 21 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 5 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0H] 7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_bh] 9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched] 10 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 11 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/1] 12 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1] 13 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/1] 16 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/2] 17 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/2] 18 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/2] 531 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % auditd -n 20 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/2:0H] 21 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/3] 22 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/3] 23 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/3] 25 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/3:0H] 27 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khelper] 28 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdevtmpfs] 29 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 30 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khungtaskd]
free命令
free 查看内存使用情况free -m / -g / -h
buffer/cache区别
公式:total=used+free+buff/cache
avaliable包含free和buffer/cache剩余
free 单位KB
[root@linux-128 ~]# free total used free shared buff/cache available Mem: 1875748 115996 1453008 8748 306744 1583468 Swap: 4194300 0 4194300
free -m 单位M
[root@linux-128 ~]# free -m total used free shared buff/cache available Mem: 1831 113 1418 8 299 1546 Swap: 4095 0 4095
free -h 单位G
[root@linux-128 ~]# free -h total used free shared buff/cache available Mem: 1.8G 113M 1.4G 8.5M 299M 1.5G Swap: 4.0G 0B 4.0G
total 是整个内存大小 total=used+free+buff/cache
used 使用了多少内存
free 剩余多少内存 正在剩余的内存是第二行的free
available 正则可用的内存 available=free+剩余buff/cache
cache:磁盘速度是比较慢的,cpu比较快,两者速度相差比较大,为了缓解这个局面,工程师就想到了缓存这个思路,缓存是介于cpu和磁盘之间的一种介子,他的速度比cpu慢一点,比磁盘速度快一点,当我们从磁盘里取数据的时候速度很慢,就可以事先把数据取出来放到内存里(cache)当cpu用到的时候就从内存里去取,这个速度就比原来直接从磁盘里取拿数据速度要快很多,这里内存里存放这部分数据的空间就要cache
buffe正好相反,cpu把数据处理完后,形成一个结果(也是数据)要写入到磁盘里去的时候,这个速度也很慢的,我们同样的速度也是先把它写到内存里,内存再逐渐慢慢地在后台一点点写入磁盘里,这一部分空间就叫中buffer(缓冲)
buffer 是即将写入到磁盘里去的数据暂存的内存区域
cached是从磁盘里读出来的数据暂存的内存区域。
linux内核会先分配一部分buffer,cacha出来留着备用,这部分空间不可能直接用完,可能会有一部分剩余,那么这部分剩余实际上对内存来说是可用的,可回收的。
内存正真剩余=物理内存+buffer+cache
free列第一行的数字为0表示内存已经分配完,但并不表示内存就耗尽了。 因为可能还有分配的cached并没有用完。
物理内存、buffer和cached三个没有再可分配的容量那就意味着所有的物理内存都耗尽了,
真正的内存用完了导致频繁使用swap 程序运行速度会超级慢
ps 查看系统当中所有的进程
top -bn1 也可以显示所有的进程[root@linux-128 ~]# top -bn1 top - 10:46:12 up 24 min, 1 user, load average: 0.00, 0.02, 0.05 Tasks: 108 total, 2 running, 106 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.2 us, 0.3 sy, 0.0 ni, 99.4 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1875748 total, 1452588 free, 116272 used, 306888 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 1583128 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2264 root 20 0 157584 2040 1492 R 5.9 0.1 0:00.03 top 1 root 20 0 125300 3760 2400 S 0.0 0.2 0:01.82 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.19 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root rt 0 0 0 0 S 0.0 0.0 0:00.03 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 R 0.0 0.0 0:01.59 rcu_sched 10 root rt 0 0 0 0 S 0.0 0.0 0:00.03 watchdog/0 11 root rt 0 0 0 0 S 0.0 0.0 0:00.13 watchdog/1 12 root rt 0 0 0 0 S 0.0 0.0 0:00.06 migration/1 13 root 20 0 0 0 0 S 0.0 0.0 0:00.18 ksoftirqd/1 16 root rt 0 0 0 0 S 0.0 0.0 0:00.01 watchdog/2 17 root rt 0 0 0 0 S 0.0 0.0 0:00.02 migration/2 。。。
ps aux 一盘工作中使用这个命令
[root@linux-128 ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.2 125300 3760 ? Ss 10:21 0:01 /usr/lib/systemd/systemd --switched- root 2 0.0 0.0 0 0 ? S 10:21 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 10:21 0:00 [ksoftirqd/0] 。。。。 root 2142 0.0 0.0 0 0 ? S< 10:22 0:00 [kworker/3:1H] root 2143 0.0 0.1 116016 2664 pts/0 Ss 10:22 0:00 -bash root 2217 0.0 0.0 0 0 ? S< 10:24 0:00 [kworker/1:2H] root 2232 0.0 0.0 0 0 ? S< 10:34 0:00 [kworker/3:2H] root 2246 0.0 0.0 0 0 ? S 10:37 0:00 [kworker/0:0] root 2263 0.0 0.0 0 0 ? S 10:42 0:00 [kworker/0:2] root 2285 0.0 0.0 151068 1820 pts/0 R+ 10:47 0:00 ps aux
ps -elf 这两者显示的内容是相识的
USER 用户
PID 进程标志数,/proc文件里面有跟pid相同名字的目录;进程的id,这个id很有用,在linux中内核管理进程就得靠pid来识别和管理某一个程,比如我想终止某一个进程,则用 ‘kill 进程的pid 有时并不能杀掉,则需要加一个-9选项了 kill -9 进程pid
某个进程有问题,我想知道它是那个目录下的?(pid都在proc这个目录下,每一个pid就是一个目录)
ls /proc/进程ID/
%cpu 占用cpu百分比
%mem 占用内存百分比
VSZ 虚拟内存大小
RSS 真正内存大小
TTY 从哪里启动,pts/0 当前终端
STAT 进程的状态
S 表示休眠sleep
s 主进程,父进程
< 高优先级,优先得到cpu的资源
N 低优先级
前台运行进程
S<s 高优先级的主进程,休眠状态
R runing,正在运行的进程(某个时间段使用到cpu资源的进程)
L 被锁的进程
l 多线程的进程
Z僵尸进程
x 已经死掉的进程
T 暂停的进程ctrl+z
D 不能被终端的进程,比如IO,很少见。
START 进程启动时间
TIME 占用cpu多长时间
COMMAND 进程名称
[root@linux-128 ~]# ps aux |grep -c kworker 21 [root@linux-128 ~]# ps aux |grep kworker root 5 0.0 0.0 0 0 ? S< 10:21 0:00 [kworker/0:0H] root 20 0.0 0.0 0 0 ? S< 10:21 0:00 [kworker/2:0H] root 36 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/2:1] root 37 0.0 0.0 0 0 ? S 10:22 0:01 [kworker/3:1] root 55 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/u128:1] root 57 0.1 0.0 0 0 ? S 10:22 0:02 [kworker/0:1] root 61 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/1:1] root 256 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/u128:2] root 290 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/1:2] root 294 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/2:3] root 295 0.0 0.0 0 0 ? S 10:22 0:00 [kworker/3:2] root 452 0.0 0.0 0 0 ? S< 10:22 0:00 [kworker/0:1H] root 736 0.0 0.0 0 0 ? S< 10:22 0:00 [kworker/1:1H] root 2075 0.0 0.0 0 0 ? S< 10:22 0:00 [kworker/2:1H] root 2142 0.0 0.0 0 0 ? S< 10:22 0:00 [kworker/3:1H] root 2217 0.0 0.0 0 0 ? S< 10:24 0:00 [kworker/1:2H] root 2232 0.0 0.0 0 0 ? S< 10:34 0:00 [kworker/3:2H] root 2263 0.0 0.0 0 0 ? S 10:42 0:00 [kworker/0:2] root 2286 0.0 0.0 0 0 ? S< 10:48 0:00 [kworker/3:0H] root 2307 0.0 0.0 0 0 ? S 10:52 0:00 [kworker/0:0]
监控系统状态
netstat 查看网络状态netstat -lnp 查看监听端口
netstat -an 查看系统的网络连接状况
netstat -lntp 只看出tcp的,不包含socket
ss -an 和nestat异曲同工
分享一个小技巧:
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
netstat 命令是用来查看网络连接状态,系统所有开放端口,路由表等信息
netstat -lnp 用来监听有哪些接口
[root@linux-128 ~]# netstat -lnp 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 947/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1216/master tcp6 0 0 :::22 :::* LISTEN 947/sshd tcp6 0 0 ::1:25 :::* LISTEN 1216/master udp 0 0 127.0.0.1:323 0.0.0.0:* 553/chronyd udp6 0 0 ::1:323 :::* 553/chronyd raw6 0 0 :::58 :::* 7 587/NetworkManager Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 18635 1216/master public/cleanup unix 2 [ ACC ] STREAM LISTENING 18638 1216/master public/qmgr unix 2 [ ACC ] STREAM LISTENING 18661 1216/master public/flush unix 2 [ ACC ] STREAM LISTENING 18676 1216/master public/showq unix 2 [ ACC ] STREAM LISTENING 10897 1/systemd /run/systemd/private unix 2 [ ACC ] SEQPACKET LISTENING 10926 1/systemd /run/udev/control unix 2 [ ACC ] STREAM LISTENING 9134 1/systemd /run/systemd/journal/stdout unix 2 [ ACC ] STREAM LISTENING 18642 1216/master private/tlsmgr unix 2 [ ACC ] STREAM LISTENING 18700 1216/master private/scache unix 2 [ ACC ] STREAM LISTENING 10949 1/systemd /run/lvm/lvmetad.socket unix 2 [ ACC ] STREAM LISTENING 10952 1/systemd /run/lvm/lvmpolld.socket unix 2 [ ACC ] STREAM LISTENING 18631 1216/master public/pickup unix 2 [ ACC ] STREAM LISTENING 18652 1216/master private/defer unix 2 [ ACC ] STREAM LISTENING 13291 1/systemd /var/run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 18655 1216/master private/trace unix 2 [ ACC ] STREAM LISTENING 18658 1216/master private/verify unix 2 [ ACC ] STREAM LISTENING 18664 1216/master private/proxymap unix 2 [ ACC ] STREAM LISTENING 18667 1216/master private/proxywrite unix 2 [ ACC ] STREAM LISTENING 18670 1216/master private/smtp unix 2 [ ACC ] STREAM LISTENING 18673 1216/master private/relay unix 2 [ ACC ] STREAM LISTENING 18679 1216/master private/error unix 2 [ ACC ] STREAM LISTENING 18682 1216/master private/retry unix 2 [ ACC ] STREAM LISTENING 18685 1216/master private/discard unix 2 [ ACC ] STREAM LISTENING 18688 1216/master private/local unix 2 [ ACC ] STREAM LISTENING 18691 1216/master private/virtual unix 2 [ ACC ] STREAM LISTENING 18694 1216/master private/lmtp unix 2 [ ACC ] STREAM LISTENING 18645 1216/master private/rewrite unix 2 [ ACC ] STREAM LISTENING 18649 1216/master private/bounce unix 2 [ ACC ] STREAM LISTENING 18697 1216/master private/anvil
查看监听的接口后,服务端到底跟哪些客户端进行通信,以及客户端跟我们服务端通信过程到底十一个什么样的状态?
是连接进行数据传输还是两者刚刚建立连接,还是通信完成后保持一个连接而正在等待:要用netstat -an 来查看
netstat -an
查看服务端和客户端之间的状态用这个值去衡量服务器有没有压力,有没有并发,并发是多少
netstat -an |grep 122.122.69.86:80|grep -ic estab -i是忽略大小写 -c符合要求的行数
这台服务器的并发数是884.意思是在这一秒或者这一个时刻内有884个连接。
netstat -lntp
netstat -lnp 查看监听的端口[root@linux-128 ~]# 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:22 0.0.0.0:* LISTEN 947/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1216/master tcp6 0 0 :::22 :::* LISTEN 947/sshd tcp6 0 0 ::1:25 :::* LISTEN 1216/master
netstat -an tcp IP
[root@linux-128 ~]# netstat -an tcp IP Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State 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 52 192.168.88.128:22 192.168.88.1:54651 ESTABLISHED tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN udp 0 0 127.0.0.1:323 0.0.0.0:* udp6 0 0 ::1:323 :::* 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 18635 public/cleanup unix 2 [ ACC ] STREAM LISTENING 18638 public/qmgr unix 2 [ ACC ] STREAM LISTENING 18661 public/flush unix 2 [ ACC ] STREAM LISTENING 18676 public/showq unix 2 [ ACC ] STREAM LISTENING 10897 /run/systemd/private unix 2 [ ] DGRAM 9115 /run/systemd/notify unix 2 [ ] DGRAM 9117 /run/systemd/cgroups-agent unix 2 [ ACC ] SEQPACKET LISTENING 10926 /run/udev/control unix 2 [ ACC ] STREAM LISTENING 9134 /run/systemd/journal/stdout unix 5 [ ] DGRAM 9137 /run/systemd/journal/socket unix 13 [ ] DGRAM 9139 /dev/log unix 2 [ ] DGRAM 10934 /run/systemd/shutdownd unix 2 [ ACC ] STREAM LISTENING 18642 private/tlsmgr 。。。。
.sock linux,unix 中特有的文件,可以通讯
Path 状态
TIME_WAIT 传输完成 链接保持着
ESTABLTSHED 已经建立链接正在通讯
FIN_WAIT2 状态详情,可参考【TCP/IP 三次握手】
netstat -an |grep 112.112.69.86:80 查看80端口 并发状态
netstat -an |grep 112.112.69.86:80 |grep -ic estab 统计链接(ESTABLTSHED)正在通讯的链接总数 (前端 静态网页 2到3万 后端 有php mysql等 2000到3000 左右
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
[root@linux-128 ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' LISTEN 4 ESTABLISHED 1
tcpdump 工具
如果没有这个工具需要安装一下;yum install -y tcpdump[root@linux-128 ~]# yum install -y tcpdump
[root@linux-128 ~]# tcpdump -nn -i ens33
tcpdump -i ens33
第一个n就是ip以数字的形式打印出来,如果不加就会显示主机名
tcpdump -n -i ens33
第2n是端口
tcpdump -nn -i ens33 加上第2n 就会显示ip,端口形式显示
tcpdump 命令:
-i:指定网卡host:指定ip
port:指定端口
-c :指定包数量
-w :写入指定文件里,将包的内容写入文件里面,如果不加-w直接在屏幕上显示的不是数据包,而是数据流向
length 长度
tcpdump -nn -i ens33 port 22
tcpdump -nn -i ens33 port 22 -c 6
[root@linux-128 ~]# tcpdump -nn -i ens33 port 22 -c 6 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 11:16:43.472559 IP 192.168.88.128.22 > 192.168.88.1.54651: Flags [P.], seq 3677319136:3677319348, ack 3881493294, win 468, length 212 11:16:43.473078 IP 192.168.88.1.54651 > 192.168.88.128.22: Flags [.], ack 212, win 16425, length 0 11:16:43.473799 IP 192.168.88.128.22 > 192.168.88.1.54651: Flags [P.], seq 212:504, ack 1, win 468, length 292 11:16:43.474308 IP 192.168.88.128.22 > 192.168.88.1.54651: Flags [P.], seq 504:668, ack 1, win 468, length 164 11:16:43.474661 IP 192.168.88.1.54651 > 192.168.88.128.22: Flags [.], ack 668, win 16311, length 0 11:16:43.474922 IP 192.168.88.128.22 > 192.168.88.1.54651: Flags [P.], seq 668:832, ack 1, win 468, length 164 6 packets captured 6 packets received by filter 0 packets dropped by kernel
tcpdump -nn -i ens33 port 22 -c 6 -w /tmp/1.cap 写入指定文件里,将包的内容写入文件里面,是真真的包,如果不加-w直接在屏幕上显示的不是数据包,而是数据流向
[root@linux-128 ~]# tcpdump -nn -i ens33 port 22 -c 6 -w /tmp/1.cap tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes ^C3 packets captured 4 packets received by filter 0 packets dropped by kernel
tcpdump -r 查看数据流,不是数据包
[root@linux-128 ~]# tcpdump -r /tmp/1.cap reading from file /tmp/1.cap, link-type EN10MB (Ethernet) 11:18:02.971264 IP linux-128.ssh > 192.168.88.1.54651: Flags [P.], seq 3677321812:3677321960, ack 3881494042, win 468, length 148 11:18:02.971994 IP 192.168.88.1.54651 > linux-128.ssh: Flags [.], ack 148, win 16139, length 0 11:18:10.905692 IP 192.168.88.1.54651 > linux-128.ssh: Flags [P.], seq 1:53, ack 148, win 16139, length 52
wireshark 工具
如果没有需要先安装一下 yum install -y wireshark[root@linux-128 ~]# yum install -y wireshark
用法:tshark
只需要记住这条命令;用的时候复制一下
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"
相关文章推荐
- 10.6 监控io性能 - 10.7 free命令 - 10.8 ps命令 - 10.9 查看网络状态 - 10.10 linux下抓包
- 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包
- 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包
- 七周二次课(11月28日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包
- 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包
- 监控io性能, free命令, ps命令, 查看网络状态, linux下抓包
- 监控io性能、free命令、ps命令、查看网络状态、linux下抓包
- 监控IO性能| free命令 |ps命令 |查看网络状态 |linux下抓包
- linux学习第二十八篇:监控io性能,free命令,ps命令,查看网络状态,linux下抓包
- 七周第二次课 2017.11.28 监控io性能、free命令、ps命令、查看网络状态、linux下抓包
- 监控io性能、free命令、 ps命令、查看网络状态、linux下抓包
- 监控io性能、free命令、ps命令、查看网络状态、linux下抓包
- 监控io性能,free命令,ps网络命令,查看网络状态,Linux下抓包
- 监控io性能、free命令、ps命令、查看网络状态、linux下抓包
- 监控io性能、free命令、ps命令、查看网络状态、Linux下抓包
- LINUX学习笔记 监控io性能,free命令,ps命令 ,查看网络状态 ,linux下抓包
- 10.6 监控io性能;10.7 free;10.8 ps;10.9 查看网络状态;10.10 抓包
- 10.6-10.10 监控io、free命令、ps命令、查看网络状态和抓包
- 监控io性能、free、ps、查看网络状态和linux抓包工具
- 监控io性能,free,ps命令,查看网络状态以及抓包