当前位置: 首页 > news >正文

NETSTAT命令详解

 1. netstat命令的作用

        netstat(Network Statistics)是一个命令行工具,用于显示网络连接、路由表、接口统计信

息、伪装连接和多播成员等信息。

        这是一个非常典型的“本地回环通信”场景。

        这张图片说明本地有一个服务正运行在6688 端口,并且有多个客户端(名称均为 “Gin(电脑

名)”)正在主动连接这个服务,所有连接都已成功建立(状态为ESTABLISHED),通信状态健

康。


接下来我们详细分解表格中的每一列,并解释其具体意义:

1. 协议 (Proto)

        内容: TCP

        这说明所有连接使用的都是TCP 协议。

        TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。

        我们浏览网页、发送邮件等大多数网络活动都基于TCP,它能保证数据准确、有序地传输。

2. 本地地址 (Local Address)

        内容: 127.0.0.1:6688和 127.0.0.1:49446

        127.0.0.1是本地回环地址(它永远指向当前计算机本身,用于机器内部进程间的网络通信,

数据不会离开本机网卡)。这通常用于本地服务调试或进程间通信。

        :6688和 :49446是端口号

        6688:这是一个监听端口。表示目前在我的电脑上有一个服务程序正在这个端口上等待来自

客户端的连接,扮演着“服务器”的角色。

        49446:这是一个临时客户端端口。当我们电脑上的另一个程序要连接 6688端口的服务时,

操作系统会随机分配一个像这样的高端口号(大于1024)给这个客户端程序使用,扮演着“客户端”

的角色。

3. 外部地址 (Foreign Address)

        内容: Gin:50495, Gin:50496, ..., Gin:49447

        Gin:这个是我系统的主机名(hostname),当然也有可能是其他进程的名称。这里它代表

连接的另一端也是本机。

        :50495, :49447等:这些是客户端程序在发起连接时,操作系统为它们分配的源端口号。每个

连接都有一个独立的源端口。

        最后一行比较特殊,本地地址 49446对应外部地址 49447。这表明有两个进程在通过这两个

端口互相通信。

4. 状态 (State)

        内容: ESTABLISHED

        这是TCP连接状态中最重要的一个。

        “ESTABLISHED” 表示连接已经成功建立,三次握手已经完成,双方可以正在进行或准备进行

数传输。所有连接都处于此状态,说明网络通信非常正常和稳定。

整体情况分析发生了什么

        目前在我的计算机上运行着一个服务端(Server),它绑定在 127.0.0.1:6688端口上。同时,

有多个 Gin 客户端(Client)进程被创建,它们向本机的 6688端口发起连接请求。

        这是一种典型的客户端-服务器(C/S)模型,只不过服务器和客户端都运行在同一台机器

上。

        最后总结一下,上述图片展示了一个完全正常且高效的本地网络通信场景。一个服务正在

6688端口工作,并有多个客户端进程与之保持了活跃的连接,所有连接状态健康。

PS:常见的端口及其功能

        端口是网络通信中应用程序的“门牌号”,用于区分同一台计算机上的不同服务。

端口号

协议

常见服务/功能

20, 21

FTP

文件传输协议(数据端口和控制端口)

22

SSH

安全外壳协议,用于加密的远程登录和管理

23

Telnet

远程登录协议(明文传输,不安全)

25

SMTP

简单邮件传输协议,用于发送邮件

53

DNS

域名系统服务,将域名解析为IP地址

80

HTTP

超文本传输协议,用于传输未加密的网页数据

110

POP3

邮局协议版本3,用于从服务器接收邮件

143

IMAP

互联网消息访问协议,用于管理服务器上的邮件

443

HTTPS

安全的超文本传输协议,在HTTP基础上通过SSL/TLS加密

3306

MySQL

MySQL 数据库服务

3389

RDP

远程桌面协议

        最常见的 80 端口​:它就是 ​HTTP​ 协议的默认端口。

        我们日常通过浏览器访问 http://开头的网站时,默认就是在和服务器上的 80 端口进行通

信。

常见的状态码及其含义

这里需要区分两种“状态码”:

  1. HTTP 响应状态码​:由Web服务器返回,表示一个HTTP请求的成功或失败情况(如 404)。

  2. TCP 连接状态​:表示一个TCP网络连接在其生命周期中所处的阶段(如 ESTABLISHED)。

A. 常见的 HTTP 响应状态码(属于应用层)

状态码

类别

含义说明

200

成功

请求成功,服务器已返回请求的数据。

301

重定向

请求的资源已永久移动到新位置。

302

重定向

请求的资源临时从不同的位置响应。

400

客户端错误

请求有语法错误,服务器无法理解。

401

客户端错误

请求需要用户身份验证。

403

客户端错误

服务器理解请求,但拒绝执行它(权限不足)。

404

客户端错误

服务器无法找到请求的资源​(最常见错误之一)。

