运维SRE-08 网络基础与进阶

时间:2024-02-23 20:38:41

今日内容

- **定时备份案例进阶.**
- **定时巡检(检查系统基础指标),写入到文件中.**
- 网络(抽象) 
掌握与吸收时间: 直到课程结束.(第2阶段结束)
- 网络基础: 网络概述,网络结构,网络设备.
- 网络核心: 
   OSI7层模型       ※※※※※※
   TCP/IP 3次握手   ※※※※※※
   TCP/IP 4次挥手   ※※※※※※
- 网络其他内容:    
   IP地址划分
   子网掩码
   网关/路由       ※※※
- 网络相关命令:       ※※※

备份进阶案例

- - 定时备份/etc/目录到/backup以ip地址命名的目录中
    - /backup/10.0.0.200/etc-2022-11-11.tar.gz
    
    
  - 定时系统巡检(定时输出系统基本信息) 写入到/tmp/sys.log中.
    - ip地址信息(ip地址)   
    - 主机名信息(主机名)
    - 负载信息(0 0 0)
    - 内存信息(内存多大,用了多少,剩余多少)
    - cpu信息(核心数)
    - 磁盘信息(磁盘使用多少,剩余多少)
    - 进程信息(一共多少进程,几个运行,几个挂起,几个僵尸)
- 基础要求: 直接写出对应的命令
- 进阶要求: 精确取出索要的内容.

a)

[root@hb-sre-001 scrips]# cat 03.bak-adv-v1.sh 
#author:	hb
#desc:	backup etc dir
#version:	v1.0

#定义变量
方法1:
ip=`hostname -I |awk '{print $1}'`
方法2:
ip=`awk -F '=' '/IPADDR=/ {print $2}' /etc/sysconfig/network-scripts/ifcfg-ens33`
time=`date +%F`

#引用变量
mkdir -p /backup/$ip
tar -cvzf /backup/$ip/etc_$time.tar.gz /etc

b)基础写法

#author: hb
#desc: get sys basic info

echo "ip地址信息(ip地址)   "
hostname -I
echo  "主机名信息(主机名)"
hostname
echo "负载信息(0 0 0)"
uptime |sed 's#^.*users,##g'
echo "内存信息(内存多大,用了多少,剩余多少)"
free -h |awk 'NR<=2'
echo "cpu信息(核心数)"
lscpu |awk 'NR==4'
echo "磁盘信息(磁盘使用多少,剩余多少)"
df -h
echo "进程信息(一共多少进程,几个运行,几个挂起,几个僵尸)"
top -bn1 |awk 'NR==2'

C)进阶写法

#author: hb
#desc: get sys basic info
. /etc/profile
#定义变量
ip=`hostname -I`
hostname=`hostname`
load=`uptime |sed 's#^.*users,##g'`
mem_total=`free -h |awk 'NR==2{print $2}'`
mem_used=`free -h |awk 'NR==2{print $3}'`
mem_ava=` free -h |awk 'NR==2{print $NF}'`
cpus=`lscpu |awk 'NR==4{print $2}'`
root_used=` df -h|awk '$NF=="/" {print $(NF-1)}'`
process=`top -bn1 |awk 'NR==2'`
#使用变量(输出变量内容)
echo "ip地址信息: $ip "
echo "主机名信息: $hostname"
echo "负载信息: $load"
echo "内存信息: $mem_total $mem_used $mem_ava"
echo "cpu信息: $cpus"
echo "磁盘信息根分区使用率: $root_used"
echo "进程信息: $process"

计算机网络入门与进阶

网络简介

  • 网络:
    • 简单说通过网络介质把各种设备连接起来形成的结构
  • 网络介质:
    • 网线:六类网线,七类网线(速度)
    • 光纤
    • WIFI
    • 无线5G
      在这里插入图片描述

FC接口:
在这里插入图片描述

全名叫Ferrule Connector,最早应用于存储局域网络。外壳材质为金属,接口处有螺纹,和光模块连接时可以固定的很好。
ST接口:
在这里插入图片描述

材质为金属,接口处为卡扣式,常用于光纤配线架
SC接口:
在这里插入图片描述

材质为塑料,推拉式连接,接口可以卡在光模块上,常用于交换机
LC接口:
在这里插入图片描述

