网络基础与进阶

计算机网络入门与进阶

学习OSI网络模型相关概念(重点掌握)

学习TCP三次握手与四次挥手过程(重点掌握)

学习TCP的11种状态集转化(重点掌握)

学习DNS相关知识概念与原理 linux网关配置(添加网关 网段 以及网络主机路由)

修改网卡配置文件

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

网络状态信息查询命令

抓包命令(wireshark,tpcdump)(BurpSuite)、工具。

ip地址分类.子网掩码(简介)

1.网络简介

  • 网络:
    • 简单说通过网络介质把各种设备连接起来形成的结构.
  • 网络介质:
    • 网线: cat5,cat5e 六类网线,七类网线(速度)
    • 光纤:
    • wifi: 无线路由器,ap节点.

img

  • FC接口

image

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

  • ST接口

img

材质为金属,接口处为卡扣式,常用于光纤配线架

  • SC接口
img

材质为塑料,推拉式连接,接口可以卡在光模块上,常用于交换机

  • LC接口
img

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

  • 核心:网速/传输速度:
    • 网络带宽的速度: 1000Mb/s 1000/8 = 125MB/s
    • bit位: 1字节=8bit
    • 网络中单位是位,我们要把它转换为字节.一般:b小写就是位 ,B大写字节

2.网络设备与架构

  • 主要掌握:路由器与交换机区别
  • 主要掌握:常用网站(公司)网络架构

2.1.交换机

  • switch (开关,交换机)

交换机特点:

  • 在一个交换机的端口上所连接的所有终端设备,均在一个网段(局域网 LAN)上(称为一个广播域)
  • 产生广播消耗设备CPU资源
  • 终端用户的设备接入,连接交换机. 一般情况下交换机24口,48口,96口.
  • 一个网段会有一个统一的网络标识,网段192.168.15.xxx
  • 企业级交换机会有一些基本的安全功能,这种交换机叫网管功能的交换机
  • 一般来说交换机工作在OSI模型的第2层,也叫二层交换.(等我们说了OSI7层模型就理解.)
  • 了解:广播域的隔离(创建VLAN 虚拟局域网)
  • 了解:交换机可以隔离冲突域,每一个端口就是一个冲突域

2.2.路由器

  • 连接不同的网络.
  • 核心功能:路由功能(指路),ip(分配IP).

路由器特点:

  • 路由协议的转发(路由选路,指路)

    • 路由类似于现实生活中从A地去往B地可能需要先步行,在坐车,在做飞机才能到达B地,这样的整个过程在网络中对应数据的传递过程就称 为路由。因此一个数据信息跨越不同的网段传递到目的地址,就可以把传递数据的过程称为路由,也可以看做每条传递数据的路径。
  • 数据转发,会维护一个路由表(相当于一个地图)

  • 路由器会作为网关(数据的出入口,类似于大楼的大门),一般会在网络出口的位置摆放一台路由器

  • 路由器用于连接广域网(公网)

image

2.3.通用网站网络架构

image

  • 核心: 交换机与路由器特点
  • 了解:一般网站网络部分的架构图

3. OSI7层模型

3.1.概述

  • 用于规定数据在发送,传输,阅读流程.

目标:

  • 核心: 熟练掌握7层模型包含了什么.
  • 核心: 逐渐掌握7层模型每一层特点
  • 逐渐掌握7层模型与数据发送(封包,打包),数据接收过程(解包,拆包)

3.2. OSI7层模型

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

4.OSI7层模型详解

image

4.1.7️⃣应用层

  • 大部分软件,服务运行在应用层中.

  • 详细含义: 暴露很多接口,提供给其他服务软件使用.主要就是提供应用程序可以接入网络的接口,并根据程序的不同对应不同的接口协议

  • 接口: 别人定义好的规范.usb接口一样,这里的接口指的是软件的接口,用于软件之间,服务之间相互使用.

  • 核心:应用层中常见的服务/协议:

