在前面介绍的内容都为linux系统基础类的,如果你现在把前面的内容全部很好的掌握了,那最好了。不过要说的是,即使你完全掌握了,你现在还是不能作为一名合格的linux系统管理员的,毕竟系统管理员要会做的事情太多了。本章以及后面会陆续教给你作为linux系统管理员所必备的知识。只要你熟练掌握那绝对可以胜任一个最初级的管理员职位,不过只是初级的,因为你还需要在日常的管理工作中获得成长。
监控系统的状态
1. w查看当前系统的负载
15:23:46 up 3:34, 2 users, load average: 0.03, 0.05, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 12:26 2:55m 0.11s 0.11s -bash
root pts/0 10.72.137.53 12:28 1:17m 1:32 1:32 -bash
相信所有的linux管理员最常用的命令就是这个 w
了,该命令显示的信息还是蛮丰富的。第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。其实,在这些信息当中,认为我们最应该关注的应该是第一行中的 ‘load average:’ 后面的三个数值。
第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。这个值的意义是,单位时间段内CPU活动进程数。当然这个值越大就说明你的服务器压力越大。一般情况下这个值只要不超过服务器的cpu数量就没有关系,如果服务器cpu数量为8,那么这个值若小于8,就说明当前服务器没有压力,否则就要关注一下了。到这里你肯定会问,如何查看服务器有几个cpu?
[root@localhost sbin]# cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 16
model : 6
model name : AMD Phenom(tm) II N660 Dual-Core Processor
stepping : 3
cpu MHz : 3000.000
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow constant_tsc up tsc_reliable nonstop_tsc extd_apicid pni cx16 popcnt lahf_lm abm sse4a misalignsse 3dnowprefetch
bogomips : 6000.00
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate
/proc/cpuinfo
这个文件记录了cpu的详细信息。目前市面上的服务器通常都是2颗4核cpu,在linux看来,它就是8个cpu。查看这个文件时则会显示8段类似的信息,而最后一段信息中processor : 后面跟的是 ‘7’ 所以查看当前系统有几个cpu,我们可以使用这个命令: grep -c 'processor' /proc/cpuinfo
而如何看几颗物理cpu呢,需要查看关键字 “physical id”, 由于虚拟机只有一个cpu所以并未显示关于 “physical id” 的信息。
2. vmstat 监控系统的状态
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 512 5392 37460 213276 0 0 100 549 153 59 1 4 93 1 0
上面讲的 w 查看的是系统整体上的负载,通过看那个数值可以知道当前系统有没有压力,但是具体是哪里(CPU, 内存,磁盘等)有压力就无法判断了。通过 vmstat 就可以知道具体是哪里有压力。vmstat命令打印的结果共分为6部分:procs, memory, swap, io, system, cpu. 请重点关注一下r b si so bi bo几列。
1)procs 显示进程相关信息
r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;
b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了;
2)memory 内存相关信息
swpd :表示切换到交换分区中的内存数量 ;
free :当前空闲的内存数量;
buff :缓冲大小,(即将写入磁盘的);
cache :缓存大小,(从磁盘中读取的);
3)swap 内存交换情况
si :由交换区写入到内存的数据量;
so :由内存写入到交换区的数据量;
4)io 磁盘使用情况
bi :从块设备读取数据的量(读磁盘);
bo: 从块设备写入数据的量(写磁盘);
5)system 显示采集间隔内发生的中断次数
in :表示在某一时间间隔中观测到的每秒设备中断数;
cs :表示每秒产生的上下文切换次数;
6)CPU 显示cpu的使用状态
us :显示了用户下所花费 cpu 时间的百分比;
sy :显示系统花费cpu时间百分比;
id :表示cpu处于空闲状态的时间百分比;
wa :表示I/O等待所占用cpu时间百分比;
st :表示被偷走的cpu所占百分比(一般都为0,不用关注);
以上所介绍的各个参数中,经常会关注r列,b列,和wa列,三列代表的含义在上边说得已经很清楚。IO部分的bi以及bo也是要经常参考的对象。如果磁盘io压力很大时,这两列的数值会比较高。另外当si, so两列的数值比较高,并且在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。
我们使用 vmstat 查看系统状态的时候,通常都是使用这样的形式来看的:
[root@localhost ~]# vmstat 1 5
或者:
[root@localhost ~]# vmstat 1
前面表示,每隔一秒钟打印一次状态,共打印5次,而后面的表示每隔1秒打印一次状态,一直打印,除非我们按 Ctrl + c 结束
3. top 显示进程所占系统资源
[root@localhost ~]# top
top - 16:31:49 up 4:42, 3 users, load average: 0.02, 0.05, 0.00
Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.4%us, 7.8%sy, 0.0%ni, 89.2%id, 1.0%wa, 0.3%hi, 0.3%si, 0.0%st
Mem: 326616k total, 321172k used, 5444k free, 23664k buffers
Swap: 2097144k total, 588k used, 2096556k free, 227416k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11194 root 20 0 43936 36m 1128 S 3.8 11.3 2:38.95 perl
5373 root 20 0 2572 1072 860 R 0.6 0.3 0:00.05 top
24160 root 20 0 12412 2124 1376 S 0.3 0.7 0:01.12 sshd
1 root 20 0 2900 800 652 S 0.0 0.2 0:01.52 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
这个命令用于动态监控进程所占系统资源,每隔3秒变一次。这个命令的特点是把占用系统资源(CPU,内存,磁盘IO等)最高的进程放到最前面。top命令打印出了很多信息,包括系统负载(loadaverage)、进程数(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况。其实上面这些内容可以通过其他命令来查看,所以用top重点查看的还是下面的进程使用系统资源详细状况。这部分东西反映的东西还是比较多的,不过需要你关注的也就是几项:%CPU, %MEM, COMMAND 这些项目所代表的意义,不用介绍相信你也能看懂吧,RES 这一项为进程所占内存大小,而 %MEM 为使用内存百分比。
在 top
状态下,按 “shift + m”, 可以按照内存使用大小排序。按数字 ‘1’ 可以列出各颗cpu的使用状态。
另外,经常用的一个命令 top -bn1
它表示非动态打印系统资源使用情况,可以用在shell脚本中:
[root@localhost ~]# top -bn1
top - 16:44:12 up 4:54, 3 users, load average: 0.54, 0.18, 0.05
Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.4%us, 3.3%sy, 0.0%ni, 93.3%id, 1.4%wa, 0.1%hi, 0.5%si, 0.0%st
Mem: 326616k total, 318672k used, 7944k free, 62704k buffers
Swap: 2097144k total, 588k used, 2096556k free, 177848k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7236 root 20 0 2936 1220 624 D 7.8 0.4 0:03.22 ls
7237 root 20 0 2568 956 760 R 1.9 0.3 0:00.03 top
1 root 20 0 2900 800 652 S 0.0 0.2 0:01.52 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:11.08 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.94 watchdog/0
7 root 20 0 0 0 0 S 0.0 0.0 0:04.38 events/0
和 top
命令唯一的区别就是,它一次性全部把所有信息输出出来而非动态显示。
4. sar监控系统状态
sar 命令很强大,它可以监控系统所有资源状态,比如平均负载、网卡流量、磁盘状态、内存使用等等。它不同于其他系统状态监控工具的地方在于,它可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态信息。如果你系统没有安装这个命令,请使用 yum install -y sysstat
命令安装。初次使用sar命令会报错,那是因为sar工具还没有生成相应的数据库文件(时时监控就不会了,因为不用去查询那个库文件)。它的数据库文件在 “/var/log/sa/” 目录下,默认保存一个月。因为这个命令太过复杂,所以只介绍几个。
1)查看网卡流量 sar -n DEV
[root@localhost ~]# sar -n DEV
Linux 2.6.32-358.el6.i686 (localhost.localdomain) 2013年05月25日 _i686_ (1 CPU)
00时00分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
00时10分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00时10分01秒 eth0 31.94 0.09 3.89 0.02 0.00 0.00 0.00
00时20分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00时20分01秒 eth0 32.40 0.04 3.96 0.01 0.00 0.00 0.00
00时30分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00时30分01秒 eth0 31.18 0.06 3.76 0.02 0.00 0.00 0.00
并没有把全部信息贴出来,因为太多了。 IFACE这列表示设备名称,rxpck/s 表示每秒进入收取的包的数量,txpck/s 表示每秒发送出去的包的数量,rxbyt/s 表示每秒收取的数据量(单位Byte),txbyt/s表示每秒发送的数据量。后面几列不需要关注。如果有一天你所管理的服务器丢包非常严重,那么你就应该看一看这个网卡流量是否异常了,如果rxpck/s 那一列的数值大于4000,或者rxbyt/s那列大于5,000,000则很有可能是被攻击了,正常的服务器网卡流量不会高于这么多,除非是你自己在拷贝数据。上面的命令是查看网卡流量历史的,如何时时查看网卡流量呢?
[root@localhost ~]# sar -n DEV 1 5
Linux 2.6.32-358.el6.i686 (localhost.localdomain) 2013年05月25日 _i686_ (1 CPU)
16时46分55秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
16时46分56秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
16时46分56秒 eth0 36.36 0.00 4.16 0.00 0.00 0.00 0.00
16时46分56秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
16时46分57秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
16时46分57秒 eth0 69.39 1.02 10.66 0.39 0.00 0.00 0.00
16时46分57秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
16时46分58秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
16时46分58秒 eth0 42.00 1.00 7.56 0.38 0.00 0.00 0.00
16时46分58秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
16时46分59秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
16时46分59秒 eth0 51.52 1.01 7.73 0.39 0.00 0.00 0.00
16时46分59秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
16时47分00秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
16时47分00秒 eth0 60.00 1.00 5.51 0.38 0.00 0.00 0.00
平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
平均时间: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: eth0 51.81 0.81 7.11 0.31 0.00 0.00 0.00
另外也可以查看某一天的网卡流量历史,使用-f选项,后面跟文件名,如果你的系统格式Redhat或者CentOS那么sar的库文件一定是在/var/log/sa/目录下的。:
[root@localhost ~]# sar -n DEV -f /var/log/sa/sa24
Linux 2.6.32-358.el6.i686 (localhost.localdomain) 2013年05月24日 _i686_ (1 CPU)
10时49分36秒 LINUX RESTART
10时50分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11时00分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11时00分01秒 eth0 58.96 0.02 7.87 0.01 0.00 0.00 0.00
11时10分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11时10分01秒 eth0 61.36 0.34 8.29 0.05 0.00 0.00 0.00
11时20分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11时20分01秒 eth0 57.17 0.22 7.65 0.03 0.00 0.00 0.00
11时30分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11时30分01秒 eth0 54.99 0.05 7.03 0.01 0.00 0.00 0.00
11时40分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2)查看历史负载 sar -q
[root@localhost ~]# sar -q
Linux 2.6.32-358.el6.i686 (localhost.localdomain) 2013年05月25日 _i686_ (1 CPU)
00时00分01秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
00时10分01秒 0 142 0.00 0.00 0.00
00时20分01秒 0 143 0.00 0.00 0.00
00时30分01秒 0 143 0.00 0.01 0.00
00时40分01秒 0 143 0.05 0.01 0.00
00时50分01秒 0 143 0.00 0.00 0.00
01时00分01秒 0 143 0.00 0.00 0.00
01时10分01秒 0 143 0.08 0.03 0.00
这个命令有助于我们查看服务器在过去的某个时间的负载状况。关于sar的介绍不愿写太多,毕竟介绍太多会给你带来更多的压力,其实介绍这个命令的目的只是让你学会查看网卡流量(这是非常有用的)。如果你很感兴趣那就man一下吧,它的用法太多了。
5. free查看内存使用状况
[root@localhost ~]# free
total used free shared buffers cached
Mem: 326616 137332 189284 0 34480 73336
-/+ buffers/cache: 29516 297100
Swap: 2097144 1144 2096000
只需要敲一个 free 然后回车就可以当前系统的总内存大小以及使用内存的情况。从上例中可看到当前系统内存总大小为326616(单位是k)已经使用137332, 剩余189284. 其实真正剩余并不是这个189284, 而是第二行的297100, 真正使用的也是第二行的29516, 这是因为系统初始化时,就已经分配出很大一部分内存给缓存,这部分缓存用来随时提供给程序使用,如果程序不用,那这部分内存就空闲。所以,查看内存使用多少,剩余多少请看第二行的数据。另外我们还可以加-m 或者-g选项分别以M或G为单位打印内存使用状况:
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 318 135 183 0 34 72
-/+ buffers/cache: 28 290
Swap: 2047 1 2046
6. ps 查看系统进程
作为系统管理员,一定要知道你所管理的系统都有那些进程在运行,在windows下只要打开任务管理器即可查看。在linux下呢?其实在上面介绍的top命令就可以,但是不容易看,当然还有专门显示系统进程的命令:
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 2900 852 ? Ss 11:49 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 11:49 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11:49 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S 11:49 0:11 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S 11:49 0:00 [migration/0]
root 6 0.0 0.0 0 0 ? S 11:49 0:00 [watchdog/0]
root 7 0.0 0.0 0 0 ? S 11:49 0:04 [events/0]
root 8 0.0 0.0 0 0 ? S 11:49 0:00 [cgroup]
root 9 0.0 0.0 0 0 ? S 11:49 0:00 [khelper]
也经常看到有的人喜欢用 ps -elf
大同小异,显示的信息基本上是一样的。ps命令还有更多的用法,不再做介绍,因为你只要会用这个命令就足够了,请man一下。下面介绍几个参数的意义。
PID :进程的id,这个id很有用,在linux中内核管理进程就得靠pid来识别和管理某一个程,比如我想终止某一个进程,则用 kill进程的pid
有时并不能杀掉,则需要加一个-9选项了 kill -9 进程pid
STAT :表示进程的状态,进程状态分为以下几种(不要求记住,但要了解)
D 不能中断的进程(通常为IO)
R 正在运行中的进程
S 已经中断的进程,通常情况下,系统中大部分进程都是这个状态
T 已经停止或者暂停的进程,如果我们正在运行一个命令,比如说 sleep 10
如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态
W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配
X 已经死掉的进程(这个好像从来不会出现)
Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。
< 高优先级进程
N 低优先级进程
L 在内存中被锁了内存分页
s 主进程
l 多线程进程
+
代表在前台运行的进程
这个ps命令是在工作中用的非常多的命令之一,所以请记住它吧。关于ps命令的使用,经常会连同管道符一起使用,用来查看某个进程或者它的数量。
[root@localhost ~]# ps aux |grep -c mingetty
6
[root@localhost ~]# ps aux |grep mingetty
root 952 0.0 0.1 2008 440 tty2 Ss+ 11:49 0:00 /sbin/mingetty /dev/tty2
root 954 0.0 0.1 2008 440 tty3 Ss+ 11:49 0:00 /sbin/mingetty /dev/tty3
root 956 0.0 0.1 2008 440 tty4 Ss+ 11:49 0:00 /sbin/mingetty /dev/tty4
root 958 0.0 0.1 2008 436 tty5 Ss+ 11:49 0:00 /sbin/mingetty /dev/tty5
root 960 0.0 0.1 2008 444 tty6 Ss+ 11:49 0:00 /sbin/mingetty /dev/tty6
root 8440 0.0 0.2 5984 732 pts/3 S+ 17:12 0:00 grep mingetty
上面的6不对,需要减掉1,因为使用grep命令时,grep命令本身也算作了一个。
7. netstat 查看网络状况
[root@localhost ~]# 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 929/sshd
tcp 0 0 :::80 :::* LISTEN 25005/httpd
tcp 0 0 :::22 :::* LISTEN 929/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 1597/dhclient
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 6783 1/init @/com/ubuntu/upstart
netstat命令用来打印网络连接状况、系统所开放端口、路由表等信息。最常用的关于netstat的命令就是这个 netstat -lnp
(打印当前系统启动哪些端口)以及 netstat -an
(打印网络连接状况)这两个命令非常有用,请一定要记住。
[root@localhost ~]# 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:22 0.0.0.0:* LISTEN
tcp 0 0 10.72.137.159:22 10.72.137.53:50507 ESTABLISHED
tcp 0 52 10.72.137.159:22 10.72.137.53:50827 ESTABLISHED
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 6783 @/com/ubuntu/upstart
unix 2 [ ] DGRAM 6953 @/org/kernel/udev/udevd
unix 3 [ ] DGRAM 6973
unix 3 [ ] DGRAM 6972
如果你所管理的服务器是一台提供web服务(80端口)的服务器,那么你就可以使用 netstat -an |grep 80
查看当前连接web服务的有哪些IP了。
抓包工具tcpdump
有时候,也许你会有这样的需求,想看一下某个网卡上都有哪些数据包,尤其是当你初步判定你的服务器上有流量攻击。这时,使用抓包工具来抓一下数据包,就可以知道有哪些IP在攻击你了。
[root@localhost ~]# tcpdump -nn -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
19:13:56.689147 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 2793829986:2793830182, ack 1384443306, win 1067, length 196
19:13:56.691389 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 196:376, ack 1, win 1067, length 180
19:13:56.691541 IP 10.72.137.53.50827 > 10.72.137.159.22: Flags [.], ack 376, win 16266, length 0
19:13:56.694499 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 376:636, ack 1, win 1067, length 260
19:13:56.695659 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 636:800, ack 1, win 1067, length 164
19:13:56.695793 IP 10.72.137.53.50827 > 10.72.137.159.22: Flags [.], ack 800, win 16160, length 0
19:13:56.698429 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 800:1060, ack 1, win 1067, length 260
19:13:56.700332 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 1060:1224, ack 1, win 1067, length 164
19:13:56.700419 IP 10.72.137.53.50827 > 10.72.137.159.22: Flags [.], ack 1224, win 16425, length 0
如果没有tcpdump 这个命令,需要用
yum install -y tcpdump
命令去安装一下。上例中第三列和第四列显示的信息为哪一个IP+port在连接哪一个IP+port,后面的信息是该数据包的相关信息,如果不懂也没有关系,毕竟我们不是专门搞网络的,而这里需要关注的只是第三列以及第四列。-i 选项后面跟设备名称,如果你想抓eth1网卡的包,后面则要跟eth1.至于-nn选项的作用是让第三列和第四列显示成IP+端口号的形式,如果不加-nn则显示的是主机名+服务名称。
暂无评论内容