欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > day026-网络基础-TCP11种状态与网络管理命令、抓包

day026-网络基础-TCP11种状态与网络管理命令、抓包

2025/11/12 10:39:40 来源:https://blog.csdn.net/qq_52174380/article/details/148414067  浏览:    关键词:day026-网络基础-TCP11种状态与网络管理命令、抓包

文章目录

  • 1. TCP 11种状态
    • 1.1 三次握手
    • 1.2 四次挥手
    • 1.3 CLOSING 状态
    • 1.4 查看TCP进程连接状态
    • 1.5 TCP的状态转换
      • 1.5.1 客户端
      • 1.5.2 服务端
  • 2. 网络管理命令
    • 2.1 lsof
    • 2.2 nmap
    • 2.3 nc
    • 2.4 网络测速:iftop
    • 2.5 DNS解析:nslookup
    • 2.6 fping
    • 2.7 mtr
    • 2.8 iperf
    • 2.9 网络命令总结
  • 3. 抓包
    • 3.1 常见过滤表达式-wireshark
    • 3.2 tcpdump
      • 3.2.1 过滤协议
      • 3.2.2 过滤指定端口号
      • 3.2.3 过滤指定IP
      • 3.2.4 过滤指定IP和端口
    • 3.3 tcpdump+wireshark抓包流程
    • 3.4 案例:远程连接失败与抓包分析
      • 3.4.1 关闭公有云安全组的远程连接端口规则
      • 3.4.2 wireshark抓取本地网卡数据包,并过滤公网云IP
      • 3.4.3 去云服务器上用tcpdump -vvv -nnn port 22抓包
      • 3.4.4 开放安全组,再抓包
  • 4. IP与子网掩码
  • 5. 思维导图
  • 6. 踩坑记录
    • 1. #########: command not found
    • 2. 脚本和命令行的区别
    • 3. 查看硬盘数量及信息

1. TCP 11种状态

1.1 三次握手

在这里插入图片描述

  • LISTEN:监听状态,服务启动等待客户连接。

TCP三次握手状态转换:

  1. 建立连接之前服务器和客户端状态都为CLOSED
  2. 服务器创建socket后开始监听(启动服务),变为LISTEN状态
  3. 客户端发送SYN请求,状态变为SYN_SENT
  4. 服务端收到客户端的SYN报文后向客户端发送ACK和SYN报文,此时服务端的状态变为SYN_RCVD
  5. 客户端收到服务端的ACK和SYN报文,向服务端发送ACK,客户端状态变为ESTABLISHED
  6. 服务端收到ACK后,也变为ESTABLISHED
  7. 此时TCP三次握手完成,连接建立成功!

1.2 四次挥手

在这里插入图片描述

  • MSL(Maximum Segment Lifetime,最大报文生存时间) 是一个关键的时间参数,用于确保网络中残留的旧数据包不会干扰新的 TCP 连接。

TCP四次挥手状态变化:

  1. 客户端向服务端发送FIN报文,请求断开连接,其状态变为FIN_WAIT1
  2. 服务端收到FIN后向客户端发送ACK,状态变为CLOSE_WAIT
  3. 客户端收到ACK后进入FIN_WAIT2状态
  4. 服务端发送FIN报文,此时服务端进入LAST_ACK状态
  5. 客户端收到服务端的FIN后,马上发送ACK报文,并进入TIME_WAIT状态,在过2MSL时间进入CLOSED状态
  6. 服务端收到ACK后,进入CLOSED状态

1.3 CLOSING 状态

客户端发送FIN后处于FIN_WAIT1状态,但是之后没有收到服务端的ACK确认字段,却收到了服务端的FIN字段。

此时客户端会进入CLOSING状态。

一般在网络阻塞严重时会发生。

1.4 查看TCP进程连接状态

  • -a:all,显示所有网络连接
  • -n:不解析服务名称
  • -t:tcp