500

服务器错误

服务器内部错误,无法完成请求。

502

服务器错误

作为网关或代理的服务器从上游服务器收到了无效响应。

503

服务器错误

服务器当前无法处理请求(由于超载或停机维护)。

B. 常见的 TCP 连接状态(属于传输层,即 netstat中显示的状态)

状态

含义说明

LISTEN

服务器正在监听端口,等待来自客户端的连接请求。

SYN_SENT

客户端已发送连接请求(SYN包),等待服务器的确认。

SYN_RCVD

服务器已收到客户端的SYN包,并发送了自己的SYN+ACK包,等待客户端的最终确认。

ESTABLISHED

连接已建立,双方可以正常进行数据传输。这是正常通信时的状态。​您的图片中所有连接均处于此状态

FIN_WAIT1

应用程序已主动发起关闭连接请求(发送FIN包)。

FIN_WAIT2

主动关闭方已收到对方对第一次FIN包的确认(ACK),正在等待对方发送FIN包。

TIME_WAIT

连接已关闭,但套接字还在等待一段时间,以确保网络上所有的残留数据包都已消散,防止在新连接中收到旧数据。

CLOSE_WAIT

被动关闭方收到对方的FIN包,并已确认(ACK),正在等待本地应用程序发出关闭指令。

LAST_ACK

被动关闭方在等待对方对自己发送的FIN包的最终确认(ACK)。

CLOSED

连接完全关闭,不再使用。

TCP 连接的状态转换
TCP 连接的生命周期通过“三次握手”建立,通过“四次挥手”关闭,状态在其中转换。
建立连接(三次握手):
客户端发送 SYN→ 客户端进入 SYN_SENT状态。
服务器收到 SYN,回复 SYN+ACK→ 服务器进入 SYN_RCVD状态。
客户端收到 SYN+ACK,回复 ACK→ 双方进入 ESTABLISHED状态,连接建立。
断开连接(四次挥手)(以客户端主动关闭为例):
客户端发送 FIN→ 客户端进入 FIN_WAIT1状态。

        服务器收到 FIN,回复 ACK→ 服务器进入 CLOSE_WAIT状态,客户端进入 FIN_WAIT2状

态。

        服务器处理完剩余数据后,发送 FIN→ 服务器进入 LAST_ACK状态。

        客户端收到 FIN,回复 ACK→ 客户端进入 TIME_WAIT状态,等待一段时间后关闭。服务器

收到 ACK后关闭连接。

http://www.dtcms.com/a/394701.html

相关文章:

  • FFmpeg 5.x 编译 so 文件的记录
  • 以开启https的nginx转发流量到minio
  • StarRocks 各类索引以及存储位置详解
  • PromptPilot 技术深解,工程化提示词开发如何让大模型准确率大大提高
  • RTX4090:AI与深度学习应用实践的革命性推动者
  • Cursor Multi-Root Workspace 新特性深度实战:一次打开 React 前端 + Go 后端,AI 自动跨项目跳转、联调、写代码!
  • 如何处理单位换算的问题
  • Docker部署 MySQL+Mycat
  • RTX4090:极致性能探索与硬核评测
  • DM物理存储结构及内存结构
  • ASP.NET Core MVC 路由逻辑初探
  • 【Python办公】文字转视频(可自定义颜色、字体大小)
  • 数据洪流时代,如何挑选一款面向未来的时序数据库?IoTDB 的答案
  • python+django/flask的吉安红色旅游平台 红色教育景区展示+图文资讯发布+评论互动功能系统java+nodejs
  • 设计模式(C++)详解——代理模式 (Proxy Pattern)(2)
  • 详解 Kubernetes 命令:kubectl exec -it nginx -- bash 及实战场景
  • Android挂机短信模板和多台手机同步短信模板
  • Solid Edge 转换为 IGS 全流程技术指南:含迪威模型网在线转换方案
  • 设计模式(C++)详解——代理模式 (Proxy Pattern)(1)
  • 聊聊AI agents MCP 开发
  • 【C++进阶】智能指针的使用及其原理
  • 极客天成让统一存储从云原生‘进化’到 AI 原生: 不是版本升级,而是基因重组
  • 【JavaScript 性能优化实战】第五篇:运行时性能优化进阶(懒加载 + 预加载 + 资源优先级)
  • Java基础(十二):抽象类与接口详解
  • 使用《微PE》软件,制作U盘启动盘(PE工具盘)
  • 《初阶 Linux 工具学习:Shell运行原理以及Linux权限讲解》
  • 树链剖分(模板 + 思路)
  • 医疗数据互操作性与联邦学习的python编程方向研究(上)
  • Windows最新摆烂更新,让用户没法看视频了
  • 可配置化App启动弹窗系统:实现后台动态管理与热更新引导-蜻蜓Q系统laravel+vue3-优雅草卓伊凡