netstat

Posted by BenderFly on May 16, 2019

netstat

参数含义介绍

-a (all)显示所有选项,默认不显示LISTEN相关(本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请(LISTENING)的那些连接。)
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表(本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的 信息。除了显示有效路由外,还显示当前有效的连接。)
-e 显示扩展信息,例如uid等(本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)。)
-s 按各个协议进行统计(本选项能够按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。)
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

常用实例

netstat -a

三种常见的 TCP 状态

a) LISTEN 等待接收连接;
b) ESTABLISHED 一个处于活跃状态的连接;
c) TIME_WAIT 一个刚被终止的连接。它只持续 1 至 2 分钟,然后就会变成 LISTEN 状态。
由于 UDP 是无状态的,所以其 State 栏总是空白。

持续获取有用信息

使用”netstat -a”命令,显示结果可能会有数百行。其实,在这些结果中可以忽略所有”Active Unix domain sockets”以后的内容。因为这些内容是本地内部进程之间的通信,而不是网络连接。 使用以下命令可以避免显示无用信息:

$ netstat --inet -a

该命令的显示结果将只有网络连接,包括所有正处在”LISTEN”状态和”ESTABLISHED”状态的。

要想持续不断地查看随时都在更改的网络信息,可以使用 netstat 命令的”-c”参数,并且将结果存入文件中:

$ netstat --inet -a -c > netstat.txt

这时,查看 netstat.txt 文件即可检查邮件服务、Web 服务和 telnet 服务等的状态变化。

列出所有tcp端口

netstat -at

只显示正在处于监听状态的端口

netstat -l

显示所有端口的统计信息

netstat -s

显示pid/进程名称 netstat -p -p可以与其他参数一起使用 比如 显示tcp的进程id信息

netstat -pt