第十三课 运维基础(一)html
目录前端
1、使用w查看系统负载
2、vmstat命令
3、top命令
4、sar命令
5、nload命令
6、监控io性能
7、free命令
8、ps命令
9、查看网络状态
10、linux下抓包
11、Linux网络相关
12、扩展node
w命令显示当前机器上登陆的用户以及他们的进程信息。单独执行w命令显示全部的用户,也能够指定用户名称,仅显示该用户的相关信息。python
[root@lanquark demo]# w 21:57:07 up 51 min, 2 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.0.1.229 21:08 3.00s 0.46s 0.01s w root pts/1 10.0.1.229 21:33 21:47 0.04s 0.04s -bash
第一行从左至右依次显示的信息为:mysql
系统当前时间;系统已经运行的时间;当前有多少用户登陆;系统在过去1分钟,5分钟,15钟内的平均负载linux
若是平均负载的值超过了逻辑cpu数量,那么就须要注意了。ios
cpu的信息可经过/proc/cpuinfo文件查询web
[root@lanquark demo]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 42 model name : Intel(R) Pentium(R) CPU G840 @ 2.80GHz stepping : 7 microcode : 0x29 cpu MHz : 2793.225 cache size : 3072 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave hypervisor lahf_lm epb tpr_shadow vnmi ept vpid tsc_adjust dtherm arat pln pts bogomips : 5587.33 clflush size : 64 cache_alignment : 64 address sizes : 42 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 42 model name : Intel(R) Pentium(R) CPU G840 @ 2.80GHz stepping : 7 microcode : 0x29 cpu MHz : 2793.225 cache size : 3072 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave hypervisor lahf_lm epb tpr_shadow vnmi ept vpid tsc_adjust dtherm arat pln pts bogomips : 5587.33 clflush size : 64 cache_alignment : 64 address sizes : 42 bits physical, 48 bits virtual power management:
逻辑cpu的数量统计算法
[root@lanquark demo]# grep -c 'model name' /proc/cpuinfo 2
第二栏的从左至右依次显示的信息为:登陆用户名;登陆的终端名称;登陆的远程主机名,登陆时间,空闲时间,该终端下全部进程的cpu时间(包括当先后台进程的cpu时间,但不包括过去的后台进程的cpu时间);当前进程的cpu时间;当前进程的命令行。sql
uptime命令
uptime命令显示系统运行了多长时间。uptime命令给出如下信息的单行显示:系统当前时间;系统已经运行的时间;当前有多少用户登陆;系统在过去1分钟,5分钟,15钟内的平均负载。与W命令的第一行结果是同样的。
[root@lanquark demo]# uptime 23:15:22 up 2:09, 2 users, load average: 0.00, 0.01, 0.05 [root@lanquark demo]# w 23:15:28 up 2:09, 2 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.0.1.229 21:08 0.00s 0.62s 0.01s w root pts/1 10.0.1.229 21:33 1:06m 0.07s 0.00s less -s
vmstat命令显示虚拟内存统计信息。包括进程,内存,页面文件,阻塞的I/O,陷井,和cpu。
常见用法
vmstat
静态显示内存状态一次
[root@lanquark demo]# vmstat 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 738636 2076 127756 0 0 6 1 27 27 0 0 100 0 0
vmstat [n] 在此n表明时间间隔
意思是以n秒每次的时间间隔动态显示内存状态(按Ctrl+c结束命令)。
[root@lanquark demo]# vmstat 3 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 738636 2076 127756 0 0 6 1 26 26 0 0 100 0 0 0 0 0 738636 2076 127756 0 0 0 0 61 51 0 0 100 0 0 0 0 0 738636 2076 127756 0 0 0 0 37 35 0 0 100 0 0 0 0 0 738636 2076 127756 0 0 0 0 49 44 0 0 100 0 0 ^C
vmstat [n] [m]
意思是以n秒为时间间隔,显示m次后命令结束!
[root@lanquark demo]# vmstat 3 5 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 738776 2076 127756 0 0 6 1 26 26 0 0 100 0 0 0 0 0 738760 2076 127756 0 0 0 0 37 37 0 0 100 0 0 0 0 0 738760 2076 127756 0 0 0 0 37 37 0 0 100 0 0 0 0 0 738760 2076 127756 0 0 0 0 39 36 0 0 100 0 0 0 0 0 738760 2076 127756 0 0 0 0 37 36 0 0 100 0 0
字段说明:
Procs(进程)
r: 运行队列中进程数量,这个值也能够判断是否须要增长CPU。(超过逻辑cpu的个数须要考虑增长cpu)
b: 等待IO的进程数量。
Memory(内存)
swpd: 使用虚拟内存大小,若是swpd的值不为0,可是SI,SO的值长期为0,这种状况不会影响系统性能。
free: 空闲物理内存大小。
buff: 用做缓冲的内存大小。
cache: 用做缓存的内存大小,若是cache的值大的时候,说明cache处的文件数多,若是频繁访问到的文件都能被cache处,那么磁盘的读IO bi会很是小。
Swap
si: 每秒从交换区写到内存的大小,由磁盘调入内存。
so: 每秒写入交换区的内存大小,由内存调入磁盘。
注意:内存够用的时候,这2个值都是0,若是这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)不多的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,若是free不多,可是si和so也不多(大多时候是0),那么不用担忧,系统性能这时不会受到影响的。
IO(如今的Linux版本块的大小为1kb)
bi: 每秒读取的块数
bo: 每秒写入的块数
注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。
system(系统)
in: 每秒中断数,包括时钟中断。
cs: 每秒上下文切换数。
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。
CPU(以百分比表示)
us: 用户进程执行时间百分比(user time)
us的值比较高时,说明用户进程消耗的CPU时间多,可是若是长期超50%的使用,那么咱们就该考虑优化程序算法或者进行加速。
sy: 内核系统进程执行时间百分比(system time)
sy的值高时,说明系统内核消耗的CPU资源多,这并非良性表现,咱们应该检查缘由。
wa: IO等待时间百分比
wa的值高时,说明IO等待比较严重,这可能因为磁盘大量做随机访问形成,也有可能磁盘出现瓶颈(块操做)。
id: 空闲时间百分比
top命令是Linux下经常使用的性能分析工具,可以实时显示系统中各个进程的资源占用情况,相似于Windows的任务管理器。
语法:top [选项]
经常使用选项
-b:批量处理模式
-c:显示详细进程信息
-bn1:静态显示全部进程(该法多用于shell脚本)
top视图
top - 23:54:11 up 2:48, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 100 total, 2 running, 98 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 999720 total, 736876 free, 132980 used, 129864 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 714768 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9 root 20 0 0 0 0 S 0.7 0.0 0:03.22 rcu_sched 13 root 20 0 0 0 0 S 0.7 0.0 0:00.16 ksoftirqd/1 1621 root 20 0 157684 2148 1516 R 0.2 0.2 0:00.07 top 1622 root 20 0 0 0 0 S 0.2 0.0 0:00.01 kworker/1:0 1 root 20 0 125736 4248 2504 S 0.0 0.4 0:01.19 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd ... 中间略... 30 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0 31 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd 32 root 39 19 0 0 0 S 0.0 0.0 0:00.09 khugepaged
字段说明以下
统计信息区(前五行)
第一行从左至右依次显示内容为:系统当前时间;系统已经运行的时间;当前有多少用户登陆;系统在过去1分钟,5分钟,15钟内的平均负载。同uptime命令的运行结果。
第二行从左至右依次显示内容为:进程总数;正在运行的进程数;睡眠的进程数;中止的进程数;僵尸进程数
第三行从左至右依次显示内容为:用户空间占用cpu比;内核空间占用cpu百分比;用户进程空间内改变优先级的进程占用cpu百分比;空闲cpu百分比;等待输入输出的cpu时间百分比;处理硬件中断的CPU时间;处理软件中断的CPU时间;这个虚拟机被hypervisor偷去的CPU时间
最后两行为内存信息,内容以下:
物理内存总量;使用的物理内存总量;空闲内存总量;用做内核缓存的内存量;交换区总量;使用的交换区总量;空闲交换区总量;缓冲的交换区总量。
进程信息区
PID:进程ID,进程的惟一标识符
USER:进程全部者的实际用户名。
PR:进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR:SHR是进程使用的共享内存。共享内存大小,单位kb
S:这个是进程的状态。它有如下不一样的值:
D - 不可中断的睡眠态。
R – 运行态
S – 睡眠态
T – 被跟踪或已中止
Z – 僵尸态
%CPU:自从上一次更新时到如今任务所使用的CPU时间百分比。
%MEM:进程使用的可用物理内存百分比。
TIME+:任务启动后到如今所使用的所有CPU时间,精确到百分之一秒。
COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)
还有许多在默认状况下不会显示的输出,它们能够显示进程的页错误、有效组和组ID和其余更多的信息。
top的交互命令
‘h’: 帮助
Help for Interactive Commands - procps-ng version 3.3.10 Window 1:Def: Cumulative mode Off. System: Delay 10.0 secs; Secure mode Off. Z,B,E,e Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale l,t,m Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info 0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode f,F,X Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify x,y . Toggle highlights: 'x' sort field; 'y' running tasks z,b . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y') u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria n,#,^O . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s) C,... . Toggle scroll coordinates msg for: up,down,left,right,home,end k,r Manipulate tasks: 'k' kill; 'r' renice d or s Set update interval W,Y Write configuration file 'W'; Inspect other output 'Y' q Quit ( commands shown with '.' require a visible task display window ) Press 'h' or '?' for help with Windows, Type 'q' or <Esc> to continue
‘
top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新,用户能够输入回车或者空格。
多核CPU监控
在top基本视图中,按键盘数字“1”,可监控每一个逻辑CPU的情况:
//默认显示%cpu //按1后显示%cpu0,%cpu1,由于本机是双核 top - 01:50:31 up 4:44, 2 users, load average: 0.00, 0.01, 0.05 Threads: 115 total, 2 running, 113 sleeping, 0 stopped, 0 zombie %Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 999720 total, 736128 free, 133392 used, 130200 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 714152 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1621 root 20 0 157684 2268 1604 R 0.1 0.2 0:02.27 top 1 root 20 0 125736 4248 2504 S 0.0 0.4 0:01.24 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.07 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/u256:0 ...下略...
shift+M 按内存占用排序(默认(默认以CPU使用占比排序,shift+p恢复默认)
top - 01:56:03 up 4:50, 2 users, load average: 0.00, 0.01, 0.05 Threads: 115 total, 2 running, 113 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.5 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 999720 total, 736128 free, 133392 used, 130200 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 714152 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1070 root 20 0 562408 18644 5888 S 0.0 1.9 0:00.20 tuned 1111 root 20 0 562408 18644 5888 S 0.0 1.9 0:00.00 gmain 1112 root 20 0 562408 18644 5888 S 0.0 1.9 0:00.00 tuned 1113 root 20 0 562408 18644 5888 S 0.0 1.9 0:02.36 tuned 1114 root 20 0 562408 18644 5888 S 0.0 1.9 0:00.00 tuned 674 polkitd 20 0 534892 11816 4864 S 0.0 1.2 0:00.05 polkitd 693 polkitd 20 0 534892 11816 4864 S 0.0 1.2 0:00.00 gmain 695 polkitd 20 0 534892 11816 4864 S 0.0 1.2 0:00.00 gdbus 696 polkitd 20 0 534892 11816 4864 S 0.0 1.2 0:00.00 JS GC Helper 697 polkitd 20 0 534892 11816 4864 S 0.0 1.2 0:00.00 JS Sour~ Thread 707 polkitd 20 0 534892 11816 4864 S 0.0 1.2 0:00.00 polkitd 730 root 20 0 471816 10916 6612 S 0.0 1.1 0:00.17 NetworkManager 750 root 20 0 471816 10916 6612 S 0.0 1.1 0:00.41 gmain 765 root 20 0 471816 10916 6612 S 0.0 1.1 0:00.01 gdbus 670 root 20 0 210180 9908 3104 S 0.0 1.0 0:00.01 rsyslogd 692 root 20 0 210180 9908 3104 S 0.0 1.0 0:01.76 in:imjournal 694 root 20 0 210180 9908 3104 S 0.0 1.0 0:00.08 rs:main Q:Reg 673 root 20 0 305080 6160 4796 S 0.0 0.6 0:16.36 vmtoolsd 719 root 20 0 305080 6160 4796 S 0.0 0.6 0:00.00 gmain 672 root 20 0 99612 6080 4476 S 0.0 0.6 0:00.04 VGAuthService 654 root 20 0 219408 5644 3828 S 0.0 0.6 0:00.14 abrtd 1183 root 20 0 145704 5204 3940 S 1.0 0.5 0:02.50 sshd 1269 root 20 0 145704 5204 3940 S 0.0 0.5 0:00.25 sshd 667 root 20 0 216908 4724 3320 S 0.0 0.5 0:00.06 abrt-watch-log 1 root 20 0 125736 4248 2504 S 0.0 0.4 0:01.24 systemd 1069 root 20 0 105996 4092 3112 S 0.0 0.4 0:00.01 sshd
-f 默认显示的字段
Fields Management for window 1:Def, whose current sort field is %MEM Navigate with Up/Dn, Right selects for move then <Enter> or Left commits, 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end! * PID = Process Id DATA = Data+Stack (KiB) * USER = Effective User Name nMaj = Major Page Faults * PR = Priority nMin = Minor Page Faults * NI = Nice Value nDRT = Dirty Pages Count * VIRT = Virtual Image (KiB) WCHAN = Sleeping in Function * RES = Resident Size (KiB) Flags = Task Flags <sched.h> * SHR = Shared Memory (KiB) CGROUPS = Control Groups * S = Process Status SUPGIDS = Supp Groups IDs * %CPU = CPU Usage SUPGRPS = Supp Groups Names * %MEM = Memory Usage (RES) TGID = Thread Group Id * TIME+ = CPU Time, hundredths ENVIRON = Environment vars * COMMAND = Command Name/Line vMj = Major Faults delta PPID = Parent Process pid vMn = Minor Faults delta UID = Effective User Id USED = Res+Swap Size (KiB) RUID = Real User Id nsIPC = IPC namespace Inode RUSER = Real User Name nsMNT = MNT namespace Inode SUID = Saved User Id nsNET = NET namespace Inode SUSER = Saved User Name nsPID = PID namespace Inode GID = Group Id nsUSER = USER namespace Inode GROUP = Group Name nsUTS = UTS namespace Inode PGRP = Process Group Id TTY = Controlling Tty TPGID = Tty Process Grp Id SID = Session Id nTH = Number of Threads P = Last Used Cpu (SMP) TIME = CPU Time SWAP = Swapped Size (KiB) CODE = Code Size (KiB)
top -bn1 静态显示全部进程
[root@lanquark ~]# top -bn1 top - 20:33:37 up 6 min, 1 user, load average: 0.00, 0.01, 0.01 Tasks: 115 total, 1 running, 114 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 1.6 sy, 0.0 ni, 98.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 999720 total, 267008 free, 577360 used, 155352 buff/cache KiB Swap: 1999868 total, 1999868 free, 0 used. 255448 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 191252 4212 2492 S 0.0 0.4 0:01.15 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.00 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.02 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 S 0.0 0.0 0:00.23 rcu_sched 10 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 11 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1 12 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/1 13 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/1 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0 ...中间略... 1121 root 20 0 105996 4084 3104 S 0.0 0.4 0:00.00 sshd 1134 root 20 0 115388 1672 1360 S 0.0 0.2 0:00.00 mysqld_safe 1277 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kdmflush 1278 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 1310 mysql 20 0 1300780 454336 5840 S 0.0 45.4 0:04.04 mysqld 1372 root 20 0 89544 2080 1068 S 0.0 0.2 0:00.01 master 1373 postfix 20 0 89648 4004 3004 S 0.0 0.4 0:00.01 pickup 1374 postfix 20 0 89716 4028 3024 S 0.0 0.4 0:00.00 qmgr 1407 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/2:1H 1413 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:1H 1417 root 20 0 145700 5168 3908 S 0.0 0.5 0:00.05 sshd 1419 root 20 0 116316 2936 1648 S 0.0 0.3 0:00.04 bash 1468 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/3:1H 1482 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0 1483 root 20 0 157584 2056 1480 R 0.0 0.2 0:00.00 top
htop命令具备更好的可视化界面。
sar是system activity recorder的缩写,它不只能够用来收集、报告和存储系统活动实时信息,还能够从数据文件中查看历史信息。
若是系统中没有sar命令,需安装sysstat软件包
[root@lanquark demo]# yum -y install sysstat-10.1.5-13.el7.x86_64
实时信息
语法:sar [选项] [interval] [count]
活动信息依赖于interval和count两个参数。如没有count,则只会运行一次。
历史信息
在/var/log/sa目录中记录了Linux系统的主要组件的数据,包括cpu、内存、磁盘、网络等。天天的数据记录在一个名为sa[nn]文件中。nn是每个月的第nn天。
查看特定日期的sar数据用以下命令
//当月10日的信息 [root@lanquark demo]# sar -f /var/log/sa/sa10 Linux 3.10.0-693.el7.x86_64 (lanquark.com) 06/10/2018 _x86_64_ (2 CPU)
显示系统cpu利用率的相关信息
//使用sar 3 5 或者 sar -u 3 5 [root@lanquark demo]# sar 3 5 Linux 3.10.0-693.el7.x86_64 (lanquark.com) 06/10/2018 _x86_64_ (2 CPU) 02:22:07 AM CPU %user %nice %system %iowait %steal %idle 02:22:10 AM all 0.00 0.00 0.00 0.00 0.00 100.00 02:22:13 AM all 0.17 0.00 0.17 0.00 0.00 99.67 02:22:16 AM all 0.00 0.00 0.00 0.00 0.00 100.00 02:22:19 AM all 0.00 0.00 0.17 0.00 0.00 99.83 02:22:22 AM all 0.00 0.00 0.00 0.00 0.00 100.00 Average: all 0.03 0.00 0.07 0.00 0.00 99.90 //cpu信息说明 //CPU标识符;all表示全部CPU //%user用户级进行运行占用的cpu利用率,包括运行虚拟进程的时间 //%nice 在nice优先级下用户级进程占用的cpu利用率 //%system 系统进程(内核)运行占用的cpu百分比,包括软、硬件的中断时间 //%iowait等待进行I/O操做的cpu百分比,此时cpu处于空闲状态可是系统有未完成的I/O请求 //%steal 在管理程序运行其余虚拟化进程所形成的cpu等待的百分比 //%idle 等待工做的cpu空闲时间百分比 //显示各个cpu的统计信息及总统计信息 [root@lanquark demo]# sar -P ALL 2 2 Linux 3.10.0-693.el7.x86_64 (lanquark.com) 06/10/2018 _x86_64_ (2 CPU) 02:50:27 AM CPU %user %nice %system %iowait %steal %idle 02:50:29 AM all 0.00 0.00 0.25 0.00 0.00 99.75 02:50:29 AM 0 0.00 0.00 0.00 0.00 0.00 100.00 02:50:29 AM 1 0.00 0.00 0.00 0.00 0.00 100.00 02:50:29 AM CPU %user %nice %system %iowait %steal %idle 02:50:31 AM all 0.00 0.00 0.00 0.00 0.00 100.00 02:50:31 AM 0 0.00 0.00 0.00 0.00 0.00 100.00 02:50:31 AM 1 0.00 0.00 0.00 0.00 0.00 100.00 Average: CPU %user %nice %system %iowait %steal %idle Average: all 0.00 0.00 0.12 0.00 0.00 99.88 Average: 0 0.00 0.00 0.00 0.00 0.00 100.00 Average: 1 0.00 0.00 0.00 0.00 0.00 100.00
内存信息
//每隔1秒输出一次内存信息,共输出3次 [root@lanquark demo]# sar -R 1 3 Linux 3.10.0-693.el7.x86_64 (lanquark.com) 06/10/2018 _x86_64_ (2 CPU) 02:52:03 AM frmpg/s bufpg/s campg/s 02:52:04 AM 6.00 0.00 0.00 02:52:05 AM 0.00 0.00 0.00 02:52:06 AM 0.00 0.00 0.00 Average: 1.99 0.00 0.00 //frmpg/s 系统每秒释放的内存页数量,若是值为负表示系统已经分配了的内存页数。依机器体系的不一样,内存页的大小可能为4kb或8kb //bufpg/s 系统每秒用于buffers的附加的内存页数。若是值为负表示只有较少的页被用于系统buffers //campg/s 系统每秒用于cached的附加的内存页数。若是值为负表示只有较少的页被用于系统cached //每隔1秒输出一次内存利用率信息,共输出3次 [root@lanquark demo]# sar -r 1 3 Linux 3.10.0-693.el7.x86_64 (lanquark.com) 06/10/2018 _x86_64_ (2 CPU) 02:53:30 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 02:53:31 AM 250040 749680 74.99 2076 547132 258132 8.34 540072 85256 0 02:53:32 AM 250040 749680 74.99 2076 547132 258132 8.34 540080 85256 0 02:53:33 AM 250040 749680 74.99 2076 547132 258132 8.34 540084 85256 0 Average: 250040 749680 74.99 2076 547132 258132 8.34 540079 85256 0 //kbmemfree 此时可用的内存数量,以kb为单位 //kbmemused 此时已用的内存数量,以kb为单位,不包括内核使用的内存数 //%memused 已使用内存的百分比 //kbbuffers 内核使用的缓冲区(buffer)占内存的百分比,以kb为单位,即为free命令中的buffer //kbcached 内核使用的缓存(cache)占内存的百分比,以kb为单位,即为free命令中的cache //kbcommit 当前工做负载所须要的内存数量,以kb为单位,这是对于当前所需RAM/swap的一个估值。以保证不会出现内存不足 //%commit 中kbcommit与内存总量(包括swap)的一个比值,该值有可能会超100% //每隔1秒输出一次SWAP利用率信息,共输出3次 [root@lanquark demo]# sar -S 1 3 Linux 3.10.0-693.el7.x86_64 (lanquark.com) 06/10/2018 _x86_64_ (2 CPU) 03:05:01 AM kbswpfree kbswpused %swpused kbswpcad %swpcad 03:05:02 AM 2097148 0 0.00 0 0.00 03:05:03 AM 2097148 0 0.00 0 0.00 03:05:04 AM 2097148 0 0.00 0 0.00 Average: 2097148 0 0.00 0 0.00 //kbswpfree 空闲可用的交换分区大小,以kb为单位 //kbswpused 以使用的交换分区大小,以kb为单位 //%swpused 已使用的交换分区所占的百分比 //kbswpcad 用于cache的swap内存数,以kb为单位。该内存指的是:曾经被swap out的内存又被swap back in。可是还存在于swap中。因为它在swap中已经存在,因此若是该部份内存须要调用就不会再次swap out,节省I/O操做。 //%swpcad 用于cache的swap内存。
I/O
[root@lanquark demo]# sar -b 2 5 Linux 3.10.0-693.el7.x86_64 (lanquark.com) 06/10/2018 _x86_64_ (2 CPU) 03:21:20 AM tps rtps wtps bread/s bwrtn/s 03:21:22 AM 0.00 0.00 0.00 0.00 0.00 03:21:24 AM 0.00 0.00 0.00 0.00 0.00 03:21:26 AM 0.00 0.00 0.00 0.00 0.00 03:21:28 AM 0.00 0.00 0.00 0.00 0.00 03:21:30 AM 0.00 0.00 0.00 0.00 0.00 Average: 0.00 0.00 0.00 0.00 0.00 //tps 每秒传送到物理设备的I/O请求总数。多个逻辑请求可能会组合成一个I/O请求,每一个I/O请求的大小并不固定 //rtps 对物理设备的读请求速率/秒 //wtps 对物理设备的写请求速率/秒 //bread/s 每秒从块设备读取数据的速度,以块(block)为单位,一块为512Bytes //bwrtn/s 每秒向块设备写入数据的速度
磁盘统计信息
//每隔2秒显示一次信息,共显示5次 [root@lanquark demo]# sar -d 2 5 Linux 3.10.0-693.el7.x86_64 (lanquark.com) 06/10/2018 _x86_64_ (2 CPU) 03:36:04 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 03:36:06 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:36:06 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:36:06 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 03:36:08 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:36:08 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:36:08 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 03:36:10 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:36:10 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:36:10 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 03:36:12 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:36:12 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:36:12 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 03:36:14 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:36:14 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util Average: dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 //tps 每秒对设备进行的I/O操做数量 //rd_sec/s 每秒从磁盘读取的扇区数,每一个扇区为512字节 //wr_sec/s 每秒写入磁盘的扇区数 //avgrq-sz 磁盘的平均请求扇区数 //avgqu-sz 磁盘的平均请求的队列长度 //await 平均每次磁盘I/O请求花费的时间,包括服务时间的队列等待时间 //svctm 平均每次磁盘I/O请求的服务时间 //%util 设备用于I/O操做的cpu百分比
系统中默认没有nload命令,需安装软件包nload
[root@lanquark demo]# yum -y install nload-0.7.4-4.el7.x86_64
用法
直接在命令行键入nload
nload 命令一旦执行就会开始监控网络设备,你可使用下列快捷键操控 nload 应用程序。
你能够按键盘上的 ← → 或者 Enter/Tab 键在设备间切换。
按 F2 显示选项窗口。
按 F5 将当前设置保存到用户配置文件。
按 F6 从配置文件从新加载设置。
按 q 或者 Ctrl+C 退出 nload。
iostat命令能够查看cpu的统计信息,以及设备,磁盘分区和网络文件系统等的I/O统计信息。
经常使用参数
-c 显示cpu的使用状况,默认显示cpu的使用状况
-d 显示磁盘的使用状况
-k 以千字节为单位显示数据
-x device 指定要统计的设备名称,默认为全部的设备
cpu利用率报告
[root@lanquark demo]# iostat -c Linux 3.10.0-693.el7.x86_64 (lanquark.com) 06/10/2018 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.04 0.00 0.10 0.06 0.00 99.80 //%user cpu处在用户模式下的时间百分比 //%nice cpu处在带nice值的用户模式下的时间百分比 //%system cpu处在系统模式下的时间百分比 //%iowait cpu等待输入/输出完成的时间百分比 //%steal 管理程序维护另外一个虚拟处理器时,虚拟cpu的无心识等待时间百分比 //%idle 显示cpu空闲时间的在百分比 //若是iowait的值太高,表示磁盘存在I/O瓶颈;若是idle值高,说明cpu较空闲,若是idle值高但系统响应慢,有多是cpu等待分配内存,此时应加在内存容量,若是idle值持续低于10,说明cpu存在瓶颈。
设备利用率
[root@lanquark demo]# iostat sda Linux 3.10.0-693.el7.x86_64 (lanquark.com) 06/10/2018 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.04 0.00 0.10 0.06 0.00 99.81 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 0.54 9.48 15.04 248642 394548 //Device 监测的设备名称 //tps 设备每秒传输的次数 //kB_read/s 每秒从该设备读取的块数 //kB_wrtn/s 每秒向该设备写入的块数 //kB_read 系统启动读取的总块数 //kB_wrtn 系统启动后写入的总块数 如需了解更加详细的信息,须要使用-x参数 [root@lanquark demo]# iostat -x sda Linux 3.10.0-693.el7.x86_64 (lanquark.com) 06/10/2018 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.04 0.00 0.09 0.06 0.00 99.81 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.34 0.20 9.39 14.90 91.09 0.01 25.73 11.22 50.71 2.87 0.15 //Device: 监测的设备名称,默认全部的设备 //rrqm/s 该设备每秒合并的请求数量 //wrqm/s 与读取相似,表示该设备每秒合并的写请求数 // r/s 每秒向该设备发出的读请求数 // w/s 每秒每该设备发出的写请求数 //rkB/s 每秒从该设备读取的扇区数 //wkB/s 每秒写入该设备的扇区数 //avgrq-sz 该设备读请求的平均大小,以扇区为单位 //avgqu-sz 该设备的请求队列的平均长度 //await 该设备的每个I/O请求处理的平均时间 //r_await 该设备的每个I/O读请求处理的平均时间 //w_await 该设备的每个I/O写请求处理的平均时间 //svctm 该设备的I/O请求的平均服务时间,以毫秒为单位 //%util 该设备在I/O请求过程当中CPU百分比。暗示了设备的繁忙程度。
iotop命令
iotop命令是相似于top命令的I/O监视器。iotop具备与top类似的UI,其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到每设备的读写状况,若是你想知道每一个进程是如何使用IO的就比较麻烦,使用iotop命令能够很方便的查看。
系统默认没有安装iotop,需安装软件包iotop
[root@lanquark demo]# yum -y install iotop-0.6-2.el7.noarch
用法
在命令行直接输入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-root --system --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] 6 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u256:0] 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] 15 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/1:0H] 17 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdevtmpfs] 18 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 19 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khungtaskd] 20 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [writeback] 21 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kintegrityd] 22 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bioset] 23 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kblockd] 24 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [md] 1114 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % python -Es /usr/sbin/tuned -l -P 30 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kswapd0] 31 be/5 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksmd] 32 be/7 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khugepaged] 33 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [crypto] 41 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthrotld] 43 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u256:1] 44 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kmpath_rdacd] ...下略...
经常使用快捷
← →左右箭头:改变排序方式,默认是按IO排序。
r:改变排序顺序。
o:只显示有IO输出的进程。
p:进程/线程的显示方式的切换。
a:显示累积使用量。
q:退出。
free命令能够查看系统内存的使用状况。
-b,-k,-m,-g 以KB,MB,GB为单位显示输出
[root@lanquark demo]# free -k total used free shared buff/cache available Mem: 999720 137740 227952 6760 634028 674568 Swap: 2097148 0 2097148 [root@lanquark demo]# free -m total used free shared buff/cache available Mem: 976 134 222 6 619 658 Swap: 2047 0 2047 [root@lanquark demo]# free -g total used free shared buff/cache available Mem: 0 0 0 0 0 0 Swap: 1 0 1
-h 以人类友好的方式输出
[root@lanquark demo]# free -h total used free shared buff/cache available Mem: 976M 134M 222M 6.6M 619M 658M Swap: 2.0G 0B 2.0G
-t 在输出底部显示物理内存和交换分区的总和
[root@lanquark demo]# free -t total used free shared buff/cache available Mem: 999720 137560 228112 6760 634048 674748 Swap: 2097148 0 2097148 Total: 3096868 137560 2325260
说明:
“total=used+free+buff/cache”
“available=free+buff/cache(空闲部分)”
buff(缓冲):主要是用在传输效率不一样步或优先级不一样设备之间传输数据,通常是先将一方数据临时存放,而后待时机合适再将数据统一发送到另外一方,从而下降了系统的等待时间。
cache(缓存):缓存主要是在传输速度比较高的设备中为传输速度比较低的设备开辟必定空间,用于存放速度低设备中数据的副本,这样当要访问数据时,就能够从速度快设备访问获得,无需访问低速度的设备。
PS命令能够查找特定的PID,检查进程正在作什么,而且概述系统中正在发生的每件事件。
使用UNIX选项的基本语法
ps [-aefFly] [-p pid] [-u uid]
使用BSD选项的基本语法
ps [ajluvx] [p pid] [u uid]
二种选项使用任意一种便可。
经常使用组合
ps 显示本身的进程
[root@lanquark demo]# ps PID TTY TIME CMD 1185 pts/0 00:00:01 bash 3004 pts/0 00:00:00 ps
ps -ef,显示全部的用户进程,完整输出
[root@lanquark demo]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Jun09 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 root 2 0 0 Jun09 ? 00:00:00 [kthreadd] root 3 2 0 Jun09 ? 00:00:00 [ksoftirqd/0] root 5 2 0 Jun09 ? 00:00:00 [kworker/0:0H] root 6 2 0 Jun09 ? 00:00:00 [kworker/u256:0] root 7 2 0 Jun09 ? 00:00:00 [migration/0] root 8 2 0 Jun09 ? 00:00:00 [rcu_bh] root 9 2 0 Jun09 ? 00:00:09 [rcu_sched] root 10 2 0 Jun09 ? 00:00:00 [watchdog/0] ...中间略... root 1271 1269 0 Jun09 pts/1 00:00:00 -bash root 1403 2 0 Jun09 ? 00:00:14 [kworker/0:0] root 1603 1271 0 Jun09 pts/1 00:00:00 man vmstat root 1613 1603 0 Jun09 pts/1 00:00:00 less -s root 2979 2 0 05:10 ? 00:00:00 [kworker/1:0] postfix 2994 1170 0 05:26 ? 00:00:00 pickup -l -t unix -u root 3001 2 0 05:30 ? 00:00:00 [kworker/1:1] root 3002 2 0 05:32 ? 00:00:00 [kworker/0:1] root 3003 2 0 05:37 ? 00:00:00 [kworker/0:2] root 3005 2 0 05:38 ? 00:00:00 [kworker/1:2] root 3006 1185 0 05:38 pts/0 00:00:00 ps -ef
ps -a 显示全部非守护进程
[root@lanquark demo]# ps -a PID TTY TIME CMD 1603 pts/1 00:00:00 man 1613 pts/1 00:00:00 less 3007 pts/0 00:00:00 ps
ps -t -
[root@lanquark demo]# ps -t - PID TTY TIME CMD 1 ? 00:00:01 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 ksoftirqd/0 5 ? 00:00:00 kworker/0:0H 6 ? 00:00:00 kworker/u256:0 7 ? 00:00:00 migration/0 8 ? 00:00:00 rcu_bh ...中间略... 1070 ? 00:00:04 tuned 1170 ? 00:00:00 master 1172 ? 00:00:00 qmgr 1183 ? 00:00:08 sshd 1269 ? 00:00:00 sshd 1403 ? 00:00:14 kworker/0:0 2979 ? 00:00:00 kworker/1:0 2994 ? 00:00:00 pickup 3001 ? 00:00:00 kworker/1:1 3002 ? 00:00:00 kworker/0:1 3003 ? 00:00:00 kworker/0:2 3005 ? 00:00:00 kworker/1:2
ps ax 显示全部进程
[root@lanquark demo]# ps ax PID TTY STAT TIME COMMAND 1 ? Ss 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 2 ? S 0:00 [kthreadd] 3 ? S 0:00 [ksoftirqd/0] ...中间略... 1403 ? R 0:14 [kworker/0:0] 1603 pts/1 S+ 0:00 man vmstat 1613 pts/1 S+ 0:00 less -s 2979 ? S 0:00 [kworker/1:0] 2994 ? S 0:00 pickup -l -t unix -u 3001 ? S 0:00 [kworker/1:1] 3002 ? S 0:00 [kworker/0:1] 3003 ? S 0:00 [kworker/0:2] 3005 ? S 0:00 [kworker/1:2] 3014 pts/0 R+ 0:00 ps ax
ps aux 显示全部进程,完整输出
[root@lanquark demo]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.4 125736 4256 ? Ss Jun09 0:01 /usr/lib/systemd/systemd --switched-root --system - root 2 0.0 0.0 0 0 ? S Jun09 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Jun09 0:00 [ksoftirqd/0] ...中间略... root 1271 0.0 0.3 116316 3020 pts/1 Ss Jun09 0:00 -bash root 1403 0.0 0.0 0 0 ? S Jun09 0:14 [kworker/0:0] root 1603 0.0 0.1 119208 1952 pts/1 S+ Jun09 0:00 man vmstat root 1613 0.0 0.0 110260 952 pts/1 S+ Jun09 0:00 less -s root 2979 0.0 0.0 0 0 ? S 05:10 0:00 [kworker/1:0] postfix 2994 0.0 0.4 89648 4016 ? S 05:26 0:00 pickup -l -t unix -u root 3001 0.0 0.0 0 0 ? S 05:30 0:00 [kworker/1:1] root 3003 0.0 0.0 0 0 ? S 05:37 0:00 [kworker/0:2] root 3005 0.0 0.0 0 0 ? R 05:38 0:00 [kworker/1:2] root 3015 0.0 0.0 0 0 ? S 05:42 0:00 [kworker/0:1] root 3016 0.0 0.1 151064 1832 pts/0 R+ 05:43 0:00 ps aux
常见列标题
PID 进程ID
PRI 优先级
RSS 内存驻留空间大小(内存管理)
TTY 控制终端的完整名称
UID 用户标志
%CPU CPU(处理器)使用百分比
%MEM 真实内存使用百分比
JOBC 做业控制统计
SL 睡眠时间(单位为秒)
STAT 进程状态
进程状态包括:
D:不能中断的进程
R:run状态的进程
S:sleep状态的进程
s:主进程
T:暂停的进程
Z:僵尸进程
<:高优先级进程
N:低优先级进程
L:内存中被锁定了内存分页
l:多线程进程
+:前台进程
netstat命令
经过netstat命令能够列出系统中与IP、TCP、UDP及ICMP等协议相关的统计信息。还能够用于检测各个端口的监听状态。
经常使用参数说明
-r 显示路由表,功能与route相同
-n 不解析域名,只是列出IP地址及端口
-a 列出全部的联机状态,包括tcp/udp UNIX socket等
-p 显示PID及程序名
-e 显示更多其余信息
-c 配置几秒后更新一次数据
-l 列出正在listen(监听)的服务的网络状态
-t 列出tcp数据包的链接
-u 列出udp数据包的链接
显示当前路由表
[root@lanquark ~]# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 ens32 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens32
显示目前已经创建的全部的有效链接信息列表
[root@lanquark ~]# 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 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 52 192.168.1.211:22 192.168.1.9:2068 ESTABLISHED tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN tcp6 0 0 :::3306 :::* 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 11524 /run/systemd/private unix 2 [ ACC ] STREAM LISTENING 22755 public/cleanup unix 2 [ ACC ] SEQPACKET LISTENING 11540 /run/udev/control unix 2 [ ] DGRAM 11542 /run/systemd/shutdownd unix 2 [ ACC ] STREAM LISTENING 21147 private/tlsmgr unix 2 [ ACC ] STREAM LISTENING 21150 private/rewrite unix 2 [ ACC ] STREAM LISTENING 21153 private/bounce unix 2 [ ACC ] STREAM LISTENING 21156 private/defer ...中间略... unix 3 [ ] STREAM CONNECTED 18050 /var/run/dbus/system_bus_socket unix 3 [ ] STREAM CONNECTED 21178 unix 3 [ ] STREAM CONNECTED 17856 /run/systemd/journal/stdout unix 2 [ ] DGRAM 17010 unix 2 [ ] DGRAM 16946
查看监听端口
[root@lanquark ~]# 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 1121/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1372/master tcp6 0 0 :::22 :::* LISTEN 1121/sshd tcp6 0 0 ::1:25 :::* LISTEN 1372/master tcp6 0 0 :::3306 :::* LISTEN 1310/mysqld udp 0 0 127.0.0.1:323 0.0.0.0:* 751/chronyd udp6 0 0 ::1:323 :::* 751/chronyd raw6 0 0 :::58 :::* 7 784/NetworkManager Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 11524 1/systemd /run/systemd/private unix 2 [ ACC ] STREAM LISTENING 22755 1372/master public/cleanup unix 2 [ ACC ] SEQPACKET LISTENING 11540 1/systemd /run/udev/control unix 2 [ ACC ] STREAM LISTENING 21147 1372/master private/tlsmgr ...中间略... unix 2 [ ACC ] STREAM LISTENING 21180 1372/master public/showq unix 2 [ ACC ] STREAM LISTENING 13769 1/systemd /run/lvm/lvmetad.socket unix 2 [ ACC ] STREAM LISTENING 22812 1310/mysqld /tmp/mysql.sock unix 2 [ ACC ] STREAM LISTENING 16351 735/VGAuthService /var/run/vmware/guestServicePipe unix 2 [ ACC ] STREAM LISTENING 16889 714/abrtd /var/run/abrt/abrt.socket
只看tcp协议链接,不看socket
[root@lanquark ~]# 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 1121/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1372/master tcp6 0 0 :::22 :::* LISTEN 1121/sshd tcp6 0 0 ::1:25 :::* LISTEN 1372/master tcp6 0 0 :::3306 :::* LISTEN 1310/mysqld
列出目前已经启动的TCP/UDP网络服务
[root@lanquark ~]# netstat -nltup 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 1121/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1372/master tcp6 0 0 :::22 :::* LISTEN 1121/sshd tcp6 0 0 ::1:25 :::* LISTEN 1372/master tcp6 0 0 :::3306 :::* LISTEN 1310/mysqld udp 0 0 127.0.0.1:323 0.0.0.0:* 751/chronyd udp6 0 0 ::1:323 :::* 751/chronyd
查看tcp协议状态的命令
[root@lanquark ~]# netstat -an | awk '/^tcp/{++sta[$NF]}END{for(key in sta)print key,"\t",sta[key]}' LISTEN 5 ESTABLISHED 1
ss命令
ss 是 socket statistics 的缩写。顾名思义,ss 命令能够用来获取socket 统计信息,它能够显示和netstat 相似的内容。但 ss 的优点在于它可以显示更多更详细的有关TCP和链接状态的信息,并且比netstat更快速更高效。缺点是不会显示进程的名称。
语法:ss 参数
ss 参数 过滤
经常使用参数说明
-n 不解析服务名称
-r 解析主机名
-l 显示监听状态的套接字
-a 显示全部套接字
-t 仅显示tcp套接字
-u 仅显示udp套接字
显示TCP链接
[root@lanquark ~]# ss -t -a State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:ssh *:* LISTEN 0 100 127.0.0.1:smtp *:* ESTAB 0 0 192.168.1.211:ssh 192.168.1.9:avauthsrvprtcl LISTEN 0 128 :::ssh :::* LISTEN 0 100 ::1:smtp :::* LISTEN 0 80 :::mysql :::*
显示全部UDP sockets
[root@lanquark ~]# ss -u -a State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 192.168.1.211:53905 5.103.139.163:ntp UNCONN 0 0 127.0.0.1:323 *:* UNCONN 0 0 ::1:323 :::*
显示 sockets 摘要
[root@lanquark ~]# ss -s Total: 572 (kernel 1122) TCP: 6 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0 Transport Total IP IPv6 * 1122 - - RAW 1 0 1 UDP 2 1 1 TCP 6 3 3 INET 9 4 5 FRAG 0 0 0
显示全部的联机状态
[root@lanquark ~]# ss -an Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port nl UNCONN 0 0 0:0 * ...中间略... tcp ESTAB 0 5376 192.168.1.211:22 192.168.1.9:2068 tcp LISTEN 0 128 :::22 :::* tcp LISTEN 0 100 ::1:25 :::* tcp LISTEN 0 80 :::3306 :::*
tcpdump命令
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump能够将网络中传送的数据包的“头”彻底截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会中止抓包。
最小化安装默认没有安装tcpdump,需安装tcpdump软件包
[root@lanquark ~]# yum -y install tcpdump.x86_64
抓包选项:
-c:指定要抓取的包数量
-i interface:指定tcpdump须要监听的接口。若未指定该选项,将从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口,要抓取loopback接口使用tcpdump -i lo),
-n:对地址以数字方式显式,不然显式为主机名,也就是说-n选项不作主机名解析。
-nn:除了-n的做用外,还把端口显示为数值,不然显示端口服务名。
-N:不打印出host的域名部分。例如tcpdump将会打印'nic'而不是'nic.ddn.mil'。
-P:指定要抓取的包是流入仍是流出的包。能够给定的值为"in"、"out"和"inout",默认为"inout"。
-w:将抓包数据输出到文件中而不是标准输出。能够同时配合"-G time"选项使得输出文件每time秒就自动切换到另外一个文件。可经过"-r"选项载入这些文件以进行分析和打印。
-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。
抓取指定网络接口全部的流量包
//为方便观察,只抓取5次 [root@lanquark ~]# tcpdump -c 5 -nn -i ens32 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens32, link-type EN10MB (Ethernet), capture size 262144 bytes 23:08:41.653674 IP 192.168.1.211.22 > 192.168.1.9.2068: Flags [P.], seq 3174207465:3174207677, ack 2481139789, win 296, length 212 23:08:41.653874 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 212, win 2048, length 0 23:08:41.653951 IP 192.168.1.211.22 > 192.168.1.9.2068: Flags [P.], seq 212:408, ack 1, win 296, length 196 23:08:41.654040 IP 192.168.1.211.22 > 192.168.1.9.2068: Flags [P.], seq 408:668, ack 1, win 296, length 260 23:08:41.654150 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 668, win 2053, length 0 5 packets captured 6 packets received by filter 0 packets dropped by kernel
抓取ping包
[root@lanquark ~]# tcpdump -c 5 -nn -i ens32 icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens32, link-type EN10MB (Ethernet), capture size 262144 bytes 23:17:32.068866 IP 192.168.1.9 > 192.168.1.211: ICMP echo request, id 1, seq 1015, length 40 23:17:32.069009 IP 192.168.1.211 > 192.168.1.9: ICMP echo reply, id 1, seq 1015, length 40 23:17:33.071919 IP 192.168.1.9 > 192.168.1.211: ICMP echo request, id 1, seq 1016, length 40 23:17:33.072198 IP 192.168.1.211 > 192.168.1.9: ICMP echo reply, id 1, seq 1016, length 40 23:17:34.079352 IP 192.168.1.9 > 192.168.1.211: ICMP echo request, id 1, seq 1017, length 40 5 packets captured 6 packets received by filter 0 packets dropped by kernel
指定端口为22
[root@lanquark ~]# tcpdump -c 5 -nn -i ens32 port 22 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens32, link-type EN10MB (Ethernet), capture size 262144 bytes 23:29:07.456966 IP 192.168.1.211.22 > 192.168.1.9.2068: Flags [P.], seq 3182328865:3182329077, ack 2481164789, win 318, length 212 23:29:07.457186 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 212, win 2053, length 0 23:29:07.457379 IP 192.168.1.211.22 > 192.168.1.9.2068: Flags [P.], seq 212:504, ack 1, win 318, length 292 23:29:07.457848 IP 192.168.1.211.22 > 192.168.1.9.2068: Flags [P.], seq 504:668, ack 1, win 318, length 164 23:29:07.457974 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 668, win 2051, length 0 5 packets captured 5 packets received by filter 0 packets dropped by kernel
指定多个条件
[root@lanquark ~]# tcpdump -c 5 -nn -i ens32 port 22 and host 192.168.1.9 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens32, link-type EN10MB (Ethernet), capture size 262144 bytes 23:31:40.918767 IP 192.168.1.211.22 > 192.168.1.9.2068: Flags [P.], seq 3182331785:3182331997, ack 2481166625, win 318, length 212 23:31:40.918954 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 212, win 2047, length 0 23:31:40.918994 IP 192.168.1.211.22 > 192.168.1.9.2068: Flags [P.], seq 212:504, ack 1, win 318, length 292 23:31:40.919120 IP 192.168.1.211.22 > 192.168.1.9.2068: Flags [P.], seq 504:668, ack 1, win 318, length 164 23:31:40.919232 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 668, win 2053, length 0 5 packets captured 6 packets received by filter 0 packets dropped by kernel
抓取到本机22端口包
[root@lanquark ~]# tcpdump -c 10 -nn -i ens32 tcp dst port 22 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens32, link-type EN10MB (Ethernet), capture size 262144 bytes 23:19:09.125587 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 3177829277, win 2053, length 0 23:19:09.175139 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 165, win 2052, length 0 23:19:09.226469 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 313, win 2051, length 0 23:19:09.278981 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 461, win 2051, length 0 23:19:09.331111 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 609, win 2050, length 0 23:19:09.383613 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 757, win 2050, length 0 23:19:09.435084 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 905, win 2049, length 0 23:19:09.486671 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 1053, win 2049, length 0 23:19:09.538120 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 1201, win 2048, length 0 23:19:09.589617 IP 192.168.1.9.2068 > 192.168.1.211.22: Flags [.], ack 1349, win 2047, length 0 10 packets captured 10 packets received by filter 0 packets dropped by kernel
解析包数据
[root@lanquark ~]# tcpdump -c 2 -q -XX -vvv -nn -i ens32 tcp dst port 22 tcpdump: listening on ens32, link-type EN10MB (Ethernet), capture size 262144 bytes 23:20:36.654263 IP (tos 0x0, ttl 128, id 9028, offset 0, flags [DF], proto TCP (6), length 40) 192.168.1.9.2068 > 192.168.1.211.22: tcp 0 0x0000: 000c 292f 92ee 1c1b 0da8 e183 0800 4500 ..)/..........E. 0x0010: 0028 2344 4000 8006 535f c0a8 0109 c0a8 .(#D@...S_...... 0x0020: 01d3 0814 0016 93e3 62a9 bd69 e0f9 5010 ........b..i..P. 0x0030: 0804 8689 0000 0000 0000 0000 ............ 23:20:36.705318 IP (tos 0x0, ttl 128, id 9029, offset 0, flags [DF], proto TCP (6), length 40) 192.168.1.9.2068 > 192.168.1.211.22: tcp 0 0x0000: 000c 292f 92ee 1c1b 0da8 e183 0800 4500 ..)/..........E. 0x0010: 0028 2345 4000 8006 535e c0a8 0109 c0a8 .(#E@...S^...... 0x0020: 01d3 0814 0016 93e3 62a9 bd69 e2cd 5010 ........b..i..P. 0x0030: 0802 84b7 0000 0000 0000 0000 ............ 2 packets captured 3 packets received by filter 0 packets dropped by kernel
指定抓包数量和存放位置
[root@lanquark ~]# tcpdump -nn -i ens32 -c 10 -w /tmp/1.cap tcpdump: listening on ens32, link-type EN10MB (Ethernet), capture size 262144 bytes 10 packets captured 10 packets received by filter 0 packets dropped by kernel
使用tcpdump -r命令查看1.cap内容
[root@lanquark ~]# tcpdump -r /tmp/1.cap reading from file /tmp/1.cap, link-type EN10MB (Ethernet) 23:22:24.839744 IP bogon.ssh > bogon.avauthsrvprtcl: Flags [P.], seq 3177835125:3177835273, ack 2481154401, win 296, length 148 23:22:24.839977 IP bogon.avauthsrvprtcl > bogon.ssh: Flags [.], ack 148, win 2047, length 0 23:22:25.444077 IP bogon.mdns > 224.0.0.251.mdns: 0*- [0q] 10/0/4 (Cache flush) PTR localhost.local., (Cache flush) TXT "deviceid=32:1e:d7:3d:d6:eb" "features=0x5A7FFFF7,0x1E" "flags=0x4" "model=AppleTV3,2" "pk=99FD4299889422515FBD27949E4E1E21B2AF50A454499E3D4BE75A4E0F55FE63" "pi=b08f5a79-db29-4384-b456-a4784d9e6055" "srcvers=220.68" "vv=2", PTR _airplay._tcp.local., PTR M-eM-.M-"M-eM-^NM-^EM-gM-^TM-5M-hM-'M-^F._airplay._tcp.local., (Cache flush) TXT "cn=0,1,3" "da=true" "et=0,3,5" "ft=0x5A7FFFF7,0x1E" "md=0,1,2" "am=AppleTV3,2" "pk=99FD4299889422515FBD27949E4E1E21B2AF50A454499E3D4BE75A4E0F55FE63" "sf=0x4" "tp=UDP" "vn=65537" "vs=220.68" "vv=2" "pw=false", PTR _raop._tcp.local., PTR 32:1e:d7:3d:d6:eb@M-eM-.M-"M-eM-^NM-^EM-gM-^TM-5M-hM-'M-^F._raop._tcp.local., (Cache flush) A 192.168.1.153, (Cache flush) SRV localhost.local.:7011 0 0, (Cache flush) SRV localhost.local.:47011 0 0 (757) 23:22:25.444277 IP bogon.mdns > bogon.mdns: 0*- [0q] 10/0/4 (Cache flush) PTR localhost.local., (Cache flush) TXT "deviceid=32:1e:d7:3d:d6:eb" "features=0x5A7FFFF7,0x1E" "flags=0x4" "model=AppleTV3,2" "pk=99FD4299889422515FBD27949E4E1E21B2AF50A454499E3D4BE75A4E0F55FE63" "pi=b08f5a79-db29-4384-b456-a4784d9e6055" "srcvers=220.68" "vv=2", PTR _airplay._tcp.local., PTR M-eM-.M-"M-eM-^NM-^EM-gM-^TM-5M-hM-'M-^F._airplay._tcp.local., (Cache flush) TXT "cn=0,1,3" "da=true" "et=0,3,5" "ft=0x5A7FFFF7,0x1E" "md=0,1,2" "am=AppleTV3,2" "pk=99FD4299889422515FBD27949E4E1E21B2AF50A454499E3D4BE75A4E0F55FE63" "sf=0x4" "tp=UDP" "vn=65537" "vs=220.68" "vv=2" "pw=false", PTR _raop._tcp.local., PTR 32:1e:d7:3d:d6:eb@M-eM-.M-"M-eM-^NM-^EM-gM-^TM-5M-hM-'M-^F._raop._tcp.local., (Cache flush) A 192.168.1.153, (Cache flush) SRV localhost.local.:7011 0 0, (Cache flush) SRV localhost.local.:47011 0 0 (757) 23:22:25.946465 IP bogon.55228 > 239.253.0.1.lhtp: UDP, length 171 23:22:26.110629 IP bogon.54514 > 255.255.255.255.7423: UDP, length 173 23:22:26.281494 IP 183.94.104.158.4562 > bogon.8558: UDP, length 31 23:22:26.281510 IP bogon.8558 > 183.94.104.158.4562: UDP, length 31 23:22:26.441221 IP bogon.49349 > 119.29.29.29.domain: 62080+ A? pan.baidu.com. (31) 23:22:26.456893 IP 119.29.29.29.domain > bogon.49349: 62080 2/0/0 CNAME yiyun.n.shifen.com., A 111.206.37.70 (76)
tshark命令
tsshark也是开源的抓包工具,很流行。有图形前端。
系统默认没有安装,需安装wareshark包
[root@lanquark ~]# yum -y install wireshark
用法
查看指定网卡80端口的1个web服务的访问状况(相似于web的访问日志):
[root@lanquark ~]# 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" tshark: -R without -2 is deprecated. For single-pass filtering use -Y. Running as user "root" and group "root". This could be dangerous. Capturing on 'nflog' ^C0 packets captured //因当前没有安装web服务,因此没有结果
tsahrk参考连接:
https://www.wireshark.org/docs/man-pages/tshark.html
https://wiki.wireshark.org/
https://wiki.wireshark.org/CaptureFilters
https://wiki.wireshark.org/Statistics
ifconfig命令
Centos7默认没有安装,需安装net-tools包
查看ip
[root@lanquark ~]# ifconfig ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.211 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::5114:2b77:d59a:bc78 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:2f:92:ee txqueuelen 1000 (Ethernet) RX packets 59711 bytes 28497195 (27.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 59181 bytes 15741371 (15.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 64 bytes 5312 (5.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 64 bytes 5312 (5.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 //显示指定接口 [root@lanquark ~]# ifconfig ens32 ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.211 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::5114:2b77:d59a:bc78 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:2f:92:ee txqueuelen 1000 (Ethernet) RX packets 59778 bytes 28511154 (27.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 59207 bytes 15745059 (15.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
设定临时IP
[root@lanquark ~]# ifconfig ens32 192.168.1.222 255.255.255.0
ifdown和ifup命令 中止和启动网卡。
//注意不要分开执行,这样会致使你连不上去。 [root@lanquark ~]# ifdown ens32 && ifup ens32 Device 'ens32' successfully disconnected. Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
虚拟网卡设置
[root@lanquark ~]# cd /etc/sysconfig/network-scripts/ [root@lanquark network-scripts]# cp ifcfg-ens32 ifcfg-ens32\:0 [root@lanquark network-scripts]# vim !$ vim ifcfg-ens32\:0 1 TYPE="Ethernet" 2 PROXY_METHOD="none" 3 BROWSER_ONLY="no" 4 BOOTPROTO="none" 5 DEFROUTE="yes" 6 IPV4_FAILURE_FATAL="no" 7 IPV6INIT="yes" 8 IPV6_AUTOCONF="yes" 9 IPV6_DEFROUTE="yes" 10 IPV6_FAILURE_FATAL="no" 11 IPV6_ADDR_GEN_MODE="stable-privacy" 12 NAME="ens32" 13 UUID="f78a6b73-f367-498a-b3ee-47f6b29ceab4" 14 DEVICE="ens32:0" 15 ONBOOT="yes" 16 IPADDR="192.168.1.211" 17 PREFIX="24" 18 GATEWAY="192.168.1.1" 19 DNS1="8.8.8.8" "ifcfg-ens32:0" 21L, 419C 1,1 Top 1 TYPE="Ethernet" 2 PROXY_METHOD="none" 3 BROWSER_ONLY="no" 4 BOOTPROTO="none" 5 DEFROUTE="yes" 6 IPV4_FAILURE_FATAL="no" 7 IPV6INIT="yes" 8 IPV6_AUTOCONF="yes" 9 IPV6_DEFROUTE="yes" 10 IPV6_FAILURE_FATAL="no" 11 IPV6_ADDR_GEN_MODE="stable-privacy" 12 NAME="ens32:0" 13 UUID="f78a6b73-f367-498a-b3ee-47f6b29ceab4" 14 DEVICE="ens32:0" 15 ONBOOT="yes" 16 IPADDR="192.168.1.212" 17 PREFIX="24" 21 IPV6_PRIVACY="no" "ifcfg-ens32:0" 21L, 424C written //将设备名改成与配置文件名一致ens32:0 //网关,dns不须要,删除便可。 //保存退出 //重启网卡 [root@lanquark ~]# ifdown ens32 && ifup ens32 Device 'ens32' successfully disconnected. Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6) [root@lanquark ~]# ifconfig ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.211 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::5114:2b77:d59a:bc78 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:2f:92:ee txqueuelen 1000 (Ethernet) RX packets 62799 bytes 29182237 (27.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 60343 bytes 15911826 (15.1 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 //虚拟网卡正常出现 ens32:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.212 netmask 255.255.255.0 broadcast 192.168.1.255 ether 00:0c:29:2f:92:ee txqueuelen 1000 (Ethernet) lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 64 bytes 5312 (5.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 64 bytes 5312 (5.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
mii-tool命令查看网卡是否链接
[root@lanquark ~]# mii-tool ens32 ens32: negotiated 1000baseT-FD flow-control, link ok
ethtool命令查看网卡是否链接
[root@lanquark ~]# ethtool ens32 Settings for ens32: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: off (auto) Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: yes
hostnamectl修改主机名
[root@lanquark ~]# hostnamectl set-hostname lanqaurk.com //相应的配置文件为/etc/hostname
DNS配置文件:/etc/resolv.conf
hosts文件: /etc/hosts
三次握手过程示意图
所谓三次握手(Three-Way Handshake)即创建TCP链接,就是指创建一个TCP链接时,须要客户端和服务端总共发送3个包以确认链接的创建。
(1)第一次握手:
Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
(2)第二次握手:
Server收到数据包后由标志位SYN=1知道Client请求创建链接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包
发送给Client以确认链接请求,Server进入SYN_RCVD状态。
(3)第三次握手:
Client收到确认后,检查ack是否为J+1,ACK是否为1,若是正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,
ACK是否为1,若是正确则链接创建成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间能够开始传输数据了。
四次挥手过程示意图
因为TCP链接时全双工的,所以,每一个方向都必需要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的链接,
收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,可是在这个TCP链接上仍然可以发送数据,直到这一方向也发送了FIN。
首先进行关闭的一方将执行主动关闭,而另外一方则执行被动关闭,上图描述的便是如此。
第一次挥手: Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。 第二次挥手: Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。 第三次挥手: Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。 第四次挥手: Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。