材质为塑料,用于连接SFP光模块,接口可以卡在光模块上

  • 网速/传输速度:
    • 1000Mb/s
    • 网络中传输速度一般指的是位,而不是字节
    • 1字节=8位。1000/8 125M字节/s
    • 一般辨别方法 Mb(位) MB(字节)

网络设备与架构

1)交换机

  • switch(开关,交换机)

交换机特点:

  • 在一个交换机的端口上所连接的所有终端设备,均在一个网段上(称为一个广播域)
  • 产生广播消耗设备CPU资源
  • 终端用户的设备接入,连接交换机
  • 一个网段会有一个统一的网络标识
  • 交换机会有一些基本的安全功能
  • 了解:广播域的隔离(创建vlan虚拟局域网)
  • 了解:交换机可以隔离冲突域,每一个端口就是一个冲突域

2)路由器

  • 连接不通的网络
  • 用于指路

路由器的特点:

  • 路由协议的转发(路由选择,指路)
  • 路由类似于现实生活中从A地去B地可能需要先步行,在坐车,在坐飞机才能到达B地,这样整个过程在网络中对应数据的传递过程就称为路由。因此一个数据信息跨越不同的网段传递到目的地址,就可以把传递数据的过程称为路由,也可以看做每条传递数据的路径。
  • 数据转发,会维护一个路由表(相当于一个地图)
  • 路由器会作为网关(数据的出入口,类似大楼的大门),一般会在网络出口的位置摆放一台路由器
  • 路由器用于连接广域网(公网)

在这里插入图片描述

3)通用网站网络架构
在这里插入图片描述

在这里插入图片描述

  1. 小结:
  • 交换机与路由器特点
  • 一般网站网络部分的架构图

OSI七层模型

1)概述

  • 数据传输中的加工过程(打包,解包)
  • 规定了数据在通过软件处理的时候增加了什么信息,对方收到的时候如何进行拆解.

2) OSI7层模型

  • open system interconnect开放系统互连参考模型,是由ISO(国际标准化组织)定义的。
OSI7层 每一层概述
7应用层 大部分软件运行在这一层. http,https
6表示层 负责数据加密,解密,压缩…(了解)
5会话层 主要负责会话管理,维护…(了解)
4传输层 主要负责数据传输方式.
3网络层 主要负责路由与寻址.
2数据链路层 将分组数据封装成帧.
1物理层 物理链路,网卡 :本质: 把数据转换为2进制形式,通过线缆传输.
  • 记忆口诀:物数网传会表应.

OSI7层模型详解

1)应用层

  • 大部分软件,服务运行在应用层中.
  • 详细含义: 暴露很多接口,提供给其他服务软件使用.主要就是提供应用程序可以接入网络的接口,并根据程序的不同对应不同的接口协议.
  • 接口: 别人定义好的规范.usb接口一样,这里的接口指的是软件的接口,用于软件之间,服务之间相互使用.
  • 应用层中常见的服务/协议:
协议 含义 端口
http 超文本传输协议:网站基础协议之一 80
https 多了secure:对数据加密 443
smtp 简单邮件传输协议 发邮件 25
dns 域名解析服务 53

2)表示层 -了解
在这里插入图片描述

3)会话层 -了解

  • 回话—连接
    在这里插入图片描述

4)传输层-重点

  • 建立与对方连接(端到端连接)
  • 数据如何传输给对方,丢失了如何处理?
    • 可靠连接 tcp
    • 不可靠连接 udp
  • 通过端口与对方连接(访问百度连接百度80或443端口)
    在这里插入图片描述

5)网络层-重点

  • 负责将数据从源传输到目的
  • 主要负责: 主要作用就是路由(指路)和寻址(根据ip地址找人)
    • 提供ip地址
    • 进行路由(问路、指路)
  • 设备:3层路由器,3层交换
    在这里插入图片描述

6)数据链路层

  • 把上层数据进行转换,转换为帧
  • 通过mac地址访问对应的机器

mac地址: 网卡物理地址,世界上独一无二的地址

  • 设备:2层交换
    在这里插入图片描述

7)物理层

  • 网卡:把上面的数据转换为网络介质中可以传输的信号.

把数据转换为0101010内容,通过传输介质传递给对方。

8)osi7层模型小结

