一篇就弄懂Linux netstat和tcpdump的常见用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一篇就弄懂Linux netstat和tcpdump的常见用法相关的知识,希望对你有一定的参考价值。

参考技术A Netstat是一款CLI工具,它可以列出系统上所有的网络连接情况,包括tcp、udp和其他unix网络socket,另外它还能列出处于监听状态的socket。当Linux网络或系统排查问题时,netstat基本上是必用的工具之一,下面开始对netstat的常见用法加以说明。

用途:列出tcp、udp和其他unix套接字下所有的连接,往往信息提供的不够直观和详细,因此也常通过搭配其他参数一起使用。

相信很多用户已经发现,在执行上述命令的时候结果查询的不是很快,这是因为netstat默认会使用反向域名解析,会把对应的IPv4地址解析对应到IPv6或者主机名,如果IP地址信息足够满足需求时,大可以禁用反向域名解析,加上 -n 参数。

如果是查看udp协议下的连接,则用 netstat -nlu 。

常常会遇到如下场景:我们提前预知某服务程序开放某监听端口,于是想查看对应连接的信息,包括进程名、进程ID甚至执行owner信息等,可加入 -p , -e 参数来实现。

netstat -s 可以打印出网络统计数据,包括某个协议下的收发包数量;
netstat -rn 可查看路由信息,效果等同于 route -n ;
netstat -i 或者 netstat -ie 可查看网络接口信息,且后一条命令效果等同于 ifconfig -a ;

用简单的话来定义tcpdump,就是: dump the traffic on a network ,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息,是一个十分常用的Linux抓包工具。

在介绍tcpdump常用命令之前先提一个小建议,每个tcpdump命令的末尾加上 -s 0 -nvvvtttt 参数,简单解释一下参数的含义:

另外还可以结合自己的需要选择要不要加上 -x -xx -X -XX (输出会打印每个包的头部数据,且会以16进制或者ASCII码形式打印每个包的数据)等参数

如下仅简单说明一下上文没提到的用法:

以上是关于一篇就弄懂Linux netstat和tcpdump的常见用法的主要内容,如果未能解决你的问题,请参考以下文章

想要弄懂GROUP BY看这一篇就够了

搞懂HashMap,这一篇就够了

linux 磁盘分区和挂载看这一篇就够了

Git 看这一篇就够了

Linux命令大全总结(看这一篇就够了)

linux常用的命令,学习linux,这一篇就够了