NETSTAT命令详解

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 端口进行通

信。

常见的状态码及其含义

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

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

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

相关数据

凌雪年表
beat365登录平台

凌雪年表

⌛ 07-23 👁️ 6984
考试要求
beat365登录平台

考试要求

⌛ 08-28 👁️ 1404
美国巴哈(BACH)小号主流型号介绍
beat365网页版登录官网

美国巴哈(BACH)小号主流型号介绍

⌛ 07-08 👁️ 5659
germ旗舰店品牌介绍
365bet手机投注

germ旗舰店品牌介绍

⌛ 10-23 👁️ 4976
企业微信是干什么用的
365bet手机投注

企业微信是干什么用的

⌛ 08-04 👁️ 7601
在山魔王的宫殿里/论龙如何玩弄一名少年
365bet手机投注

在山魔王的宫殿里/论龙如何玩弄一名少年

⌛ 02-02 👁️ 6121