OSI7层模型 含义 协议
7 应用层 应用之间互相调度,提供接口 http(80),https(443),smtp(25),dns(53)
6 表示层 数据加密,解密;编码,解码;压缩,解压缩
5 会话层 负责建立,管理维护回话信息
4 传输层 负责连接建立/断开,传输是否可靠 tcp/udp,核心概念:端口
3 网络层 负责路由(指路)与寻址(根据ip地址找人) 核心概念:ip地址
2 数据链路层 负责数据到达局域网后传输 核心概念:Mac地址
1 物理层 负责把数据转换为介质可以识别的信号(数据),通过介质 传输 网卡,传输介质

数据传输与OSI7层模型

  • 给对方发送:天凉了,多喝热水。发生了什么?

在这里插入图片描述

2)网络设备处理包的过程
在这里插入图片描述

3)对方解包的过程
在这里插入图片描述

在这里插入图片描述

4)抓包查看
在这里插入图片描述

在这里插入图片描述

wireshark软件抓包,记得也要安装NPCAP!

TCP/IP 协议(OSI7层模型)-了解

在这里插入图片描述

TCP 3次握手-重点

  • 与服务的端口建立连接的流程

  • 三次握手、四次挥手概述
    https://www.processon.com/view/link/6243d5151efad40756d2add7

  • 客户端发出建立连接请求:SYN建立连接请求.发出seq的随机数(seq=100)

  • 服务端收到客户端请求:ACK(确认),SYN(与客户端建立),发出ack=seq+1(101),seq=随机数(666)

  • 客户端收到服务端请求与确认:发出ACK确认建立连接,发出ack=seq+1(667),seq=ack(101)

  • 到此,连接建立,开始传输数据

TCP4次挥手-重点

  • 三次握手、四次挥手概述
    https://www.processon.com/view/link/6243d5151efad40756d2add7

  • 发出断开连接请求:FIN断开连接请求,seq=随机数996

  • 服务端:收到客户端请求,确认:ACK确认,seq=随机数(9) ack=seq+1(997)

  • 服务端:向客户端发出断开连接请求,FIN断开连接请求,seq=随机数(9) ack=seq+1(997)

  • 客户端:确认收到请求,断开连接,ACK确认收到请求,seq=ack(997) ack=seq+1(10)

  • 连接断开

抓包分析-3次握手与4次握手

1)准备

工具
  • wireshark(win)
  • linux 安装nc软件
知识点
常见TCP中的标记位
SYN sync同步请求,与服务器端口建立连接
ACK ack确认(回复:收到)
FIN finnish/final 结束,断开连接
seq,ack
seq与ack
seq sequence 序列号,随机
ack ack 确认号

2)三次握手-熟悉(能够抓取三次握手数据包即可)

#linux 下面通过nc命令创建一个端口.
yum install -y nc
nc -kl 12306   #创建12306端口
ss -lntup     #检查端口
#windows通过本地shell 连接12306端口
telnet 10.0.0.100 12306
如果要断开,请按ctrl+alt+]

开始抓包: 过滤器中输入: tcp.port == 12306 抓取端口是12306的数据包

在这里插入图片描述

客户端:请求建立连接:SYN
在这里插入图片描述

服务端:确认请求(ACK),并且请求建立连接(SYN)
在这里插入图片描述

客户端:确认建立连接:ACK
在这里插入图片描述

4)四次挥手的抓包过程
在这里插入图片描述

总结

  • osi7层模式详细介绍:
    应用层 传输层 网络层(重点)
  • 三次握手详细过程:
  • 四次挥手详细过程:
  • wireshark抓包:3次握手

TCP/UDP的区别

4层协议
TCP 传输控制协议:基于3次握手4次挥手,可靠连接
UDP 用户数据报协议:不可靠连接
传输控制协议(TCP) 数据报协议
面向连接(3次握手4次挥手,建立,断开连接) 无连接
可靠传输 不可靠传输
流控(检查数据是否丢失,丢失重新发送) 尽力而为,尽力传递
使用TCP应用:WEB浏览器;电子邮件;文件传输程序 使用UDP的应用:域名系统(DNS),视频流,IP语音(VoIP)

1)TCP
在这里插入图片描述

2)UDP
在这里插入图片描述

3)UDP演示-了解

#2台 linux 
都要安装nc命令.
#1台: 创建 udp 12306端口
nc -lu 12306
ss -lntup |grep 12306

#另一台: 连接 udp 12306端口
nc -u 10.0.0.200 12306

wireshark 过滤规则 udp.port == 12306
在这里插入图片描述

在这里插入图片描述

