Netstat 工具详细介绍及常见指令应用
Netstat(Network Statistics)是一个常用的命令行工具,用于显示网络连接、路由表、接口统计信息、伪装连接等信息。它可以帮助用户监控计算机的网络状态,尤其在诊断网络问题时非常有用。Netstat 可以显示当前所有的 TCP 和 UDP 连接、监听的端口、传输数据量等。
常见的 Netstat 命令选项及其用途
Netstat 工具的常见选项包括 -t、-u、-n、-l 和 -p,其中每个选项对应不同的功能,常用于不同的网络诊断场景。接下来我们将逐一解释这些选项。
-
-t 选项:显示 TCP 连接
-t 选项用于 显示 TCP 协议的连接。TCP 是一种面向连接的协议,因此它的连接状态可以反映出网络中正在进行的可靠通信。netstat -t
该命令会显示当前所有的 TCP 连接,包括每个连接的本地地址、远程地址、连接状态(如 ESTABLISHED 表示已建立连接)等。
示例输出:
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 52 192.168.1.10:22 192.168.1.15:50528 ESTABLISHED
-
-u 选项:显示 UDP 连接
-u 选项用于 显示 UDP 协议的连接。UDP 是一种无连接的协议,Netstat 通过此选项显示当前的 UDP 套接字(Sockets)信息。netstat -u
该命令会显示当前所有的 UDP 连接,注意由于 UDP 是无连接的协议,State 列通常不会显示连接状态。
示例输出:
Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:53 0.0.0.0:* udp 0 0 192.168.1.10:68 0.0.0.0:*
-
-n 选项:显示数字格式的地址和端口
默认情况下,Netstat 会将 IP 地址和端口号转换为主机名和服务名(例如显示 www.google.com 和 http)。-n 选项会强制 Netstat 显示 数字格式的地址和端口,而不进行域名解析,能加快显示速度并避免 DNS 查询。netstat -n
该命令会显示 IP 地址和端口号的数字形式,而不是解析为主机名和服务名。
示例输出:
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.168.1.10:22 192.168.1.15:50528 ESTABLISHED udp 0 0 192.168.1.10:68 0.0.0.0:*
-
-l 选项:显示监听中的端口
-l 选项用于 显示所有正在监听的端口。它帮助你查看哪些服务或应用程序正在监听指定端口,等待外部连接。netstat -l
该命令会显示当前所有在本地监听的端口,包括 TCP 和 UDP 端口。通常,监听状态的端口会标记为 LISTEN。
示例输出:
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:53 0.0.0.0:*
-
-p 选项:显示进程标识符(PID)及程序名称
-p 选项可以显示与每个连接相关的 进程标识符(PID)和程序名称。这个选项在排查哪些进程正在使用网络资源时非常有用,尤其是在系统出现网络问题时。netstat -p
该命令会显示每个连接的进程 ID 和程序名称。注意,执行此命令需要 root 权限或者是该进程的用户权限。
示例输出:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd udp 0 0 0.0.0.0:53 0.0.0.0:* 6789/dnsmasq
在这个输出中,1234/sshd 表示 sshd 进程(SSH 服务)使用了端口 22,而 6789/dnsmasq 表示 dnsmasq 服务使用了端口 53。
-
综合应用:-tunlp 选项组合
通过将 -t、-u、-n、-l 和 -p 选项组合使用,Netstat 可以非常全面地显示网络连接的状态。常用的组合命令为 -tunlp,它可以帮助你查看所有 TCP 和 UDP 连接,以及正在监听的端口,并显示相关的 PID 和程序名称。netstat -tunlp
该命令会显示所有的 TCP 和 UDP 连接,包括监听端口和进程信息。
示例输出:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd tcp 0 0 192.168.1.10:8080 0.0.0.0:* LISTEN 5678/nginx udp 0 0 0.0.0.0:53 0.0.0.0:* 6789/dnsmasq
在这个输出中,你可以看到哪些端口正在被哪些程序监听,如 sshd 正在监听端口 22,nginx 正在监听端口 8080,dnsmasq 正在监听 53。
总结
Netstat 是一个功能强大的网络工具,它可以帮助你查看当前的网络连接、监听的端口、进程信息等。通过常见的选项如 -t、-u、-n、-l 和 -p,你可以方便地进行网络诊断和分析。在使用时,结合不同的选项,可以帮助你更加全面地了解计算机的网络状态。