协议 含义 端口
http 超文本传输协议: 网站基础协议之一 80
https 多了个secure: 对数据加密了 443
smtp 简单邮件传输协议 发邮件. smtp未加密 smtps加密 25,465
dns 域名解析服务 53
  • 对于应用层掌握常用协议即可.注意服务/协议对应的端口,端口的概念不是7层的,是传输层概念4层.

4.2.6️⃣表示层

image

4.3.5️⃣会话层

  • 会话连接.

image

4.4.4️⃣传输层-重点

  • 传输层用于管理或控制连接(端到端连接)

  • 传输层控制了,连接或数据传输是否可靠.指定端口号

  • 如何指定数据传输是否可靠?根据代码书写的时候指定

    • 可靠的连接. tcp
    • 不可靠的连接. udp
  • 通过端口与对方连接.(访问百度连接百度80或443端口)

image

  • 核心:传输层用于控制数据传输是否可靠,这里还指定了端口
  • 可靠:tcp,不可靠是udp (这两个的详细信息在后面3次握手,4次挥手的时候讲解)

4.5.3️⃣网络层

image

  • 负责将数据从源地址传输到目的地址

  • 主要负责: 主要作用就是路由(指路)和寻址(根据ip地址找人)

    • 提供ip地址(DHCP).
    • 进行路由(问路,指路)(路由表).
  • 设备: 3层路由器,3层交换

4.6.2️⃣数据链路层

image

  • 数据链路层:把上层数据进行转换转换为帧(对数据进行处理与加工).

  • 这一层加工数据的时候,增加了MAC地址. 网卡物理地址,网卡生产的时候设置.

  • 数据可以在局域网传输(精确传输). 局域网传输的时候使用的是mac地址.

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

4.7.1️⃣物理层

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

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

5.抓包查看OSI7层模型

  • 使用wireshark抓包.
yum install -y nginx
systemctl enable nginx
systemctl start nginx
systemctl status nginx

数据传输与OSI7层模型

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

1.1.封包过程

  • 把"天凉了,多喝热水" 从应用层开始一层层层增加内容(封包).

  • 最后通过网络介质传输出去

image

2.网络设备处理包的过程

image

3.对方解包的过程

image

image

4.抓包查看

  • 过滤http协议的数据包,过滤出icmp(ping)数据包即可.

image

image

5.TCP/IP 协议(OSI7层精简模型)-了 解

image

6.TCP 3次握手-重点

  • tcp之所以称为稳定,可靠的.因为建立连接的时候要经过3次握手.
  • tcp三次握手目标: 与端口建立连接.
  • udp没有3次握手建立连接的过程,直接连接

6.1.三次握手-概述

https://www.processon.com/view/link/6243d5151efad40756d2add7

image

文字描述3次握手流程

  • 1️⃣客户端发出建立连接请求: SYN建立连接请求 . 发出seq的随机数(seq=100).
  • 2️⃣服务端收到客户端请求: ACK(确认),SYN(与客户端建立连接) , 发出ack=seq+1(101),seq=随 机(666)
  • 3️⃣客户端收到服务端请求与确认: 发出ACK确认建立连接 , 发出 ack=seq+1(667) seq=ack(101)
  • 4️⃣到此,连接建立,开始传输数据.

7. TCP 4次挥手-重点

  • 4次挥手目的是断开连接.

7.1.四次挥手-概述

https://www.processon.com/view/link/6243d5151efad40756d2add7

image

7.2.四次挥手-详细内容

image

文字描述4次挥手流程:

  • 1️⃣ 客户端: 发出断开连接请求: (FIN) 断开连接请求,seq=1000 ack=668

  • 2️⃣服务端: 收到客户端请求,确认: (ACK) ,确认断开, seq=668 ack=seq+1(1001)

  • 3️⃣ 服务端: 向客户端发出断开连接请求,(FIN)断开连接请求, seq=668 ack=seq+1(1001)

  • 4️⃣客户端: 确认收到请求,断开连接, (ACK)确认收到请求, seq=1001 ack=seq+1(669)

  • 5️⃣ 连接断开

