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

相关推荐
上海云盾第一敬业销售3 小时前
DDOS高防的优点是什么
运维·网络·ddos
The star"'3 小时前
DHC服务器
linux·运维
Janspran3 小时前
嵌入式 - 内核驱动1 - 配置linux驱动
linux·运维·服务器
老黄编程3 小时前
ubuntu 20.04 代号 focal , ubuntu 22.04 代号为 jammy, ubuntu24.04 代号为 noble
linux·运维·ubuntu
陈震_3 小时前
linux系统(ubuntu)安装mysql8详细教程
linux·运维·ubuntu
LoneEon3 小时前
Ubuntu 部署 Harbor 构建企业级私有镜像仓库
linux·运维·ubuntu·docker·harbor
HyperAI超神经4 小时前
【TVM 教程】设置 RPC 系统
开发语言·网络·人工智能·python·网络协议·rpc·tvm
Clownseven4 小时前
忘记云服务器密码怎么办?阿里云/腾讯云/AWS密码重置官方指南
服务器·阿里云·腾讯云
xinxinhenmeihao4 小时前
HTTP代理HTTP(S)、SOCKS5有哪些作用?
网络·网络协议·http