今日内容
- **定时备份案例进阶.**
- **定时巡检(检查系统基础指标),写入到文件中.**
- 网络(抽象)
掌握与吸收时间: 直到课程结束.(第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)通用网站网络架构
- 小结:
- 交换机与路由器特点
- 一般网站网络部分的架构图
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)DNSa)域名解析流程:域名—>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)抓包详解
抓包详解
局域网上网原理与虚拟机上网原理-了解
- 局域网上网原理
https://www.processon.com/view/link/624666e207912907096e7c0f - 虚拟机上网原理
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
- 用户访问网站的流程:(必会)
- 网络管理命令(必会)
- 抓包(必会)