8. 抓包分析-3次握手与4次挥手

8.1.准备

工具

  • wireshark(win)

  • linux 安装nc软件

知识点

image

seq, ack

image

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

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

image

⚠ 注意需要关闭防火墙和selinux.

#关闭防火墙
systemctl stop firewalld  
systemctl disable firewalld
#检查防火墙
systemctl   status firewalld

#关闭selinux
setenforce   0  
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

#检查selinux
getenforce  #结果为 disable 或 permissive 即可.

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

image

客户端:请求建立连接:SYN

image

服务端:确认请求(ACK),并且请求建立连接(SYN)

image

服务端:确认请求(ACK),并且请求建立连接(SYN)

image

9.TCP/UDP 区别

9.1概述与总结 ⭐⭐⭐⭐⭐

4层协议
TCP 传输控制协议: 基于3次握手四次挥手,可靠连接.
UDP 用户数据报协议: 不可靠连接.

TCP 与 UDP区别 ⭐ ⭐ ⭐ ⭐ ⭐

image

9.2.TCP数据包结构

image

9.3.UDP数据包结构

image

9.4.UDP演示-了解

#2台 linux
都要安装nc命令.
#1台: 创建 udp 12306端口
nc -lu 12306
[root@oldboy81-golden-lnb ~]# ss -lntup |grep 12306
udp   UNCONN     0      0         *:12306          
      *:*                   users:
(("nc",pid=93562,fd=4))
udp   UNCONN     0      0     []:12306          
  []:*                   users:
(("nc",pid=93562,fd=3))


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

wireshark 过滤规则 udp.port 12306

image

image

10. TCP 11种状态

  • 掌握tcp 三次握手,四次挥手 的时候客户端,服务端常见状态.

10.1.三次握手的状态

image

  • 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次握手完成,连接建立!

10.2.四次挥手的状态

image

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状态。

10.3.第11种状态补充

CLOSING状态表示:

客户端发了FIN,但客户端在FIN_WAIT1状态时没有收到服务器的ACK确认字段,却收到了服务器的FIN字段,这种情况发生在服务器发送的ACK丢包的时候,因为网络传输有时会有意外。

image

核心必会:

CLOSED , ESTABLISHED , LISTEN , TIME_WAIT . CLOSE_WAIT

逐渐掌握: FIN_WAIT1,FIN_WAIT2,CLOSING,SYN_SENT,LAST_ACK

image

11.常见网络协议

image

DNS 域名解析服务/协议: 域名---->ip地址 ⭐ ⭐ ⭐ ⭐ ⭐

11.1.DNS

DNS 域名解析服务/协议: 域名--->ip地址 ⭐ ⭐ ⭐ ⭐ ⭐

  • 域名结构

image

  • DNS解析详细流程⭐⭐⭐⭐⭐

域名解析流程: 域名---->ip地址

image

11.2.DNS解析的命令

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

#缓存 windows
系统级别
ipconfig /displaydns  #显示
ipconfig /flushdns    #清空DNS缓存

浏览器也有DNS缓存
#hosts文件

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

11.3.DNS故障

通过域名访问: ping域名 dig解析域名报错. yum安装软件失败

ping 公网ip可以问的.

  • 此时需要检测与配置下DNS(网卡配置文件中.)
#排查 是否DNS有问题
1. ping 域名
2. ping 公网ip
ping baidu.com   # ping: baidu.com: Name or service not known

ping 223.5.5.5
PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data.
64 bytes from 223.5.5.5: icmp_seq=1 ttl=128 time=6.41 ms
64 bytes from 223.5.5.5: icmp_seq=2 ttl=128 time=6.69 ms

#  systemctl restart network 是 Linux 系统下用于重启网络服务的命令

11.4.ARP协议

DNS 域名---->ip

ARP IP -----> MAC地址

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:xxxxxxxx

