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后关闭连接。

相关推荐
zzzzzz31013 小时前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode13 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220701 天前
如何搭建本地yum源(上)
运维
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz4 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
网络研究院4 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理