w/uptime查看系统负载
[root@zyshanlinux-01 ~]# w ##当前系统时间,启动至今时间,目前登录用户数,系统负载:1分钟,5分钟,15分钟内系统负载是多少(单位时间内cpu使用的活动进程有多少个,不一定是整数,平均值) 12:08:10 up 44 min, 2 users, load average: 0.06, 0.04, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 11:47 20:58 0.03s 0.03s -bash ##本地登录的用户 root pts/0 192.168.106.1 11:34 2.00s 0.05s 0.02s w ##远程登录的用户 ##登录的是谁,登录的终端(从网络远程登录来的就是pts/0,从本地登录就是tty1),从哪里登录来的(远程就是ip),用户登录的时间点,空闲了多少时间,使用CPU的时间,命令。 [root@zyshanlinux-01 ~]# date 2018年 06月 10日 星期日 11:41:41 CST [root@zyshanlinux-01 ~]# uptime ##和w命令是一样的。 12:08:27 up 45 min, 2 users, load average: 0.04, 0.04, 0.05 ##当系统中只有一个逻辑CPU的时候,load average: 0.00, 0.01, 0.05中在1分钟的时候数值为1是最理想的,不闲也没压力,即每个逻辑CPU有一个进程在占用它。第2、3个数值分别体现在5分钟和15分钟内逻辑CPU中进程占有量;1分钟的是最能体现当前系统的负载量的参数。
12:08:10 | UP 44 MIN | 2 USERS | LOAD AVERAGE | 0.06 | 0.04 | 0.05 |
---|---|---|---|---|---|---|
当前系统时间 | 启动至今时间 | 目前登录用户数 | 系统负载 | 1分钟内系统负 | 5分钟内系统负载 | 15分钟内系统负载 |
USER | TTY | FROM | LOGIN@ | IDLE | JCPU | PCPU | WHAT |
---|---|---|---|---|---|---|---|
登录的用户 | 登录的终端,tty1是本地登录,pts/0是远程终端登录 | 登录来源(网络远程登录就是ip) | 用户登录的时间节点 | 空闲了多久 | JCPU使用的时间 | PCPU使用的时间 | 使用的命令 |
cat /proc/cpuinfo查看cpu核数
[root@zyshanlinux-01 ~]# cat /proc/cpuinfo ##查看系统有多少个逻辑CPU processor : 0 ##数字0代表有1颗逻辑CPU,数字1代表2颗逻辑CPU。 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz stepping : 3 microcode : 0x22 cpu MHz : 2393.631 cache size : 6144 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 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 syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm epb fsgsbase smep xsaveopt dtherm ida arat pln pts bogomips : 4788.92 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management:
vmstat监控系统状态
[root@zyshanlinux-01 ~]# 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 1580752 2076 163592 0 0 1232 50 301 608 3 7 82 9 0
用法vmstat 1
[root@zyshanlinux-01 ~]# 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 1580768 2076 163664 0 0 1094 45 281 555 2 6 84 8 0 0 0 0 1580752 2076 163664 0 0 0 0 111 130 0 0 100 0 0 0 0 0 1580752 2076 163664 0 0 0 0 100 123 0 0 100 0 0 0 0 0 1580752 2076 163664 0 0 0 0 80 107 0 1 99 0 0
关键的几列: r , b , swpd , si , so , bi , bo , us , wa
参数解析:
注:系统负载很高,us%可以很低或0(可能在等待或者不运行);us%很高,系统负载肯定会很高。
top查看进程使用资源情况
[root@zyshanlinux-01 ~]# top top - 17:07:16 up 5:43, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 88 total, 2 running, 86 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st ##st被偷走的CPU KiB Mem : 1875480 total, 1542804 free, 145232 used, 187444 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 1545540 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 128208 6844 4084 S 0.0 0.4 0:01.77 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.24 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:02.64 kworker/u128:0
PID号可以通过命令来杀死对应PID号的进程。
参数解析:
TASKS | TOTAL | RUNNING | SLEEPING | STOPPED | ZOMBIE |
---|---|---|---|---|---|
共多少进程 | 正在运行的进程 | 休眠的进程数 | 停止进程 | 僵尸进程,由于主进程意外终止,遗留下的子进程没人管,自生自灭 |
top -c显示详细的进程信息
top -bn1静态显示所有进程,适合写脚本的时候用
q退出,数字1显示所有核cpu,大写字母M按内存使用排序
大写字母P按cpu使用排序
yum install -y sysstat
[root@zyshanlinux-01 ~]# sar ##没有这个命令,就需要安装一个包 -bash: sar: 未找到命令 [root@zyshanlinux-01 ~]# yum install -y sysstat 已加载插件:fastestmirror base | 3.6 kB 00:00:00
[root@zyshanlinux-01 ~]# sar ##sar不加具体的选项或参数,它就会去调用它的历史文件 无法打开 /var/log/sa/sa10: 没有那个文件或目录 ##sar特性,每次正点10分钟去抓取系统状态保存在该目录的文件里
sar -n DEV 网卡流量
[root@zyshanlinux-01 ~]# sar -n DEV 2 3 ##每隔2秒显示一次,仅显示3次 Linux 3.10.0-693.el7.x86_64 (zyshanlinux-01) 2018年06月10日 _x86_64_ (1 CPU) ##时间 网卡名字 接收数据包 发送数据包 接收数据量 发送数据量 17时45分33秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 17时45分35秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 17时45分35秒 ens33 0.50 0.50 0.03 0.10 0.00 0.00 0.00 17时45分35秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 17时45分37秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 17时45分37秒 ens33 0.51 0.51 0.03 0.20 0.00 0.00 0.00 17时45分37秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 17时45分39秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 17时45分39秒 ens33 0.51 0.51 0.03 0.20 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 平均时间: ens33 0.50 0.50 0.03 0.17 0.00 0.00 0.00
注:接收数据包几千算是正常,上万或几十万的话就不正常,被攻击了。可以通过抓包工具验证是否被攻击。
[root@zyshanlinux-01 ~]# sar Linux 3.10.0-693.el7.x86_64 (zyshanlinux-01) 2018年06月10日 _x86_64_ (1 CPU) 17时40分01秒 CPU %user %nice %system %iowait %steal %idle 17时50分01秒 all 0.03 0.00 0.11 0.00 0.00 99.86 18时00分01秒 all 0.03 0.00 0.10 0.00 0.00 99.86 18时10分01秒 all 0.04 0.00 0.13 0.00 0.00 99.82
sar -f /var/log/sa/saxx 历史文件
[root@zyshanlinux-01 ~]# ls /var/log/sa/ sa10 [root@zyshanlinux-01 ~]# sar -n DEV -f /var/log/sa/sa10 Linux 3.10.0-693.el7.x86_64 (zyshanlinux-01) 2018年06月10日 _x86_64_ (1 CPU) 17时40分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 17时50分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 17时50分01秒 ens33 0.22 0.04 0.01 0.01 0.00 0.00 0.00
注:当天/var/log/sa/里面不仅有一个sa10的文件还有sar10的文件,但只有到明天这个文件才会出现,两者有什么区别呢,sa10是二进制文件不能用cat直接看只能用sar -n DEV查看,sar10可以用cat直接查看。
sar -q 系统负载
[root@zyshanlinux-01 ~]# sar -q 1 3 ##每秒显示1次,仅显示3次 Linux 3.10.0-693.el7.x86_64 (zyshanlinux-01) 2018年06月10日 _x86_64_ (1 CPU) 23时17分11秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 23时17分12秒 0 105 0.02 0.07 0.05 0 23时17分13秒 0 105 0.02 0.07 0.05 0 23时17分14秒 0 105 0.02 0.07 0.05 0 平均时间: 0 105 0.02 0.07 0.05 0
sar -b 磁盘读写
[root@zyshanlinux-01 ~]# sar -b 1 3 ##每秒显示1次,仅显示3次 Linux 3.10.0-693.el7.x86_64 (zyshanlinux-01) 2018年06月10日 _x86_64_ (1 CPU) 23时18分37秒 tps rtps wtps bread/s bwrtn/s 23时18分38秒 0.00 0.00 0.00 0.00 0.00 23时18分39秒 0.00 0.00 0.00 0.00 0.00 23时18分40秒 0.00 0.00 0.00 0.00 0.00 平均时间: 0.00 0.00 0.00 0.00 0.00
nload命令
第一次用这个命令,会出现没有命令的错误,需要安装2个包才可以执行这个命令
yum install -y epel -release
yum install -y nload
[root@zyshanlinux-01 ~]# nload Device ens33 [192.168.106.128] (1/2): =========================================================================================================== Incoming: ##进来的流量,被攻击的话,这个流量就会变得很大 Curr: 944.00 Bit/s Avg: 1.05 kBit/s Min: 944.00 Bit/s Max: 1.87 kBit/s Ttl: 7.73 MByte Outgoing: ##出去的流量,买了100的带宽跑到70多了还是正常,跑满的就证明带宽不够了 Curr: 8.29 kBit/s Avg: 8.30 kBit/s Min: 4.27 kBit/s Max: 8.78 kBit/s Ttl: 3.33 MByte
iostat -x 磁盘使用
iostat和sar是同一个安装包的,都是sysstat,安装了这个包后,2个命令都可以用了。
[root@zyshanlinux-01 ~]# iostat -x 1 1 ##每秒显示1次,仅显示1次 Linux 3.10.0-693.el7.x86_64 (zyshanlinux-01) 2018年06月10日 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.08 0.00 0.18 0.06 0.00 99.67 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util ##%util重点参数,CPU等待IO硬盘时间的百分比,越大硬盘越差,硬盘太慢。这个参数和硬盘的读写参数是相关联的,这个百分比大读写数据也大,如果读写几乎为0,这个百分比仍然很大,硬盘异常 sdb 0.00 0.00 0.01 0.00 0.10 0.00 28.99 0.00 2.75 2.75 0.00 2.05 0.00 sda 0.00 0.01 0.16 0.09 6.86 3.25 80.63 0.02 74.62 14.22 177.01 11.07 0.28 scd0 0.00 0.00 0.00 0.00 0.03 0.00 114.22 0.00 0.83 0.83 0.00 0.72 0.00 dm-0 0.00 0.00 0.00 0.00 0.03 0.00 48.19 0.00 6.42 6.42 0.00 5.63 0.00
iotop 磁盘使用,查看占用磁盘最高的是哪个进程
[root@zyshanlinux-01 ~]# iotop ##命令没有,需要安装下面的包才可以执行这个命令 -bash: iotop: 未找到命令 [root@zyshanlinux-01 ~]# yum install -y iotop [root@zyshanlinux-01 ~]# 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] 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] 12 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdevtmpfs] 13 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 14 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khungtaskd] 15 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [writeback] 16 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kintegrityd] 17 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bioset] 18 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kblockd] 19 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [md] 25 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kswapd0] 26 be/5 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksmd] 27 be/7 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khugepaged] 28 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [crypto] 547 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd-logind 36 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthrotld] 549 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % VGAuthService -s 550 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % vmtoolsd 39 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kpsmoused] 41 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ipv6_addrconf] 557 be/4 chrony 0.00 B/s 0.00 B/s 0.00 % 0.00 % chronyd 564 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % rsyslogd -n [in:imjournal] 565 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % rsyslogd -n [rs:main Q:Reg] 566 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdmflush] 567 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bioset] 60 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [deferwq] 522 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % auditd
free查看内存使用情况
[root@zyshanlinux-01 ~]# free total used free shared buff/cache available Mem: 1875480 145684 1363624 8800 366172 1537304 Swap: 2097148 0 2097148
free -m / -g / -h
[root@zyshanlinux-01 ~]# free -m total used free shared buff/cache available Mem: 1831 142 1331 8 357 1501 Swap: 2047 0 2047 [root@zyshanlinux-01 ~]# free -h total used free shared buff/cache available Mem: 1.8G 142M 1.3G 8.6M 357M 1.5G Swap: 2.0G 0B 2.0G [root@zyshanlinux-01 ~]# free -g total used free shared buff/cache available Mem: 1 0 1 0 0 1 Swap: 1 0 1
buffer/cache区别
缓冲/缓存,cpu运算速度快,磁盘很慢,所以需要内存进行缓冲,以下就是数据不同流向的区别 [root@zyshanlinux-01 ~]# 0000(磁盘)-->内存(cache)-->cpu ^C [root@zyshanlinux-01 ~]# cpu(00000) -->内存(buffer)--> 磁盘 ^C
公式:total=used+free+buff/cache
availabel(真正的剩余物理内存)包含free和buffer/cache剩余部分
ps查看系统进程
把你当前进程的快照打印出来,ps是一次性静态的把系统进程列出来,top则是实时动态的。
用法:ps aux、ps -elf
[root@zyshanlinux-01 ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.3 128208 6844 ? Ss 23:08 0:01 /usr/lib/systemd/systemd --switched-root - root 2 0.0 0.0 0 0 ? S 23:08 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 23:08 0:00 [ksoftirqd/0] root 4 0.2 0.0 0 0 ? S 23:08 0:01 [kworker/0:0] root 5 0.0 0.0 0 0 ? S< 23:08 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? S 23:08 0:00 [kworker/u128:0] root 7 0.0 0.0 0 0 ? S 23:08 0:00 [migration/0] [root@zyshanlinux-01 ~]# ps -elf F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 S root 1 0 0 80 0 - 32052 ep_pol 23:08 ? 00:00:01 /usr/lib/systemd/systemd --switc 1 S root 2 0 0 80 0 - 0 kthrea 23:08 ? 00:00:00 [kthreadd] 1 S root 3 2 0 80 0 - 0 smpboo 23:08 ? 00:00:00 [ksoftirqd/0] 1 S root 4 2 0 80 0 - 0 worker 23:08 ? 00:00:01 [kworker/0:0] 1 S root 5 2 0 60 -20 - 0 worker 23:08 ? 00:00:00 [kworker/0:0H]
[root@zyshanlinux-01 ~]# ps aux |grep mysql ##查看该进程是否在运行 root 1298 0.0 0.0 112720 972 pts/0 R+ 23:22 0:00 grep --color=auto mysql [root@zyshanlinux-01 ~]# kill 1132 ##用PID号可以杀死该进程 [root@zyshanlinux-01 ~]# ps aux |grep qmgr ##确认该进程确实是被杀死 postfix 1157 0.0 0.2 89756 4048 ? S 23:08 0:00 qmgr -l -t unix -u root 1300 0.0 0.0 112720 972 pts/0 R+ 23:23 0:00 grep --color=auto qmgr
[root@zyshanlinux-01 ~]# ls -l /proc/521/ ##proc加上数字的文件夹就是进程的PID号 总用量 0 dr-xr-xr-x. 2 root root 0 6月 10 23:08 attr -rw-r--r--. 1 root root 0 6月 10 23:23 autogroup -r--------. 1 root root 0 6月 10 23:23 auxv
STAT部分说明
D 不能中断的进程
R run状态的进程
S sleep状态的进程
[root@zyshanlinux-01 ~]# ps aux |grep vmstat root 1307 0.0 0.0 148356 1352 pts/0 S+ 23:27 0:00 vmstat 1 root 1309 0.0 0.0 112720 972 pts/1 R+ 23:27 0:00 grep --color=auto vmstat
T 暂停的进程
[root@zyshanlinux-01 ~]# ps aux |grep vmstat root 1307 0.0 0.0 148356 1352 pts/0 T 23:27 0:00 vmstat 1 root 1311 0.0 0.0 112720 968 pts/1 R+ 23:27 0:00 grep --color=auto vmstat
Z僵尸进程
数量较少,有就用命令杀死它。
< 高优先级进程
N 低优先级进程
L 内存中被锁了内存分页
s主进程
l 多线程进程
+ 前台进程,都是在终端中显示
[root@zyshanlinux-01 ~]# ps aux |grep vmstat root 1307 0.0 0.0 148356 1352 pts/0 S+ 23:27 0:00 vmstat 1 root 1313 0.0 0.0 112720 968 pts/1 R+ 23:28 0:00 grep --color=auto vmstat
netstat 查看网络状态
netstat -lnp 查看监听端口
[root@zyshanlinux-01 ~]# 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 912/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1130/master tcp6 0 0 :::22 :::* LISTEN 912/sshd tcp6 0 0 ::1:25 :::* LISTEN 1130/master udp 0 0 127.0.0.1:323 0.0.0.0:* 557/chronyd udp6 0 0 ::1:323 :::* 557/chronyd raw6 0 0 :::58 :::* 7 610/NetworkManager Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node PID/Program name Path
netstat -an 查看系统tcp的网络连接状况
[root@zyshanlinux-01 ~]# 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.106.128:22 192.168.106.1:14605 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 15871 /var/run/vmware/guestServicePipe unix 2 [ ACC ] STREAM LISTENING 18867 private/proxymap
nestat -lntp 只看出tcp的,不包含socket
unix 2 [ ACC ] STREAM LISTENING 11901 1/systemd /run/lvm/lvmpolld.socket unix 2 [ ACC ] STREAM LISTENING 11915 1/systemd /run/lvm/lvmetad.socket
[root@zyshanlinux-01 ~]# netstat -ltnp 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 912/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1130/master tcp6 0 0 :::22 :::* LISTEN 912/sshd tcp6 0 0 ::1:25 :::* LISTEN 1130/master [root@zyshanlinux-01 ~]# 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 912/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1130/master tcp6 0 0 :::22 :::* LISTEN 912/sshd tcp6 0 0 ::1:25 :::* LISTEN 1130/master udp 0 0 127.0.0.1:323 0.0.0.0:* 557/chronyd udp6 0 0 ::1:323 :::*
ss -an 和nestat 异曲同工,不足是不会显示进程的名字
[root@zyshanlinux-01 ~]# ss -an |grep -i listen u_str LISTEN 0 32 /var/run/vmware/guestServicePipe 15871 * 0 u_str LISTEN 0 100 private/proxymap 18867 * 0 u_str LISTEN 0 100 private/proxywrite 18870 * 0 u_seq LISTEN 0 128 /run/udev/control 12110 * 0 u_str LISTEN 0 128 /run/systemd/private 11855 * 0 u_str LISTEN 0 128 /var/run/dbus/system_bus_socket 14716 * 0 u_str LISTEN 0 128 /run/lvm/lvmpolld.socket 11901 * 0 u_str LISTEN 0 128 /run/lvm/lvmetad.socket 11915 * 0 u_str LISTEN 0 100 public/pickup 18835 * 0 u_str LISTEN 0 100 public/cleanup 18839 * 0 u_str LISTEN 0 100 public/qmgr 18842 * 0 u_str LISTEN 0 100 public/flush 18864 * 0 u_str LISTEN 0 100 public/showq 18879 * 0 u_str LISTEN 0 100 private/smtp 18873 * 0 u_str LISTEN 0 100 private/tlsmgr 18846 * 0 u_str LISTEN 0 100 private/rewrite 18849 * 0 u_str LISTEN 0 100 private/bounce 18852 * 0 u_str LISTEN 0 100 private/defer 18855 * 0 u_str LISTEN 0 100 private/trace 18858 * 0 u_str LISTEN 0 100 private/verify 18861 * 0 u_str LISTEN 0 100 private/relay 18876 * 0 u_str LISTEN 0 100 private/error 18882 * 0 u_str LISTEN 0 100 private/retry 18885 * 0 u_str LISTEN 0 100 private/discard 18888 * 0 u_str LISTEN 0 100 private/local 18891 * 0 u_str LISTEN 0 100 private/virtual 18894 * 0 u_str LISTEN 0 100 private/lmtp 18897 * 0 u_str LISTEN 0 100 private/anvil 18900 * 0 u_str LISTEN 0 100 private/scache 18903 * 0 u_str LISTEN 0 128 /run/systemd/journal/stdout 7665 * 0 tcp LISTEN 0 128 *:22 *:* tcp LISTEN 0 100 127.0.0.1:25 *:* tcp LISTEN 0 128 :::22 :::* tcp LISTEN 0 100 ::1:25 :::*
一个小技巧:直接查看以下数据的并发量。
netstat -an |awk '/^tcp/{++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
[root@zyshanlinux-01 ~]# netstat -an |awk '/^tcp/{++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' LISTEN 4 ESTABLISHED 1
抓包工具tcpdump
[root@zyshanlinux-01 ~]# yum install -y tcpdump ##第一次运行这个命令要安装这个包
用法:tcpdump -nn
tcpdump -nn -i ens33
[root@zyshanlinux-01 ~]# tcpdump -nn -i ens33 ##特殊的设备需要加上网卡名 08:41:31.158670 IP 192.168.106.1.1512 > 192.168.106.128.22: Flags [.], ack 802176, win 2048, length 0 08:41:31.158683 IP 192.168.106.128.22 > 192.168.106.1.1512: Flags [P.], seq 802356:802536, ack 157, win 251, length 180 ##得出的结果都是数据包的流向,成对出现,还要关注一个重要参数length 180,长度参数。有种攻击是DDos,即udp flood洪水攻击,可以发出几百G流量攻击,只能用防攻击的设备或服务。
tcpdump -nn port 80
[root@zyshanlinux-01 ~]# tcpdump -nn -i ens33 port 22 ##指定22端口的 [root@zyshanlinux-01 ~]# tcpdump -nn -i ens33 not port 22 ##排除22端口的
tcpdump -nn not port 22 and host 192.168.0.100
[root@zyshanlinux-01 ~]# tcpdump -nn -i ens33 not port 22 and host 192.168.106.1 ##排除22端口,只要192.168.106.1 ip的
tcpdump -nn -c 100 -w 1.cap
[root@zyshanlinux-01 ~]# tcpdump -nn -i ens33 -c 10 ##只抓前10条 [root@zyshanlinux-01 ~]# tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap ##抓10个包写入1.cap里面,单开一个终端时这条命令可能会卡住,因为没有数据流动,所以没产生包,命令就卡住,可以重新开个终端运行写top或vmstat 1的命令产生些包,这条命令就会很快完成抓包任务。 tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 10 packets captured 10 packets received by filter 0 packets dropped by kerne [root@zyshanlinux-01 ~]# file /tmp/1.cap ##可以用file查看 /tmp/1.cap: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 262144) [root@zyshanlinux-01 ~]# cat /tmp/1.cap ##因为是抓的数据包,包的内容,cat你是看不懂得 [root@zyshanlinux-01 ~]# tcpdump -r /tmp/1.cap ##可以用-r来看,就是读数据流;但实际上1.cap中是真真正正得写入数据包 reading from file /tmp/1.cap, link-type EN10MB (Ethernet) 08:59:45.166244 IP zyshanlinux-01.ssh > 192.168.106.1.wins: Flags [P.], seq 3728788926:3728789074, ack 2081729664, win 251, length 148 08:59:45.166661 IP 192.168.106.1.wins > zyshanlinux-01.ssh: Flags [.], ack 148, win 2047, length 0 08:59:51.222568 IP 192.168.106.1.49249 > 239.255.255.250.ssdp: UDP, length 129 08:59:51.323252 IP 192.168.106.1.49249 > 239.255.255.250.ssdp: UDP, length 129 08:59:52.388207 IP 192.168.106.1.wins > zyshanlinux-01.ssh: Flags [P.], seq 1:53, ack 148, win 2047, length 52 08:59:52.388769 IP zyshanlinux-01.ssh > 192.168.106.1.wins: Flags [P.], seq 148:200, ack 53, win 251, length 52 08:59:52.430645 IP 192.168.106.1.wins > zyshanlinux-01.ssh: Flags [.], ack 200, win 2053, length 0 08:59:52.508157 IP 192.168.106.1.wins > zyshanlinux-01.ssh: Flags [P.], seq 53:105, ack 200, win 2053, length 52 08:59:52.508666 IP zyshanlinux-01.ssh > 192.168.106.1.wins: Flags [P.], seq 200:252, ack 105, win 251, length 52 08:59:52.549433 IP 192.168.106.1.wins > zyshanlinux-01.ssh: Flags [.], ack 252, win 2052, length 0
yum install -y wireshark
[root@zyshanlinux-01 ~]# yum install -y wireshark ##第1次运行该命令需要安装
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"
[root@zyshanlinux-01 ~]# 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
下图就是线上服务器抓到的结果。可以知道有什么人访问哪个域名,访问了哪个链接等。
ifconfig 查看网卡ip(yum install net-tools)
[root@zyshanlinux-01 ~]# ifconfig -a ##加-a选项,如果网卡宕机或者没有ip的时候是不显示的。
ifup ens33/ifdown ens33 启动或关闭ens33网卡,关闭网卡终端就会断开,需要到本地再次启动才行。应用场景:当某个网卡需要更改配置,就要重启服务,但又不想重启所有的网卡时,就可以用该命令指定网卡重启。
如果你的机房在国外,你单独执行关闭网卡命令,你就要去国外重启网卡;这时你就应该关闭和重启服务一起执行。
[root@zyshanlinux-01 ~]# ifdown ens33 && ifup ens33 成功断开设备 'ens33'。 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4) [root@zyshanlinux-01 ~]# ifdown ens33;ifup ens33 成功断开设备 'ens33'。 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
设定虚拟网卡ens33:1
[root@zyshanlinux-01 ~]# cd /etc/sysconfig/network-scripts/ [root@zyshanlinux-01 network-scripts]# ls ifcfg-ens33 ifdown-ippp ifdown-routes ifup ifup-ipv6 ifup-ppp ifup-tunnel ifcfg-lo ifdown-ipv6 ifdown-sit ifup-aliases ifup-isdn ifup-routes ifup-wireless ifdown ifdown-isdn ifdown-Team ifup-bnep ifup-plip ifup-sit init.ipv6-global ifdown-bnep ifdown-post ifdown-TeamPort ifup-eth ifup-plusb ifup-Team network-functions ifdown-eth ifdown-ppp ifdown-tunnel ifup-ippp ifup-post ifup-TeamPort network-functions-ipv6 [root@zyshanlinux-01 network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:0 [root@zyshanlinux-01 network-scripts]# vi !$ vi ifcfg-ens33\:0 [root@zyshanlinux-01 network-scripts]# ifdown ens33;ifup ens33 成功断开设备 'ens33'。 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/8) [root@zyshanlinux-01 network-scripts]# ifconfig ##多出新的虚拟网卡ens33:0: ens33: flags=4163mtu 1500 inet 192.168.106.128 netmask 255.255.255.0 broadcast 192.168.106.255 inet6 fe80::8fc3:bbdf:ba89:22a7 prefixlen 64 scopeid 0x20 ether 00:0c:29:a1:d4:eb txqueuelen 1000 (Ethernet) RX packets 54409 bytes 25525816 (24.3 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 209646 bytes 52121081 (49.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33:0: flags=4163mtu 1500 inet 192.168.106.150 netmask 255.255.255.0 broadcast 192.168.106.255 ether 00:0c:29:a1:d4:eb txqueuelen 1000 (Ethernet) lo: flags=73mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10loop txqueuelen 1 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
mii-tool ens33 查看网卡是否连接
[root@zyshanlinux-01 network-scripts]# mii-tool ens33 ens33: negotiated 1000baseT-FD flow-control, link ok ##ok正常连接网线
ethtool ens33 也可以查看网卡是否连接
[root@zyshanlinux-01 network-scripts]# ethtool ens33 Settings for ens33: 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 ##yes正常连接网线
更改主机名 hostnamectl set-hostname aminglinux
[root@zyshanlinux-01 ~]# hostnamectl set-hostname zyshanlinux-001 [root@zyshanlinux-01 ~]# hostname ##更改主机名需要退出再重新登录,或者用hostname命令查看 zyshanlinux-001 [root@zyshanlinux-01 ~]# bash ##用子shell也可查看 [root@zyshanlinux-001 ~]# exit exit [root@zyshanlinux-01 ~]# cat /etc/hostname ##主机名的配置文件 zyshanlinux-001
DNS配置文件/etc/resolv.conf
[root@zyshanlinux-01 ~]# cat /etc/resolv.conf ##查看DNS # Generated by NetworkManager nameserver 119.29.29.29 [root@zyshanlinux-01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 ##网卡的配置文件 ##增加谷歌的DNS2=8.8.8.8 [root@zyshanlinux-01 ~]# ifdown ens33;ifup ens33 成功断开设备 'ens33'。 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/9) [root@zyshanlinux-01 ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 119.29.29.29 nameserver 8.8.8.8 ##可以看到新增的DNS [root@zyshanlinux-01 ~]# vim /etc/resolv.conf ##可以临时更改DNS,但重启后会被网卡的DNS配置文件覆盖
/etc/hosts文件
[root@zyshanlinux-01 ~]# cat /etc/hosts ##查看配置文件 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@zyshanlinux-01 ~]# ping www.qq123.com ##公网IP PING www.qq.com (140.206.160.207) 56(84) bytes of data. 64 bytes from 211.155.235.108 (211.155.235.108): icmp_seq=1 ttl=128 time=54.0 ms 64 bytes from 211.155.235.108 (211.155.235.108): icmp_seq=2 ttl=128 time=115 ms 64 bytes from 211.155.235.108 (211.155.235.108): icmp_seq=3 ttl=128 time=109 ms 64 bytes from 211.155.235.108 (211.155.235.108): icmp_seq=4 ttl=128 time=51.3 ms ^C --- www.qq.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3007ms rtt min/avg/max/mdev = 51.387/82.591/115.483/29.951 ms [root@zyshanlinux-01 ~]# vi /etc/hosts ##可以指定自定义IP,多个域名指向一个IP空格隔开,多个IP指向一个域名只执行最后一个IP,以行为单位,不能换行。 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.106.150 www.qq123.com www.19.com www.zyshan.com 127.0.0.1 www.19.com [root@zyshanlinux-01 ~]# ping www.qq123.com PING www.qq123.com (192.168.106.150) 56(84) bytes of data. 64 bytes from www.qq123.com (192.168.106.150): icmp_seq=1 ttl=64 time=0.084 ms 64 bytes from www.qq123.com (192.168.106.150): icmp_seq=2 ttl=64 time=0.102 ms 64 bytes from www.qq123.com (192.168.106.150): icmp_seq=3 ttl=64 time=0.105 ms 64 bytes from www.qq123.com (192.168.106.150): icmp_seq=4 ttl=64 time=0.104 ms 64 bytes from www.qq123.com (192.168.106.150): icmp_seq=5 ttl=64 time=0.102 ms ^C --- www.qq123.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4000ms rtt min/avg/max/mdev = 0.084/0.099/0.105/0.011 ms [root@zyshanlinux-01 ~]# ping www.19.com ##只执行最后一个IP PING www.qq123.com (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.044 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.098 ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.097 ms ^C --- www.qq123.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.044/0.079/0.098/0.027 ms
在window下不生效,只在linux本机下才能生效
C:\Users\zhengyushan>ping www.qq123.com 正在 Ping www.qq123.com [211.155.235.108] 具有 32 字节的数据: 来自 211.155.235.108 的回复: 字节=32 时间=49ms TTL=226 来自 211.155.235.108 的回复: 字节=32 时间=57ms TTL=226 来自 211.155.235.108 的回复: 字节=32 时间=55ms TTL=226 来自 211.155.235.108 的回复: 字节=32 时间=54ms TTL=226 211.155.235.108 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 49ms,最长 = 57ms,平均 = 53ms C:\Users\zhengyushan>www.19.com 'www.19.com' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
拓展阅读:
tcp三次握手四次挥手(重点) http://www.doc88.com/p-9913773324388.html
tshark几个用法 http://ask.apelearn.com/question/995
延伸阅读 :
TCP 三次握手和四次挥手https://blog.csdn.net/qq_25677349/article/details/80468409
TCP 之三次握手和四次挥手http://baijiahao.baidu.com/s?id=1600656878316112806&wfr=spider&for=pc
TCP、UDP以及HTTP的简单讲解https://www.cnblogs.com/xiohao/p/4439164.html
认识cpu、核、进程与线程——备忘篇https://blog.csdn.net/zhengyshan/article/details/80641770