[root@iZ2ze7mths8vcox9zf7hkfZ ~]# ss -ant
State         Recv-Q     Send-Q         Local Address:Port             Peer Address:Port      Process   
LISTEN        0          80                 127.0.0.1:3306                  0.0.0.0:*           
LISTEN        0          511                  0.0.0.0:80                    0.0.0.0:*           
LISTEN        0          4096           127.0.0.53%lo:53                    0.0.0.0:*           
LISTEN        0          128                  0.0.0.0:22                    0.0.0.0:*           
LISTEN        0          128                127.0.0.1:6010                  0.0.0.0:*           
LISTEN        0          511                127.0.0.1:9000                  0.0.0.0:*           
TIME-WAIT     0          0                  127.0.0.1:9000                127.0.0.1:52482       
ESTAB         0          0              172.28.248.55:58372           100.100.30.25:80          
ESTAB         0          80             172.28.248.55:22             123.117.19.236:7329        
TIME-WAIT     0          0              172.28.248.55:39968          100.100.18.120:80          
TIME-WAIT     0          0              172.28.248.55:80              8.140.211.162:54884       
TIME-WAIT     0          0                  127.0.0.1:9000                127.0.0.1:52486       
LISTEN        0          128                    [::1]:6010                     [::]:*           
LISTEN        0          128                     [::]:22                       [::]:* 

1.5 TCP的状态转换

1.5.1 客户端

在这里插入图片描述

1.5.2 服务端

在这里插入图片描述

2. 网络管理命令

2.1 lsof

  • lsofList Open Files)是一个强大的 Linux/Unix 命令,用于列出系统中被进程打开的文件
  • 常用于查看未彻底删除的文件
  • 检查是否存在22端口:
[root@iZ2ze7mths8vcox9zf7hkfZ ~]# lsof -nPi :22
COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd    303891 root    3u  IPv4 2832659      0t0  TCP *:22 (LISTEN)
sshd    303891 root    4u  IPv6 2832661      0t0  TCP *:22 (LISTEN)
sshd    305669 root    4u  IPv4 2851391      0t0  TCP 172.28.248.55:22->123.117.19.236:7329 (ESTABLISHED)
  • -i:监听指定地址
  • -n:不解析ip
  • -P:不解析端口

2.2 nmap

Nmap(Network Mapper)是一款开放源代码的网络探测和安全审核工具。它用于快速扫描一个网络和一台主机开放的端口,还能使用TCP/IP协议栈特征探测远程主机的操作系统类型。