TCP 11种状态

(https://www.processon.com/view/link/6245136a5653bb072bce3259)
在这里插入图片描述

TCP三次握手状态转换简单说明:
01.首先,建立连接之前服务器和客户端的状态都为CLOSED。
02.服务器创建socket后开始监听((服务端启动后)启动服务),变为LISTEN状态。
03.客户端请求建立连接,向服务器发送SYN报文,客户端的状态变为SYN_SENT。
04.服务器收到客户端的报文后向客户端发送ACK和SYN报文,此时服务器的状态变为SYN_RCVD(收到了客户端发送的SYN请求)。
05.然后,客户端收到ACK、SYN,就向服务器发送ACK,客户端状态变为ESTABLISHED
06.服务器收到客户端的ACK后也变为ESTABLISHED。
此时3次握手完成,连接建立!

2)4次挥手的状态
在这里插入图片描述

在这里插入图片描述

01.客户端先向服务器发送FIN报文,请求断开连接,其状态变为FIN_WAIT1。
02.服务器收到FIN后向客户端发送ACK,服务器状态变为CLOSE_WAIT。
03.客户端收到ACK后就进入FIN_WAIT2状态。此时连接已经断开了一半了。如果服务器还有数据要发送给客户端,就会继续发送。
04.直到发完了,就发送FIN报文,此时服务器进入LAST_ACK状态。
05.客户端收到服务器的FIN后,马上发送ACK给服务器,此时客户端进入TIME_WAIT状态,再过了2MSL长的时间后进入CLOSED状态。
06.服务器收到客户端的ACK就进入CLOSED状态。

3)第11种状态补充
CLOSING状态表示:
客户端发了FIN,但FIN_WAIT1状态时没有收到服务器的ACK确认字段,却收到了服务器的FIN字段,这种情况发生在服务器发送的ACK
丢包的时候,因为网络传输有时会有意外。
在这里插入图片描述

4)11种状态小结
必会: CLOSED,ESTABLISHED,LISTEN,TIME_WAIT.CLOSE_WAIT
逐渐掌握: FIN_WAIT1,FIN_WAIT2,CLOSING.
在这里插入图片描述

常见网络协议

  • DNS 域名解析服务/协议:域名—>IP地址

  • ARP
    1)DNS
    在这里插入图片描述

    a)域名解析流程:域名—>IP地址
    详细的DNS解析流程
    在这里插入图片描述

    b)DNS解析的命令
    通过命令查看DNS解析详细流程

##缓存 windows 
##系统级别

ipconfig /displaydns 	#显示
ipconfig /flushdns 	#清空DNS缓存

#详细解析过程   ※※※※※ linux命令
dig www.baidu.com 	#查询百度对应的ip dns解析的命令.

#详细 DNS解析流程
dig +trace www.baidu.com

c)DNS故障

  • 通过域名访问:ping 域名 dig解析域名报错
  • ping 公网ip可以访问
#排查 是否DNS有问题
1. ping 域名
2. ping 公网ip

2)ARP协议

  • DNS 域名—>ip
  • ARP IP—>MAC地址
    ARP协议是3层协议,工作在2层
    解析流程简单:
  • 10.0.0.200 —> 10.0.0.2
  • 1:发出arp请求,发送广播找人,谁知道10.0.0.2的mac地址,请告诉10.0.0.200
  • 2:所有局域网的设备都收到广播,只有10.0.0.2这个机器进行响应:我是10.0.0.2 我的mac地址是xx:xx:xxxxxxx
  • 缓存mac地址
#抓包查看过程

#10.0.0.200(都在这台机器操作)
arp -n #查看当前系统arp缓存表
ping 10.0.0.201
arp -d 10.0.0.201 #删除arp缓存
#10.0.0.201

在这里插入图片描述

3)ICMP协议 Internet控制报文协议
ping 使用的就是icmp协议
在这里插入图片描述

4)小结

协议 名字 特点
DNS 域名解析系统/服务 域名–>ip地址
ARP 地址解析协议 IP地址–>mac地址
ICMP 因特网控制报文协议 ping背后使用的协议

网卡配置(ip,dns)

1)网卡命名

网卡命名规则:

ens33 
eth0

修改网卡名字为eth0
方法01:安装系统的时候修改
方法02:安装完成系统

a)方法02:安装完成系统

