保障4-0413任务打卡
任务列表:
10.1 使用w查看系统负载
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令
10.6 监控io性能
10.7 free命令
10.8 ps命令
10.9 查看网络状态
10.10 linux下抓包
10.11 Linux网络相关
扩展
tcp三次握手四次挥手(重点) http://www.doc88.com/p-9913773324388.html
tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html
10.1 使用w查看系统负载
10.1.1 w和uptmie命令。
- user 登录用户名称
- TTY 用户登录所使用的终端。tty开头的是本地登录。pts/开头的是远程用户。
- FORM 远程用户所使用的IP。
- LOGIN@ 登录时间
- uptime命令不会显示用户相关信息,所以会更精简。
10.1.2 load average
- 三个数字的含义分别表示,一分种,五分钟和十五分钟的系统负载。
- 当一分种系统载,接近CPU的processor数量时的状态是最理想的。
比如CPU有八个processor,那么一分钟负载接近8是最理想的。
说明这一分钟内,每个processor都有活干,又不怎么累。
10.1.3 查看CPU相关信息:
cat /proc/cpuinfo
10.2 vmstat命令
10.2.1 vmstat命令使用方法
- vmstat 1
每一秒显示当前系统状态。按ctrl+c退出。 - vmstat 1 5
每一秒显示当前系统状态。五秒后退出。
10.2.2 需要关注的列
- r
run的简写。表示有多少进程处于run的状态。即使进程处于排队等待使用cpu也被算进r里。 - b
block的简写。表示有多少进程被cpu以外的资源(比如硬盘和网络)阻断,处于等待状态。 - swpd
内存不够时,交换分区会写入数据。如果频繁有数字变动,说明内存不足。 - buff&cache
- si
写入内存默认单位为k - so
从内存读取默认单位为k - bi
从磁盘读出数据到内存 - bo
内存写入磁盘数据。 - us
用户所占用的cpu资源,以百分比显示。 - sy
系统所占用的cpu资源。 - id
cpu资源的空闲状态。和us、sy相加等于一百。
通这us sy id这三个数字可以反映用户和系统所占用资源的关系。 - wa
等待使用cpu资源的状态,这个数值高,说明cpu不够用了。
10.3 top命令
10.3.1 top
- 和uptime显示的内容一样。
10.3.2 Tasks进程情况
- total 任务总数
- running 正在运行的任务数量
- sleeping 正在休眠的任务数量
- stopped 停止的任务数量
- zombie 僵尸任务数量(主进程被终止,但是子进程没有终止。)
10.3.3 %Cpu(s) cpu占用情况
- us 用户占用百分比
- sy 系统占用百分比
- id 空闲情况
- st 被偷走的资源(一般是虚拟化占用)
- 默认是所有CPU的平均值,按数字键1可以显示所有CPU的情况。
10.3.4KiB Mem 内存情况
- total 合计
- free 空闲
- used 使用中
- buff/cache 缓冲区
10.3.5swap使用情况
10.3.6 工作区
- 默认以CPU占用百分排序,占用多的排在前边。
- PID 程序的进程编号。kill+PID可以杀死该进程。也可以根据这个编号查询到相关内容。
- USER 程序的使用者。
- PR
- NI
- VIRT
- RES 物理内存大小,单位是千字节(KiB)。
- SHR
- %CPU cpu占用百分比。按大写“P”键可以按cpu占用排序。
- %MEM 内存占用百分比。按大写“M”键可以按内存占用排序。
10.3.7 top -c
- 在COMMAND下显示具体的命令。即该命令的绝对路径。
10.3.8 top -bn1
- 静态显示所有进程情况,适合脚本使用。
10.4 sar命令
10.4.1 安装sar
yum install -y sysstat
- /var/log/sa是存放sar历史文件的目录。
- sar 每十分钟都保存一次系统的状态。
- /var/log/sa下一般会有两个文件,一个是sa日期另一个是sar日期。
- sa17是一个二进制文件,只能用sar -f加载
- sar17可以直接使用cat命令查看。
10.4.2 sar -n
- sar -n DEV 1 10
每隔一秒显示一次网卡状态,显示十次。 - rxpck/s 每秒接收到的数据包。数量过万,应该判断是否被攻击。
- txpck/s 每秒发送出的数据包。
- rxkB/s 每秒接收到的数据量,单位kb
- txkB/s 每秒发送出的数据量,单位kb
10.4.3 sar -q
- 查询系统负载。ldavg-1是一分钟内的情况。ldavg-5是五分钟,-15是十五分钟。
10.5 nload命令
10.5.1 安装nload
yum install -y epel-release
yum insatll -y nload
10.5.2
10.6 监控io性能
10.6.1 为什么要监控IO性能:
- 当内存和cpu占用并不是很高时,系统负载依然很大,这时就应该检查瓶颈是否出现在磁盘上。
10.6.2 iostat
- iostat也包含于sysstat包内,安装过sar命令就会安装它。
- iostat 会输出现在的磁盘吞吐。
- iostat n
n是数字,每n秒显示一次当前IO使用情况。 - iostat -x
- 当磁盘读写数据量不大时,等待时间依然很大时,说明磁盘有问题。
10.6.3 iotop
- 安装
yum install -y iotop - 可以查看每一个具体的程序或进程所使用磁盘的情况。
10.7 free
10.7.1free 选项
- free -m 以兆字节显示容量
- free -h 显示容量自动适应单位
10.7.2 每列标题
- total 总计大小
- used 使用中的容量
- free 空闲容量
- shared 共享空间
- buff/cache 缓冲/缓存区。buff是指数据从CPU到磁盘的缓冲区,cache是指数据从磁盘到CPU的缓存区。
- available 可用空间,是指free加上还没有用完的buff/cache。
- 内存总大小公式:total=used+free+buff/cache
- 需要关注的是available而不是free
10.8 ps命令
ps命令的作用是将当前进程的使用情况列出来。
10.8.1 ps命令常用选项
- 常用选项 ps aux 显示所有内容。
- USER列 使用程序的用户
- PID 进程编号
- %CPU %MEM 内存和CPU使用占比
- VSZ 虚拟内存占用
- RSS 真实内存占用
- TTY 连接终端
- STAT 进程状态
- TIME 运行时间
- COMMAND 执行程序所依赖的具体命令,包含绝对路径。
- STAT内容说明
D 不能中断的进程
R run状态中的进程
S sleep状态中的进程
T 暂停的进程,一般是用户主动请求暂停
Z 僵尸进程
< 高优先级进程
N 低优先级进程
L 内存中被锁了内存分页
s 小写s是指父进程也就是守护进程
| 竖线表示多线程进程
- 前台进程
10.8.2 ps的常用方法
- ps aux |grep 关键字
查找需要的内容,比如程序的名称,进程的PID等等。 - ps elf |grep 关键字
同上。
10.8.3 当遇到一个未知的进程占用了很大的资源,有可能是被黑了。
- 这时应该判断,是否通过PID将这个进程杀死。
10.9 查看网络状态
10.9.1 netstat命令
- netstat -lnp 查看监听端口
- proto列显示了进程所使用的协议
- Local Address显示了通信的IP和端口
- unix协议是指通过socket文件通信的程序
- Path记录了这个程序通信所使用的socket文件
- netstat -ltnp与netstat -lunp
查看tcp协义与utp协议。同时查看就加-lutnp
10.9.2 统计系统内连接状态的命令
netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key , "\t",sta[key]}'
10.9.3 连接状态State
- ESTABLISHED 表示已通信的连接,这个数量大说明连接数量多。
10.9.4 ss命令
- 简化版netstat。
- 缺点是不显示进程的名称。
10.10 Linux下抓包
10.10.1 tcpdump命令
- 安装
yum install -y tcpdump - -nn 以IP地址的方式显示主机
- -i 指定抓包的网卡
- port 指定端口号,not prot排除指定的端口号
- host 指定ip
- and 多种条件抓包。比如:tcpdump -nn not prot 22 and host 192.168.0.100
- -c n
n是数字,指定抓包的个数。 - -w /tmp/1.cap 将抓的包传送到一个文件。
- tcpdump出的文件只能用tpcdump -r /tmp/1.cap查看。
10.10.2 tshark
- 安装
yum install -y wireshark - tshark 常用命令
tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.request.method" -e "http.request.uri"
可以查看80端口的web访问情况。
10.11 Linux网络相关
10.11.1 ifconfig
- centos7有可能需要安装net-tools软件包才能使用ifconfig工具
- 显示网卡和ip地址
- -a 当网卡down时可能不会被显示,加上-a就会显示所有的网卡包括down掉的。
10.11.2 ifdown 与ifup
- ifdown可以关掉指定的网卡
- ifup恢复指定网卡使之上线。
- 这个命令的使用场景是针对某个网卡的配置文件变更。
- 远程登录的情况一定不能单独使用ifdown命令。
- 远程重启某个网卡的命令一定要是:ifdown ens33 && ifup ens33。
10.11.3 设定虚拟网卡
- 当需要多个IP时需要虚拟一块网卡出来时,可以使用这个方案。
- 首先进入网卡配置文件目录:
cd /etc/sysconfig/network-scripts/ - 把现在的网卡配置文件复制一份
cp ifcfg-ens33 ifcfg-ens33\:0
斜杠的作用是脱义冒号 - 修改vi ifcfg-ens33:0配置文件
改动的内容如图上所示,删除掉DNS配置。
10.11.4 查看连接是否正常
- mii-tool工具
- ethtoll工具,如果系统不支持mii工具那么可以选择ehttool
10.11.5 DNS配置文件
/etc/resolv.conf
- 修改这个配置文件可以临时更改DNS地址
10.11.6 /etc/hosts文件
- 这个文件可以给指定的域名解析指定的IP地址
- 格式为 IP地址 空格 域名
- 一个IP地址可以匹配多个域名
- 为一个IP匹配多个域名的时候,下边的配置生效。
直播笔记
1,三次握手小例子:
- 第一次握手:
在红军时代,A连和B连分在左右翼,约定在几时几分一同发起打击。
这个几时几分的信息就需要人工通过通讯员来走路传递。
所以A连指挥官派出通讯员。 - 第二次握手:
假设通讯员到达了B连,并且告知了B连指挥官几时几分。
B连指挥官一定会让通讯员再回去通知A连指挥官,可怜的通讯员只能冒着危险返回A连。
因为A连指挥官看不到通讯员返回的话,不知道几时几分这个信息到底传达到了B连没有。 - 第三次握手:
现在B连指挥官开始担心通讯员是否回到了A连。
如果没回到,B连指挥官会设身处地的想一想A连指挥官见不到返回的通讯员,肯定是不敢打的。
所以B连指挥官最盼望的是再次看到通讯员出现在B连,所以A连指挥官会让通讯员再回B连一次。
这就是三次握手
2,关闭连接与四次挥手
由于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发送ACK,Server收到后正式进入CLOSED状态。
CLOSED:初始状态,表示TCP连接是“关闭着的”或“未打开的”。
LISTEN :表示服务器端的某个SOCKET处于监听状态,可以接受客户端的连接。
SYN_RCVD :表示接收到了SYN报文。
在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态。
很短暂,基本上用netstat很难看到这种状态,除非故意写一个监测程序。
将三次TCP握手过程中最后一个ACK报文不予发送。
当TCP连接处于此状态时,再收到客户端的ACK报文,它就会进入到ESTABLISHED 状态。SYN_SENT :这个状态与SYN_RCVD状态相呼应。
当客户端SOCKET执行connect()进行连接时,它首先发送SYN报文。
然后随即进入到SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。
SYN_SENT 状态表示客户端已发送SYN报文。ESTABLISHED :表示TCP连接已经成功建立。
FIN_WAIT_1 :这个状态得好好解释一下,其实FIN_WAIT_1 和FIN_WAIT_2。 两种状态的真正含义都是表示等待对方的FIN报文。
而这两种状态的区别是:
FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET进入到FIN_WAIT_1 状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态。当然在实际的正常情况下,无论对方处于任何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1 状态一般是比较难见到的,而FIN_WAIT_2状态有时仍可以用netstat看到。
FIN_WAIT_2 :上面已经解释了这种状态的由来,实际上FIN_WAIT_2状态下的SOCKET表示半连接,即有一方调用close()主动要求关闭连接。注意:FIN_WAIT_2 是没有超时的(不像TIME_WAIT状态),这种状态下如果对方不关闭(不配合完成4次挥手过程),那这个 FIN_WAIT_2 状态将一直保持到系统重启,越来越多的FIN_WAIT_2 状态会导致内核crash。TIME_WAIT :表示收到了对方的FIN报文,并发送出了ACK报文。
TIME_WAIT状态下的TCP连接会等待2*MSL
(Max SegmentLifetime,最大分段生存期,指一个TCP报文在Internet上的最长生存时间。每个具体的TCP协议实现都必须选择一个确定的MSL值,RFC 1122建议是2分钟,但BSD传统实现采用了30秒,Linux可以cat/proc/sys/net/ipv4/tcp_fin_timeout看到本机的这个值)。
然后即可回到CLOSED 可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。CLOSING :这种状态在实际情况中应该很少见,属于一种比较罕见的例外状态。
正常情况下,当一方发送FIN报文后。
按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。
但是CLOSING 状态表示一方发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。
什么情况下会出现此种情况呢?
那就是当双方几乎在同时close()一个SOCKET的话,就出现了双方同时发送FIN报文的情况。
这是就会出现CLOSING 状态,表示双方都正在关闭SOCKET连接。CLOSE_WAIT :表示正在等待关闭。
怎么理解呢?
当对方close()一个SOCKET后发送FIN报文给自己,你的系统毫无疑问地将会回应一个ACK报文给对方。
此时TCP连接则进入到CLOSE_WAIT状态。
接下来呢,你需要检查自己是否还有数据要发送给对方。
如果没有的话,那你也就可以close()这个SOCKET并发送FIN报文给对方,即关闭自己到对方这个方向的连接。
有数据的话则看程序的策略,继续发送或丢弃。
简单地说,当你处于CLOSE_WAIT 状态下,需要完成的事情是等待你去关闭连接。LAST_ACK :当被动关闭的一方在发送FIN报文后,等待对方的ACK报文的时候,就处于LAST_ACK 状态。
当收到对方的ACK报文后,也就可以进入到CLOSED 可用状态了。
3,ip命令使用
1. 设置和删除IP
ip addr add 192.168.10.10/24 dev eth0
ip addr show eth0
ip addr del 192.168.10.10/24 dev eth0
2. 路由相关设置
ip route show
ip route add default via 192.168.10.1
ip route add 192.168.5.0/24 dev eth0
ip route del 192.168.10.1
3. 另外用route命令来管理路由:
(a)、网络路由
route add -net 192.168.1.0/24 gw 172.16.1.106
(b)、主机路由
route add -host 192.168.1.110 gw 172.16.1.106
(c)、默认路由
route add default gw 172.16.1.106
或
route add -net 0.0.0.0 gw 172.16.1.106
(d)、删除路由
route del -host 192.168.1.110
route del -net 192.168.1.0/24
4. 显示网络统计数据
ip -s link
ip -s -s link ls eth0
5. 停止开启网卡
ip link set eth0 down
ip linke set eth0 up
6. 更改网卡名字
ip link set ens37 name eth1
如何永久保存更改后网卡的名字:https://blog.csdn.net/jyusun/article/details/71513086
保障4-0413任务打卡相关推荐
- 给你的手机加上安全保障,请设置SIM卡PIN码
[手机上了锁,为啥还丢钱?专家支招:设置SIM卡PIN码]智能手机一旦丢失,不仅会带来诸多不便,甚至还会造成个人隐私泄露及财产损失. 然而很多人认为,自己已经设置了手机屏锁.支付密码.指纹锁等防御措施 ...
- 保障班4-0521任务打卡
1.设置更改root密码 1.2 知道原来root的密码更改 1.3不知道原来root的密码的更改 2.连接mysql 2.1 本地连接 2.2mysql.sock连接 2.3TCP/IP协议连接 3 ...
- 揭秘阿里云 RTS SDK 如何实现直播降低延迟和卡顿
简介:这个夏天,没什么能够比一场酣畅淋漓的奥运比赛来的过瘾.但是,在视频平台直播观看比赛也有痛点:"卡顿" 和 "延时".受限于不同地域.复杂的网络情况.传输速 ...
- 揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿
简介: RTS NetSDK是未来直播和通信一体化SDK的基石.在RTS NetSDK之上,加一个Multimedia Framework,以及QoS消息处理,就可以构成一个一体化SDK.这对于已经有 ...
- 物联网卡开启养老新模式
我国是世界人口大国,人口老龄化对我国影响尤为深远.随着我国人口老龄化趋势日益加快,老年人口比例逐渐上升,如何让老人老有所依.老有所养成为了社会发展的重要命题.养老院作为老年人生活.养老的一个重要场地, ...
- IC卡与ID卡的区别
IC卡与ID卡的区别 射频IC卡按照使用功能分为身份识别ID 卡.消费的IC卡.物流标记卡.远距离识别卡. 目前,许多一卡通的项目,但对于是采用IC卡,还是采用ID卡做一卡通的问题上,还存在着很大的疑 ...
- 转有关IC卡与ID卡的重大区别
转有关IC卡与ID卡的重大区别 2007年05月08日 上午 08:13 目前许多建设智能小区或楼宇的发展商都要上一卡通的项目,但对于是采用IC卡,还是采用ID卡做一卡通的问题上,还存在着很大的疑惑和 ...
- 闲鱼如何保障交易链路质量
背景 闲鱼作为一款垂直交易社区APP,拥有复杂多样的业务场景:涉及c2c.回收寄卖.租房租赁.见面交易.验货担保等,复杂多变的交易模式.比如验货流程: 涉及39个状态机节点 横跨10+应用系统 涉及6 ...
- 网上0月租不限量、不实名的流量卡是真的吗?
不能打电话,不能发信息,只上用于设备联网的卡你知道吗? 这种卡就是物联卡 物联卡是三大运营商为物联网服务企业提供的用于智能终端设备联网的,仅面对企业用户进行批量销售,不面向个人用户. 物联卡业务可通过 ...
- android 不卡 华为,荣耀Magic是什么系统 华为荣耀Magic手机是不是也不卡?
此前传闻荣耀Magic将不再使用安卓系统,而采用自主操作系统,令不少花粉兴奋,不过随着荣耀Magic正式发布,该机搭载的操作系统也正式得到了确认,那么,荣耀Magic是什么系统?是否是和华为Mate9 ...
最新文章
- YooQ与《Charlotte》
- python snmp采集交换机信息_网管交换机与非网管交换机的利弊介绍
- mysql 有哪些子句_mysql 查询子句
- 每日英语:How to say No to other people
- 第七篇:VUE 使用 Echarts 画时钟钟表
- MDM主数据清洗和编码集成说明
- 基于Spring MVC + Spring + MyBatis的【网上购物系统】
- i18n国际语言代码对照表
- Android为什么图片模糊不清,Android打开图库中图片为什么从模糊变清晰
- qt打开xls文件_使用QtXlsx来读写excel文件
- 奇点云数据中台技术汇(七) | 数据智能模型——数据中台航母的作战集群
- 显卡+cuda+cudnn+tensorflow安装教程
- ps的两种填充效果快捷键
- DNS服务器配置:DNS服务器配置:正反解析,主从服务器,子域授权,
- java基础练习题:计算1000以内所有不能被7整除的整数之和
- QT笔记——QSetting 之 Ini文件的简单封装
- 冲击双十一,我是怎么拿下蚂蚁金服的offer的,Java面试题分享
- Java——速学界面设计之仿Windows记事本的字体窗口
- [零基础]从购买服务器到编程使用公网ip实现简单通信
- 删除iPhone邮箱smtp服务器,如何在 iPhone 上删除或清除邮件