掌握netstat:网络诊断必备命令全解析

netstat(network statistics)是 Windows 和 Linux 系统中用于显示网络连接、路由表、接口统计信息、伪装连接、多播成员等的命令行工具。它常用于排查网络问题和查看当前系统的网络状态。
掌握netstat:网络诊断必备命令全解析_第1张图片


一、基本语法

netstat [选项]

二、常用参数详解与完整示例说明

1. netstat —— 显示所有活动的 TCP 连接

作用:列出所有处于 Established 状态的 TCP 连接。

netstat
示例输出:
Proto  Local Address          Foreign Address        State
TCP    192.168.1.5:50432      104.20.179.44:https    ESTABLISHED
TCP    192.168.1.5:51234      142.251.42.174:https   ESTABLISHED

2. netstat -a —— 显示所有连接和监听端口

作用:显示所有连接(包括监听状态)。

netstat -a
示例输出:
Proto  Local Address          Foreign Address        State
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
TCP    192.168.1.5:50432      104.20.179.44:https    ESTABLISHED
UDP    0.0.0.0:5353           *:*

3. netstat -n —— 显示数字地址和端口号(不解析为名称)

作用:加快输出速度,避免 DNS 查询。

netstat -n
示例输出:
Proto  Local Address          Foreign Address        State
TCP    192.168.1.5:50432      142.251.42.174:443     ESTABLISHED
UDP    0.0.0.0:5353           *:*

4. netstat -s —— 按协议显示统计信息

作用:显示 TCP、UDP、ICMP 和 IP 的统计信息。

netstat -s
示例输出:
IPv4 Statistics:

  Packets Received = 1234567
  Received Header Errors = 0
  Received Address Errors = 0
  Datagrams Forwarded = 0
  Unknown Protocols Received = 0
  Received Packets Discarded = 123
  Received Packets Delivered = 1234444
  Output Requests = 987654

TCP Statistics for IPv4:

  Active Opens = 1234
  Passive Opens = 432
  Failed Connection Attempts = 12
  Reset Connections = 34
  Current Connections = 5
  Segments Sent = 987654
  Segments Received = 1234567
  Segments Retransmitted = 1234

5. netstat -e —— 显示以太网统计信息(如发送/接收的数据包数量)

netstat -e
示例输出:
Ethernet adapter 以太网:

   Bytes                     1234567890
   Unicast packets           123456
   Non-unicast packets       1234
   Discards                  0
   Errors                    0
   Unknown protocols         0

6. netstat -r —— 显示路由表(Windows 中使用;Linux 中用 route print

netstat -r
示例输出:
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.5     25
        127.0.0.0        255.0.0.0        127.0.0.1        127.0.0.1    1
      192.168.1.0    255.255.255.0      192.168.1.5    192.168.1.5    25
    192.168.1.5  255.255.255.255        127.0.0.1        127.0.0.1    25

7. netstat -p —— 指定协议过滤输出(如 tcp, udp)

netstat -p tcp
示例输出:
Proto  Local Address          Foreign Address        State
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
TCP    192.168.1.5:50432      142.251.42.174:https   ESTABLISHED

8. netstat -b —— 显示每个连接关联的可执行程序(需要管理员权限)

netstat -b
示例输出:
Proto  Local Address          Foreign Address        State           PID
TCP    192.168.1.5:50432      142.251.42.174:https   ESTABLISHED     1234
[chrome.exe]

9. netstat -o —— 显示与每个连接关联的进程 ID (PID)

netstat -o
示例输出:
Proto  Local Address          Foreign Address        State           PID
TCP    192.168.1.5:50432      142.251.42.174:https   ESTABLISHED     1234

三、参数表格总结

参数 描述 示例
netstat 默认显示已建立的 TCP 连接 netstat
-a 显示所有连接和监听端口 netstat -a
-n 显示数字形式的地址和端口 netstat -n
-s 显示各协议的统计信息 netstat -s
-e 显示以太网统计信息(收发数据包) netstat -e
-r 显示路由表 netstat -r
-p 指定协议(tcp, udp, icmp 等) netstat -p tcp
-b 显示连接所使用的可执行文件(需管理员权限) netstat -b
-o 显示连接对应的进程 ID(PID) netstat -o

四、组合使用示例

示例 1:查看所有 TCP 监听端口并显示 PID

netstat -ano -p tcp | findstr "LISTENING"
输出:
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING     4
TCP    0.0.0.0:443            0.0.0.0:0              LISTENING     4

可配合任务管理器查找 PID 对应的进程。


示例 2:查看某个端口被哪个程序占用(比如 8080)

netstat -ano | findstr :8080
输出:
TCP    127.0.0.1:8080         0.0.0.0:0              LISTENING     1234

然后使用:

tasklist | findstr 1234

获取该 PID 对应的程序名。


五、小贴士

  • Windows 下运行 netstat 需要管理员权限才能看到完整的进程信息。
  • Linux 下 netstat 已逐渐被 ssip 命令取代,但仍然广泛使用。
  • 使用 findstrgrep 可以对结果进行过滤。

如需进一步帮助,例如:

  • 如何结合 PowerShell 脚本自动分析端口占用
  • 如何在 Linux 中使用 ss 替代 netstat
  • 如何查看 UDP 多播组成员

欢迎继续提问

你可能感兴趣的:(工具,开发,java基础,网络)