netstat 是一个常用的网络命令行工具,它用于显示网络连接、路由表、接口统计信息等。netstat 在 Windows 系统中也有广泛应用,可以帮助你诊断和监视网络连接、网络接口、端口使用情况等。以下是 Windows 环境下 netstat 命令的详解

1. netstat 基本语法

netstat [选项]

2. 常用的 netstat 选项与参数

(1) netstat 基本命令

  • netstat
    直接输入 netstat,命令会显示所有活动的网络连接及其相应的状态。示例C:\> netstat 输出示例Active Connections Proto Local Address Foreign Address State TCP 192.168.1.101:139 0.0.0.0:0 LISTENING TCP 192.168.1.101:443 203.0.113.1:4445 ESTABLISHED TCP 192.168.1.101:5000 198.51.100.1:80 TIME_WAIT
    • Proto:协议类型(如 TCP、UDP)。
    • Local Address:本地IP地址与端口号。
    • Foreign Address:远程IP地址与端口号。
    • State:连接状态(如 LISTENING、ESTABLISHED、TIME_WAIT 等)。

(2) netstat -a

  • -a:显示所有的连接和监听端口。示例C:\> netstat -a 输出示例Active Connections Proto Local Address Foreign Address State TCP 0.0.0.0:135 0.0.0.0:0 LISTENING TCP 192.168.1.101:139 0.0.0.0:0 LISTENING TCP 192.168.1.101:443 203.0.113.1:4445 ESTABLISHED -a 显示所有的连接,包括监听状态的端口。

(3) netstat -b

  • -b:显示每个连接或监听端口对应的可执行程序(进程)名,通常需要管理员权限。示例C:\> netstat -b 输出示例Active Connections Proto Local Address Foreign Address State PID Image TCP 192.168.1.101:443 203.0.113.1:4445 ESTABLISHED 1624 chrome.exe TCP 192.168.1.101:5000 198.51.100.1:80 TIME_WAIT 2800 firefox.exe -b 帮助你查看哪个程序正在使用某个端口。

(4) netstat -n

  • -n:以数字形式显示地址和端口号,而不是尝试解析为主机名或服务名。示例C:\> netstat -n 输出示例Active Connections Proto Local Address Foreign Address State TCP 192.168.1.101:139 0.0.0.0:0 LISTENING TCP 192.168.1.101:443 203.0.113.1:4445 ESTABLISHED -n 选项可以提高 netstat 的运行速度,因为它不需要进行域名解析。

(5) netstat -o

  • -o:显示每个连接的进程 ID(PID)。可以配合任务管理器来查找对应的进程。示例C:\> netstat -o 输出示例Active Connections Proto Local Address Foreign Address State PID TCP 192.168.1.101:139 0.0.0.0:0 LISTENING 1234 TCP 192.168.1.101:443 203.0.113.1:4445 ESTABLISHED 5678 通过 PID 你可以在任务管理器中查找和管理进程。

(6) netstat -r

  • -r:显示路由表。示例C:\> netstat -r 输出示例Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.101 10 127.0.0.0 255.0.0.0 On-link 127.0.0.1 1 路由表显示了网络路径和默认网关。

(7) netstat -s

  • -s:显示每种协议的统计信息,如 TCP、UDP 等。示例C:\> netstat -s 输出示例Tcp Statistics Active Opens = 12 Passive Opens = 35 Failed Connection Attempts = 0 Reset Connections = 0 Current Connections = 3 该选项帮助查看某些协议(例如 TCP 或 UDP)在系统中的统计数据。

(8) netstat -t

  • -t:仅显示 TCP 连接。示例C:\> netstat -t 输出示例Active Connections Proto Local Address Foreign Address State TCP 192.168.1.101:443 203.0.113.1:4445 ESTABLISHED -t 会过滤掉所有非 TCP 连接,专门显示 TCP 连接信息。

(9) netstat -u

  • -u:仅显示 UDP 连接。示例C:\> netstat -u 输出示例Active Connections Proto Local Address Foreign Address State UDP 192.168.1.101:123 *:* Listening -u 过滤出所有的 UDP 连接。

3. 其他常见用法

(1) 显示特定端口的连接

你可以通过结合 findstr 命令来查找特定端口或地址的连接信息。例如,查找 TCP 端口 443 的连接:

C:\> netstat -an | findstr :443

(2) 查看活动的端口和应用程序

结合 netstat 和 -b 选项可以查看哪些程序占用了哪些端口:

C:\> netstat -anb

(3) 清除 TCP 连接缓存

Windows 系统提供了一些 TCP 连接状态,可以通过 netstat -s 命令查看。若想清除缓存,可以使用 netsh 命令。

netsh interface ip reset

4. 总结

  • netstat 是一个强大的网络诊断工具,可以帮助你查看当前系统的网络连接、服务端口、路由表等信息。
  • 通过使用不同的选项(如 -a-n-b-o 等),你可以深入了解系统的网络活动、发现潜在的问题或监控程序使用的端口。
  • netstat 是网络管理员和安全研究人员日常工作中必不可少的工具之一。