3️⃣缓存mac地址.

抓包查看过程:

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

image

11.5. ICMP协议 Internet控制报文协议

ping 使用的就是icmp协议

image

小结

image

image

image

12. 网卡配置(ip,DNS)

12.1网卡命名

网卡命名规则:
ens33
eth0

修改网卡名字为eth0

方法01:安装系统的时候修改 net.ifnames=0 biosdevname=0

方法02:安装完成系统

12.1.1方法02:安装完成系统

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

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

image

# 第2步: 修改网卡配置文件
修改网卡配置文件中NAME和DEVICE两个部分
vim修改
网卡配置文件名字改为eth0 
mv 修改
修改后结果:
重启Linux

image

image

12.1.2.方法01: 安装系统的时候修改

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

image

net.ifnames=0  biosdevname=0

image

12.2.网卡配置文件⭐⭐⭐⭐⭐

/etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet     #基本固定,网络类型: 以太网

BOOTPROTO=none    #网卡固定ip还是自动获取ip(DHCP 自动分配ip) ※※※※※※
				  #BOOTPROTO=dhcp
				  #自动获取 (公有云DHCP) (物理机)
				  #BOOTPROTO=none或static #手动设置Ip (物理机)

NAME=eth0         #网卡名字 ※※※※※※
DEVICE=eth0       #设备名字 ※※※※※※

UUID=8e987179-762e-466e-aa40-fe38ebb012d0  #统一设别符
				  #HWADDR=网卡的mac地址
				  
ONBOOT=yes        #网卡是否自动运行(开机,重启网卡)  ※※※※※※

IPADDR=10.0.0.200 #ip地址

PREFIX=24         #子网掩码,设置这个局域网中最多有多少台机器. ※※※※※※
				  #NETMASK=255.255.255.0
			
GATEWAY=10.0.0.2  #网关, 类似于大楼的出入口. 网络环境中的流量出入口. 一般是3层路由. ※※※※※※

DNS1=223.5.5.5    #主配置dns地址. ※※※※※※
DNS2=223.6.6.6    #备DNS         ※※※※※※

image

阿里云 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

DNS配置文件

网卡配置文件DNS1 DNS2 优先.

/etc/resolv.conf 实时生效.

子网掩码计算器:

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

13.1.过程概述

过程概述:

1️⃣DNS解析过程:域名>ip

2️⃣ 与对应服务器的端口(80或443)建立连接: 3次握手

3️⃣ 数据的请求与响应(http协议,传输数据)(第2个阶段展开)

4️⃣断开连接:4次挥手.

13.2.过程详解

image

13.3.抓包详情

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

14.1.局域网上网原理

image

14.2.虚拟机上网原理

image

15.网络管理命令 ⭐⭐⭐⭐⭐

检查端口

查看连接情况

网络速度与程序

占用情况

DNS解析

追踪命令

yum install -y net-tools lsof nethogs iftop telnet nc nmap

15.1.检查端口

端口是否开启.

端口是否能访问(连接).

15.1.1.案例01 检查是否存在22端口

我们可以连接这台服务器。

方法01 推荐
ss -lntup |grep 22
ss -lntu
-p表示显示端口对应的进程的信息。
#grep -w 精确过滤. grep -w oldboy   #oldboya oldboyb aceoldboy 被排除.

方法02
netstat -lntup |grep -w 22

方法03
lsof  -i :22
lsof  -ni :22
lsof  -nPi :22

lsof -n 不要把ip反向解析为主机名、域名。
lsof -P 不要把端口解析为对应的服务

15.1.2.案例02 检查是否可以访问22端口

不在对应的服务器上。

#方法01
telnet 10.0.0.200 22  	#命令行中推荐使用,检查是否有connected 标记。

#方法02 nc netcat ncat
nc -v 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


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

ss -lntup
netstat -lntup
lsof  -i:22

telnet 10.0.0.200  22
nc  10.0.0.200  22
nmap -p22 10.0.0.200 