方法02:安装完成系统
第1步: 修改/boot/grub2/grub.cfg配置
linux16的行结尾加上
net.ifnames=0 biosdevname=0

#修改之后检查内容
[root@oldboy81-golden-lnb ~]# grep -n linux16 /boot/grub2/grub.cfg

第2步: 修改网卡配置文件.
1)修改网卡配置文件中NAME和DEVICE两个部分
vim修改
2)网卡配置文件名字改为eth0 
mv 修改

修改后结果:
[root@oldboy81-golden-lnb ~]# grep -n eth0 
/etc/sysconfig/network-scripts/ifcfg-eth0

12:NAME=eth0
14:DEVICE=eth0

b)安装系统的时候修改
安装系统的时候选择第1个然后按tab键. 在最后写入net.ifnames=0 biosdevname=0

2)网卡配置文件
/etc/sysconfig/network-scripts/ifcfg-ens33

[root@hb-sre-001 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet		#基本固定,网络类型:以太网
PROXY_METHOD=none 
BROWSER_ONLY=no
BOOTPROTO=static	#网卡固定ip还是自动获取ip(DHCP 自动分配ip)
                                #BOOTPROTO=dhcp		#自动获取
                                #BOOTPROTO=none或static		#手动设置Ip
DEFROUTE=yes			#是否可以自定义路由规则	了解
IPV4_FAILURE_FATAL=no
NAME=ens33		#网卡名字
UUID=3f9d7f21-034c-4849-9f1d-c12ad1e642cb	#统一识别符
                                #HWADDR=网卡的mac地址
DEVICE=ens33		#设备名字
ONBOOT=yes			#网卡是否自动运行(开机,重启网卡时)
IPADDR=10.0.0.100		#ip地址
GATEWAY=10.0.0.2	#网关,类似于大楼的出入口,网络环境中的环境出入口,一般3层路由
DNS=114.114.114.114		#主配置DNS
NETMASK=255.255.255.0	#跟PREFIX=24是一个意思
#PREFIX=24			#子网掩码,设置这个局域网中最多有多少台机器

常用的DNS

阿里云 DNS
223.5.5.5
223.6.6.6
114
114.114.114.114
114.114.115.115

谷歌DNS
8.8.8.8 
8.8.4.4
DNS地址的选择:授权默认的;如果没有默认的,选择当前网络环境的(找运营商);最后再使用公共DNS.

子网掩码计算器

用户访问www.baidu.com整个过程

过程概述:
  • 1.DNS:域名—>ip
  • 2.用户与ip+端口 建立连接 3次握手
  • 3.数据的请求与响应
  • 4.用户断开连接 4次挥手

2)过程详解
在这里插入图片描述

3)抓包详解
抓包详解

局域网上网原理与虚拟机上网原理-了解

  1. 局域网上网原理
    https://www.processon.com/view/link/624666e207912907096e7c0f
  2. 虚拟机上网原理
    https://www.processon.com/view/link/6041a56af346fb55c9b1b1fd

网络管理命令

端口
连接情况
网络速度
DNS解析
追踪命令

1)检查端口

端口是否开启
端口是否能访问(连接)

a)案例01 检查是否存在22端口

方法01
ss -lntup |grep 22
#grep -w 精确过滤. grep -w oldboy   #oldboya 
oldboyb aceoldboy 被排除.

方法02
netstat -lntup|grep 22

方法03
lsof -ni:22

方法03
lsof -i :22
lsof -ni :22
lsof -nPi :22
lsof -n 不要把ip反向解析为主机名、域名。
lsof -P 不要把端口解析为对应的服务。

b)检查是否可以访问22端口

#方法01 
telnet 10.0.0.200 22  #检查是否有connected 标记。
#方法02 
nc 10.0.0.200 22     #这个一般用于shell脚本中检查端口是
否开启。
#方法03
nmap 网络扫描工具。
nmap -p22 10.0.0.200

PORT   STATE SERVICE
22/tcp open  ssh  #nmap结果中只要有 端口 open就是开启 。

#nmap进阶使用
nmap -p1-1024   10.0.0.200 
nmap  -p22 10.0.0.0/24   jd.com taobao.com

c)企业面试题:如何检查端口是否存在

ss -lntup
netstat -lntup
lsof -i:22

telnet ip 22
nc ip 22
nmap -p22 ip

2)检查tcp连接状态

ss -ant
netstat -ant