# 扫描指定域名的端口是否开启
[root@oldboy99-Kylin /server/scripts]# nmap -p 22,80,443 baidu.com
Starting Nmap 7.92 ( https://nmap.org ) at 2025-06-03 20:47 CST
Nmap scan report for baidu.com (39.156.66.10)
Host is up (0.00034s latency).
Other addresses for baidu.com (not scanned): 110.242.68.66PORT    STATE    SERVICE
22/tcp  filtered ssh
80/tcp  filtered http
443/tcp filtered httpsNmap done: 1 IP address (1 host up) scanned in 10.39 seconds

2.3 nc

  • 功能强大的网络管理命令
  • 查看端口是否开启
  • -v:显示命令执行过程
[root@oldboy99-Kylin /server/scripts]# nc 10.0.0.200 80 -v
Ncat: Version 7.92 ( https://nmap.org/ncat )
Ncat: Connected to 10.0.0.200:80.

2.4 网络测速:iftop

  • 流量监控工具
  • -i:指定网卡
  • -n:不解析ip
  • -P:显示端口
  • -N:不解析端口
  • -B:单位变成字节

在这里插入图片描述

  • 非交互式模式
[root@iZ2ze7mths8vcox9zf7hkfZ ~]# iftop -PnNB -ts 1
interface: eth0
IP address is: 172.28.248.55
MAC address is: 00:16:3e:40:c5:43
Listening on eth0# Host name (port/service if enabled)            last 2s   last 10s   last 40s cumulative
--------------------------------------------------------------------------------------------1 172.28.248.55:58372                      =>     1.04KB     1.04KB     1.04KB     2.08KB100.100.30.25:80                         <=        40B        40B        40B        80B2 172.28.248.55:33022                      =>       312B       312B       312B       624B100.100.18.120:80                        <=       274B       274B       274B       548B3 172.28.248.55:47615                      =>        36B        36B        36B        71B100.100.2.138:53                         <=        78B        78B        78B       157B4 172.28.248.55:22                         =>        50B        50B        50B       100B123.117.19.236:7329                      <=        60B        60B        60B       120B
--------------------------------------------------------------------------------------------
Total send rate:                                     1.43KB     1.43KB     1.43KB
Total receive rate:                                    452B       452B       452B
Total send and receive rate:                         1.87KB     1.87KB     1.87KB
--------------------------------------------------------------------------------------------
Peak rate (sent/received/total):                     1.43KB       452B     1.87KB
Cumulative (sent/received/total):                    2.86KB       905B     3.74KB
============================================================================================

2.5 DNS解析:nslookup

  • 解析域名;Linux和Windows都能使用
# kylin
[root@oldboy99-Kylin /server/scripts]# nslookup jd.com
Server:		223.5.5.5
Address:	223.5.5.5#53Non-authoritative answer:
Name:	jd.com
Address: 106.39.171.134
Name:	jd.com
Address: 211.144.27.126
Name:	jd.com
Address: 111.13.149.108
Name:	jd.com
Address: 211.144.24.218
;; connection timed out; no servers could be reached# windows
[D:\~]$ nslookup jd.com
非权威应答:
服务器:  public1.114dns.com
Address:  114.114.114.114名称:    jd.com
Addresses:  106.39.171.134211.144.27.126211.144.24.218111.13.149.108

2.6 fping

  • 批量ping
[root@iZ2ze7mths8vcox9zf7hkfZ ~]# fping baidu.com jd.com 211.144.27.126
baidu.com is alive
jd.com is alive
211.144.27.126 is alive

2.7 mtr

mtrMy Traceroute)是一个结合了 tracerouteping 功能的动态网络诊断工具,用于实时监测网络路径的连通性和延迟情况。

  • -r:报告模式
  • -c:指定发送的数据包数量
  • 默认有路由追踪功能

在这里插入图片描述

[root@oldboy99-Kylin /server/scripts]# mtr --tcp -r -c 2 www.baidu.com
Start: 2025-06-03T21:22:59+0800
HOST: oldboy99-Kylin              Loss%   Snt   Last   Avg  Best  Wrst StDev1.|-- _gateway                   0.0%     2    0.8   0.5   0.3   0.8   0.42.|-- ???                       100.0     2    0.0   0.0   0.0   0.0   0.03.|-- 110.242.69.21             50.0%     2  1183. 1183. 1183. 1183.   0.0

2.8 iperf

iperf 是一个用于测量网络带宽性能的开源工具,支持 TCPUDP 流量测试。它采用客户端-服务器模式,能够准确评估网络吞吐量、延迟和丢包率。

服务端:iperf -s

[root@iZ2ze7mths8vcox9zf7hkfZ ~]# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------
[  1] local 172.28.248.55 port 5001 connected with 123.117.19.236 port 10133
[ ID] Interval       Transfer     Bandwidth
[  1] 0.0000-22.0049 sec  1.25 MBytes   477 Kbits/sec

客户端:iperf -c 服务端ip

[root@oldboy99-Kylin /server/scripts]# iperf -c 8.140.211.162
------------------------------------------------------------
Client connecting to 8.140.211.162, TCP port 5001
TCP window size:  425 KByte (default)
------------------------------------------------------------
[  3] local 10.0.0.200 port 58398 connected with 8.140.211.162 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-12.1 sec  1.25 MBytes   869 Kbits/sec

2.9 网络命令总结

命令LinuxWindows
查询IP地址ip a
ifconfig
ipconfig
检查端口号ss
netstat
lsof
nc
telnet
nmap
netstat -ant
检查连接情况ss/netstat -antnetstat -ant
测速iftop
nethogs
DNS解析dig
host
nslookup
nslookup
路径追踪traceroute -nI
mtr
tracert
检查链路是否畅通ping
fping
ping
检查路由表ip ro
route -n
route print
测试带宽iperf

3. 抓包

  • wireshark过滤各种协议时,注意https的底层协议是tsl

3.1 常见过滤表达式-wireshark

与:and/&&

或:or/||

非:!

  • 过滤53端口:tcp.port==53 or udp.port==53
  • 过滤80端口,并且是百度的域名:tcp.port==80 and http ~ "www.baidu.com"
  • 原端口和目标端口:tcp.srcport==80tcp.dstport==80
  • 过滤指定ip:ip.addr==10.0.0.100
  • 过滤原ip和目标ip:ip.src==10.0.0.100ip.dst==10.0.0.200

3.2 tcpdump

网络抓包分析工具,能够捕获和解析网络接口上的数据包

  • -i:指定网卡

3.2.1 过滤协议

  • tcpdump tcp
  • tcpdump -vvv -nnn tcp
  • -vvv:三级详细模式:显示基本信息、更底层的协议信息
  • -nnn:禁用名称解析(主机名、端口),完全禁用所有解析,确保输出为原始数字格式,提升解析速度

3.2.2 过滤指定端口号

  • tcpdump -nnn port 80
  • tcpdump -nnn src port 80,过滤原端口为80的数据包
  • tcpdump -nnn dst port 80,过滤目的端口为80的数据包

3.2.3 过滤指定IP

  • tcpdump -nnn host 10.0.0.200

3.2.4 过滤指定IP和端口

  • tcpdump -nnn src host 10.0.0.200 and port 12345
  • tcpdump -nnn dst host 10.0.0.200 and port 12345

3.3 tcpdump+wireshark抓包流程

  • pcapPacket Capture)是存储网络原始数据包的标准文件格式,由 tcpdumpWireshark 等工具生成,用于记录和分析网络流量。
  • -w:将命令结果保存为文件