15.2.检查tcp连接状态

ss -ant
netstat -ant

[root@myvps ~]# ss -ant
State      Recv-Q Send-Q      Local Address:Port                     Peer Address:Port              
LISTEN     0      128                     *:80                                  *:*                  
LISTEN     0      128                     *:22                                  *:*                  
LISTEN     0      100             127.0.0.1:25                                  *:*                  
LISTEN     0      128             127.0.0.1:9000                                *:*                  
LISTEN     0      50                      *:3306                                *:*                  
ESTAB      0      0              10.0.0.200:22                           10.0.0.1:57717              
LISTEN     0      128                  [::]:80                               [::]:*                  
LISTEN     0      128                  [::]:22                               [::]:*                  
LISTEN     0      100                 [::1]:25                               [::]:*   未来统计:
企业案例: 每种状态的次数. sort+uniq
企业案例: 网站并发情况
并发: 同一时间内,用户连接数量.
方法:统计estab状态的连接数量(一般是80/443)端口.

ss -ant |awk 'NR>1 && $4~/:80$/ {print $1}'|sort|uniq -c
ab压力测试网站
ab -n 90000000  -c 3 http:10.0.0.200/

15.3.网络速度

15.3.1总体速度

image

iftop   2s 10s 40s数据传输平均速度

iftop -n #ip反向解析为域名/主机名
iftop -i 指定网卡. 默认eth0 第1个网卡.

iftop -P 显示端口
iftop -N 不要把端口解析为服务名字

最终使用.
iftop -nNP -i eth0  #显示端口号,不要把ip解析为域名,不要把端口解析为服务, 监视指定网卡eth0 

15.3.2.进程流量

image

精确到进程的网络速度.

查看进程的流量情况.
方法01: iftop,ss,ps 一起使用

iftop找出端口.
ss找出端口对应的进程号(pid)
ps根据pid过滤进程名字.

方法02: nethogs
nethogs 

15.4.DNS解析

dig dns解析查询

host

nslookup

#方法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@myvps ~]# host   re.oldboylinux.cn 
re.oldboylinux.cn has address 121.199.49.168
[root@myvps ~]# host   jd.com 
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 has address 111.13.149.108
jd.com mail is handled by 5 mx.jd.com.
jd.com mail is handled by 30 mx1.jd.com.

#方法03
[root@myvps ~]# nslookup www.baidu.com
Server:		223.5.5.5
Address:	223.5.5.5#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 153.3.238.28
Name:	www.a.shifen.com
Address: 153.3.238.127
Name:	www.a.shifen.com
Address: 2408:873d:22:18cb:0:ff:b037:e6d8
Name:	www.a.shifen.com
Address: 2408:873d:22:1a91:0:ff:b013:cf81

[root@myvps ~]# nslookup re.oldboylinux.cn
Server:		223.5.5.5
Address:	223.5.5.5#53

Non-authoritative answer:
Name:	re.oldboylinux.cn
Address: 121.199.49.168


15.5.追踪命令

检查线路是否通畅.

ping

tracert(windows) traceroute (linux ) 路径追踪

#01 两点之间.
ping baidu.com  

#02 
tracert(windows)   traceroute (linux yum install -y traceroute)

traceroute  -nI www.baidu.com #默认使用udp协议,-I使用icmp协议

[D:\~]$ tracert -d www.baidu.com