[root@hb-sre-001 ~]# ss -ant
State      Recv-Q Send-Q                                                        Local Address:Port                                                                       Peer Address:Port              
LISTEN     0      128                                                                       *:22                                                                                    *:*                  
LISTEN     0      100                                                               127.0.0.1:25                                                                                    *:*                  
ESTAB      0      0                                                                10.0.0.100:22                                                                             10.0.0.1:59495              
ESTAB      0      52                                                               10.0.0.100:22                                                                             10.0.0.1:56006              
LISTEN     0      128                                                                    [::]:22                                                                                 [::]:*                  
LISTEN     0      100                                                                   [::1]:25                                                                                 [::]:*         

未来统计:
企业案例:每种状态的次数.sort + uniq
企业案例:网站并发情况
并发:同一时间内,用户连接数量
方法:过程estab状态的数量

3)网络速度
a)总体速度

iftop 
iftop -n #ip反向解析为域名/主机名
iftop -i 指定网卡.
iftop -P 显示端口
iftop -N 不要把端口解析为服务名字
最终使用.
iftop -nNP -i eth0  #显示端口号,不要把ip解析为域名,不要把
端口解析为服务, 监视指定网卡eth0

b)进程流量

查看进程的流量情况.
方法01: iftop,ss,ps 一起使用
iftop找出端口.
ss找出端口对应的进程号(pid)
ps根据pid过滤进程名字.

方法02: nethogs 
nethogs

4)DNS解析

dig ens解析
#方法01 dig 
QUESTION SECTION:
;baidu.com. IN A
ANSWER SECTION:
baidu.com. 106 IN A 220.181.38.148
baidu.com. 106 IN A 220.181.38.251

#方法02 
[root@hb-sre-001 ~]# host jd.com
jd.com has address 111.13.149.108
jd.com has address 106.39.171.134
jd.com has address 211.144.27.126
jd.com has address 211.144.24.218
jd.com mail is handled by 30 mx1.jd.com.
jd.com mail is handled by 5 mx.jd.com.

#方法03 
[root@hb-sre-001 ~]# nslookup www.baidu.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 157.148.69.74
Name:	www.a.shifen.com
Address: 157.148.69.80

5)追踪命令

检查线路是否通畅
ping
tracert(windows)  traceroute

#01 两点之间.
ping baidu.com  
#02 
tracert(windows)   traceroute (linux yum install -
y traceroute)

[C:\~]$ tracert www.baidu.com

通过最多 30 个跃点跟踪
到 www.a.shifen.com [157.148.69.74] 的路由:

  1     1 ms     2 ms     1 ms  192.168.0.1 
  2     3 ms     3 ms     3 ms  10.88.128.1 
  3     6 ms     5 ms     4 ms  120.80.174.89 
  4     *        *        *     请求超时。
  5     *        *        *     请求超时。
  6     9 ms    17 ms    36 ms  221.4.0.98 
  7    10 ms    21 ms     6 ms  120.80.137.54 
  8     7 ms     7 ms     9 ms  157.148.64.158 
  9     *        *        *     请求超时。
 10     *        *        *     请求超时。
 11     *        *        *     请求超时。
 12     5 ms     5 ms     5 ms  157.148.69.74 

跟踪完成。

[root@hb-sre-001 ~]# traceroute -n www.baidu.com
traceroute to www.baidu.com (157.148.69.80), 30 hops max, 60 byte packets
 1  10.0.0.2  0.076 ms  0.037 ms  0.047 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

6)命令小结

网络命令
查询ip地址 ip/ipconfig
检查端口号 ss/netstat/lsof/nc/telnet/nmap
检查连接情况 ss -ant /netstat -ant
检查速度 iftop /nethogs
dns解析 dig/host/nslookup
路径追踪 tracert /traceroute
查询当前系统配置的网关/路由信息 ip ro /route -n

抓包

1)概述

目标:
1.抓出指定协议的数据包
2.抓出指定端口
3.抓出指定ip
抓包工具
wireshark 可视化抓包工具、win/mac/linux
fiddler 代理,所有流量走fiddler,然后出去
tcpdump linux自带
burpsuit 抓包,修改数据包

2)wireshark
在这里插入图片描述

#抓出指定协议
icmp #ping 数据包
tcp
udp 
http 
arp 
#抓住指定端口
tcp.port == 80  #过滤出源端口或目标端口是80的数据包.
tcp.srcport == 80 #过滤出源端口80
tcp.dstport == 80 #过滤目标端口80