[root@oldboy99-Kylin /server/scripts]# tcpdump -nnn src host 10.0.0.200 and port 12345 -w test.pcap
dropped privs to tcpdump
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
^C3 packets captured
5 packets received by filter
0 packets dropped by kernel
[root@oldboy99-Kylin /server/scripts]# ls -l test.pcap 
-rw-r--r-- 1 tcpdump tcpdump 382  63 22:21 test.pcap
  • 将test.pcap文件导入wireshark,直接打开文件即可

在这里插入图片描述

3.4 案例:远程连接失败与抓包分析

3.4.1 关闭公有云安全组的远程连接端口规则

在这里插入图片描述

3.4.2 wireshark抓取本地网卡数据包,并过滤公网云IP

在这里插入图片描述

3.4.3 去云服务器上用tcpdump -vvv -nnn port 22抓包

在这里插入图片描述

  • 无数据包

3.4.4 开放安全组,再抓包

在这里插入图片描述

  • 抓包成功

4. IP与子网掩码

  • IP地址的组成:网络位+主机位
  • 根据网络位不同划分IP地址
类别IP取值范围
A类型1.0.0.0~126.255.255.254
B类型128.0.0.1~191.255.255.254
C类型192.0.0.1~223.255.255.254
D类型224.0.0.1~239.255.255.254
E类型Research
  • 子网掩码可以查看网络中最多能有多少主机

5. 思维导图

【金山文档】 思维导图 https://www.kdocs.cn/l/co3I7PtpTYQX

6. 踩坑记录

1. #########: command not found

脚本:

在这里插入图片描述

  • note存储的不是命令,而是命令的结果,即‘‘####’’
  • 所以最后${note}表示执行####,所以命令行报错:无此命令

改进:

在这里插入图片描述

或者

在这里插入图片描述

2. 脚本和命令行的区别

问题现象:

在这里插入图片描述

  • 原因

脚本中命令先按字符串存储,再解析;

命令行会直接解析并输出

3. 查看硬盘数量及信息

lsblk -d -o NAME,ROTA,SIZE,MODEL

[root@oldboy99-Ubuntu ~]# lsblk -d -o NAME,ROTA,SIZE,MODEL
NAME  ROTA  SIZE MODEL
loop0    1 63.8M 
loop1    1   87M 
loop2    1 63.8M 
loop3    1 89.4M 
loop4    1 44.4M 
loop5    1 50.9M 
sda      1    1G VMware Virtual S
sdb      1  100G VMware Virtual S
sr0      1    2G VMware Virtual SATA CDRW Drive

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词