通过最多 30 个跃点跟踪
到 www.a.shifen.com [2408:873d:22:18cb:0:ff:b037:e6d8] 的路由:

  1     3 ms     2 ms     2 ms  2408:8462:5c20:52fb::ef 
  2     *        *        *     请求超时。
  3     *        *        *     请求超时。
  4    82 ms     *        *     2408:8142:c0f2:5900:: 
  5     *        *        *     请求超时。
  6    89 ms    65 ms    26 ms  2408:8001:6666::2:0 
  7     *        *        *     请求超时。
  8     *        *        *     请求超时。
  9    72 ms    72 ms    88 ms  2408:8000:a016:1::1b 
 10    88 ms    99 ms    71 ms  2408:873d:1:1::d 
 11    65 ms    89 ms   109 ms  240c:4001:2130::ec1:eb2:2 
 12    79 ms    51 ms    62 ms  240c:4001:2130::eb1:eb2:2 
 13    47 ms    53 ms    75 ms  240c:4051:1229:1eb:1eaf:3:eb01:6 
 14    44 ms    54 ms   100 ms  240c:4051:1229:109:1eaf:1:1b09:3 
 15    64 ms    62 ms    59 ms  2408:873d:22:18cb:0:ff:b037:e6d8 


[root@myvps ~]# Address: 121.199.49.168
[root@myvps ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.2        0.0.0.0         UG    100    0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     101    0        0 eth1

小结

image

16. 抓包

未来一些网络的问题,数据传输的问题,很难直观的看出来,需要使用抓包软件查看数据传输背后发生了什么. 运维必会技能.

16.1.概述

目标:

抓出指定 协议 的数据包.

抓出指定 端口 .

抓出指定 ip

image

16.2. wireshark过滤器规则

image

16.2.1.抓出指定协议

icmp #ping 数据包
tcp
udp
http
arp
过滤https数据包: tls

16.2.2.抓住指定端口

tcp.port  80  #过滤出源端口或目标端口是80的数据包.
如果是udp数据包
udp.port  53
tcp.srcport  80 #过滤出源端口80
tcp.dstport  80 #过滤目标端口80
udp.srcport  53
udp.dstport  53

16.2.3.抓出指定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 数据包

16.2.4.不固定内容的过滤-比较大小

过滤出端口小于等于1024的数据包.
tcp.dstport <= 1024
等于      ==
小于等于    <=
小于       <
大于等于   >=
大于       >
不等于     !=

16.2.5.grep过滤,包含,正则

# wire中不是所有的指标都支持正则,过滤.需要字段的内容是字符串,才能使用正则过滤
过滤出http协议中包含baidu.com数据包
http ~ "baidu.com"
http.host ~ "[0-9]+(.com|.cn)"
http.host用户请求的域名中包含xxxx

matches 或 ~

16.2.6.与或非-

#过滤端口号大于等于20 小于等于1024
tcp.port >=20  tcp.port <=1024
tcp.port >=20 and tcp.port <=1024



#组合 过滤出 端口是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  #或者

16.3.tcpdump 过滤

yum install -y tcpdump

image

  • 抓包案例
#过滤协议
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.200


#抓取指定ip和端口的数据包

tcpdump  -nnn src host  10.0.0.200 and   port 80
tcpdump  -nnn dst host  10.0.0.200 and   port 80


#
tcpdump  -i ens33
#组合 过滤出 端口是80 并且 ip地址是10.0.0.200
and #并且    
or  #或者  
!   #取反
tcpdump无法过滤出7层的数据包 http 需要指定端口号过滤并保存,然后通过wireshark查看

16.4. 案例tcpdump + wireshark抓包流程. ⭐⭐

tcpdump linux抓包 并保存

下载

wireshark分析.

tcpdump 抓包的时候 通过-w保存  
下载windows,通过wireshark分析即可
[root@myvps ~]# tcpdump -vvv -nn -i eth0  port 80 or port 53 -w http-dns.pcap

小结

image

16.5.IP-了解

16.5.1.格式与分类

点分十进制ip(ipv4) 32位

ipv6,128位

ip地址组成:网络位(居住的校区),主机位(楼房间)

根据网络位不同划分ip地址分类

image

16.5.2.子网掩码

子网掩码: 用来绝对局域网(网段中)最多有多少台机器.

PREFIX=24

NETMASK=255.255.255.0

子网掩码换算器 https://www.sojson.com/convert/subnetmask.html

posted @ 2025-03-20 21:49  殇ベ墨~  阅读(5)  评论(0)    收藏  举报