#抓出指定ip的数据包
ip.addr == 10.0.0.200  #过滤出源ip或目标ip是10.0.0.200 数据包

ip.src == 10.0.0.200  #过滤出源ip10.0.0.200 数据包
ip.dst == 10.0.0.200   #过滤出目标ip10.0.0.200 数据包

#组合 过滤出 端口是80 并且 ip地址是10.0.0.200 
and #并且 &&
or  #或者 ||
!   #取反
tcp.port == 80 && ip.addr == 10.0.0.200  #并且
tcp.port == 80 || ip.addr == 10.0.0.200  #或者

3)tcpdump 过滤

yum -y install tcpdump
ps:如果默认网卡不是eth0的话需要指定网卡

nc -kl 80
telnet 10.0.0.100 80
cpdump -i ens33 -nnn port 80

[root@hb-sre-001 ~]# tcpdump -i ens33 -nnn port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
16:18:24.446130 IP 10.0.0.1.56121 > 10.0.0.100.80: Flags [P.], seq 1002926694:1002926696, ack 1463935147, win 4106, length 2: HTTP
16:18:24.446155 IP 10.0.0.100.80 > 10.0.0.1.56121: Flags [.], ack 2, win 229, length 0
16:18:24.446195 IP 10.0.0.1.56121 > 10.0.0.100.80: Flags [P.], seq 2:4, ack 1, win 4106, length 2: HTTP
16:18:24.446198 IP 10.0.0.100.80 > 10.0.0.1.56121: Flags [.], ack 4, win 229, length 0
16:18:45.738620 IP 10.0.0.1.56121 > 10.0.0.100.80: Flags [P.], seq 4:6, ack 1, win 4106, length 2: HTTP
16:18:45.738712 IP 10.0.0.100.80 > 10.0.0.1.56121: Flags [.], ack 6, win 229, length 0
16:19:45.723025 IP 10.0.0.1.56121 > 10.0.0.100.80: Flags [P.], seq 6:8, ack 1, win 4106, length 2: HTTP
16:19:45.723052 IP 10.0.0.100.80 > 10.0.0.1.56121: Flags [.], ack 8, win 229, length 0
16:20:45.723515 IP 10.0.0.1.56121 > 10.0.0.100.80: Flags [P.], seq 8:10, ack 1, win 4106, length 2: HTTP
16:20:45.723569 IP 10.0.0.100.80 > 10.0.0.1.56121: Flags [.], ack 10, win 229, length 0

#过滤协议
tcpdump icmp
tcpdump -vvv -nnn icmp
#过滤指定端口号 80端口
tcpdump -nnn port 80
tcpdump -nnn src port 80
tcpdump -nnn dst port 80
#抓住指定主机
tcpdump -nnn host 10.0.0.100
#抓取指定ip和端口的数据包
tcpdump -nnn src host 10.0.0.100 and port 80
tcpdump -nnn dst host 10.0.0.100 and port 80
#
tcpdump -i ens33 
#组合 过滤出 端口是80 并且 ip地址是10.0.0.200 
and #并且    
or #或者   
!  #取反

4)案例tcpdump + wireshark抓包流程

tcpdump linux 抓包并保存
下载
wireshark分析

5)抓包小结

过滤条件 wireshark tcpdump
抓出指定协议 icmp/tcp/http icmp/tcp/http
抓出指定端口 tcp.port == 80 port 80
过滤出源端口 tcp.srcport == 80 src port 80
过滤目标端口 tcp.dstport == 80 dst port 80
抓出指定ip的数据包 ip.addr == 10.0.0.200 host 10.0.0.200
过滤出源ip ip.src == 10.0.0.200 src host 10.0.0.200
过滤出目标ip ip.dst == 10.0.0.200 dst host 10.0.0.200

IP

1)格式
网络位,主机位
在这里插入图片描述

2)子网掩码
用来决定局域网(网段中)最多有多少台机器
24
255.255.255.0

总结

  • 路由器交换机特点(熟悉)
  • OSI7层模型(必会)
  • 三次握手,四次挥手
  • 11种状态(掌握核心5个)
  • tcp/udp区别
  • 网络协议:
    • DNS
    • arp
    • icmp
  • 用户访问网站的流程:(必会)
  • 网络管理命令(必会)
  • 抓包(必会)