【工作必备知识】Linux系统netstat命令详解

秋意零 2024-6-11 258 6/11

【工作必备知识】Linux系统netstat命令详解

【工作必备知识】Linux系统netstat命令详解

一天在K8S环境部署项目是,部署之后项目始终访问不了。检查了是否开放端口、ingress配置、内部是否能访问等

最后万没想到,端口只能本地访问。一般来说项目端口开放了都是0.0.0.0,惯性思维导致了没去检查。。正好来说说 netstat 吧

如果 Local Address 下面的值是 0.0.0.0:5000表示所有IP都能和5000端口通信,如果是 127.0.0.1:5000只有本地网卡 IP 是 127.0.0.1 的才能与 5000 端口通信

PS:0.0.0.0:5000和 :::5000表示在所有 IPv4 和 IPv6 地址上监听的端口 5000

netstat 命令介绍

netstat 网络连接状态查看命令,可以查看的网络中的传输层(TCP、UDP)信息

命令参数:

  • -a--all:显示所有网络连接(包括监听和非监听的)和监听端口
  • -t--tcp:仅显示TCP连接
  • -u--udp:仅显示UDP连接
  • -n--numeric:显示IP地址和端口号,而不是进行域名解析和端口服务名称解析
  • -r--route:显示路由表
  • -l--listening:显示监听中的套接字(等待连接的端口)
  • -p(在某些系统中需要):显示与每个连接或监听端口相关的进程ID和进程名称
  • -s--statistics:显示每个协议的统计信息
  • -i--interfaces:显示网络接口的信息,包括收发数据包的统计
  • -c--continuous:持续列出网络状态,可以配合 -w(刷新时间间隔)使用
  • -b(在Windows中):显示正在创建网络连接或监听端口的可执行文件的路径

参数解析

netstat 命令默认输出分三个区域(见下),目前我只关注Active Internet connections这块信息,其它区域目前作为了解吧

下面介绍两种情况,带参数运行和不带参数运行。不带参数运行netstat命令,服务器的监听端口连接的信息不展示。所以一般使用带参数,展示监听信息

运行 netstat 命令不带任何参数

1)Active Internet connections (w/o servers) :活动Internet连接(不带服务器)

这部分显示了当前活跃的互联网连接,但不包括作为服务器监听的连接

  • Proto: 协议类型,如 TCP 或 UDP
  • Recv-Q: 接收队列的长度,即等待进程读取的数据量
  • Send-Q: 发送队列的长度,即等待网络传输的数据量
  • Local Address: 本地IP地址和端口号
  • Foreign Address: 连接的远程IP地址和端口号
  • State: 连接的状态,如 ESTABLISHED、TIME_WAIT 等(包含TCP三次和四次挥手过程中的状态)

2)Active UNIX domain sockets (w/o servers):活动UNIX域套接字(不带服务器)

这部分列出了活跃的UNIX域套接字连接(也称为本地套接字),同样不包括监听中的套接字。UNIX域套接字用于同一台机器上进程间的通信。信息包括:

  • Proto: 协议,对于UNIX域套接字通常是 unix
  • RefCnt: 引用计数,表示有多少进程引用这个套接字
  • Flags: 套接字标志
  • Type: 套接字类型,如 SOCK_STREAM 或 SOCK_DGRAM
  • State: 套接字状态
  • I-Node: 使用该套接字的文件系统的索引节点
  • Path: 套接字在文件系统中的路径

3)Active Bluetooth connections (w/o servers):活动蓝牙连接(不带服务器)

这一段展示的是当前活跃的蓝牙连接信息,如果没有显示具体内容,意味着没有活跃的蓝牙连接或者信息被省略了

  • Proto: 蓝牙协议类型
  • Destination/Source: 目标和源地址
  • State: 连接状态
  • PSM: 服务发现协议 (Service Discovery Protocol) 端口
  • DCID/SCID: 数据通道标识符
  • IMTU/OMTU: 输入/输出最大传输单元
  • Security: 安全设置或级别

运行 netstat -a 命令

1)Active Internet connections (servers and established):活动的Internet连接(服务器和已建立的)

正在展示当前系统中所有活跃的互联网连接信息,这既包括了正在监听(server,即等待客户端连接的)的套接字,也包括已经建立的客户端与服务器之间的连接

2)Active UNIX domain sockets (servers and established):活动UNIX域套接字(服务器和已建立)

这里会列出所有的UNIX域套接字连接,包括那些作为服务器监听的套接字。内容类似于之前无服务器输出的解释,但会包括处于监听状态的本地套接字,例如数据库连接、进程间通信等

3)Active Bluetooth connections (servers and established):活动蓝牙连接(服务器和已建立)

如果有蓝牙相关的网络活动,这部分会列出所有活跃的蓝牙连接以及监听中的蓝牙服务器。内容将包括连接的协议信息、状态、参与的设备地址、安全设置等,类似于网络连接和UNIX域套接字的信息展示

更多netstat应用信息(重要,建议查看)

点击跳转:【工作必备知识】Linux系统网络诊断与netstat命令 - 秋意零(qiuyl.com)

链接:https://www.qiuyl.com/linux/253

End

【工作必备知识】Linux系统netstat命令详解

这篇文章有用吗?

点击星号为它评分!

平均评分 0 / 5. 投票数: 0

到目前为止还没有投票!成为第一位评论此文章。

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

- THE END -

秋意零

10月13日22:14

最后修改:2024年10月13日
0

非特殊说明,本博所有文章均为博主原创。

共有 2 条评论