Linux命令-netstat命令
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用netstat查一查为什么会出现这些情况了。
1.命令格式:
1 | netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip] |
查看端口占用情况 : netstat -tln|grep 8080
查看端口占用情况 : netstat -an|grep 8080
2.命令功能:
netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
3.命令参数:
1 | -a或–all, 显示所有连线中的Socket。 |
4.使用实例:
实例1:无参数使用
1 | netstat |
说明:
1 | 从整体上看,netstat的输出结果可以分为两个部分: |
实例2:列出所有端口
1 | 显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请(LISTENING)的那些连接。 |
实例3:显示当前UDP连接状况
1 | netstat -nu |
实例4:显示UDP端口号的使用情况
1 | netstat -apu |
实例5:显示网卡列表
1 | netstat -i |
实例6:显示组播组的关系
1 | netstat -g |
实例7:显示网络统计信息
1 | netstat -s |
说明:
1 | 按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。 |
实例8:显示监听的套接口
1 | netstat -l |
实例9:显示所有已建立的有效连接
1 | netstat -n |
实例10:显示关于以太网的统计数据
1 | netstat -e |
说明:
1 | 用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量) |
实例11:显示关于路由表的信息
1 | netstat -r |
实例12:列出所有 tcp 端口
1 | netstat -at |
实例13:统计机器中网络连接各个状态个数
1 | netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' |
实例14:把状态全都取出来后使用uniq -c统计后再进行排序
1 | netstat -nat |awk '{print $6}'|sort|uniq -c |
实例15:查看连接某服务端口最多的的IP地址
1 | netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F: '{print $4}'|sort|uniq -c|sort -nr|head -20 |
实例16:找出程序运行的端口
1 | netstat -ap | grep ssh |
实例17:在 netstat 输出中显示 PID 和进程名称
1 | netstat -pt |
说明:
1 | netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。 |
实例18:找出运行在指定端口的进程
1 | netstat -anpt | grep ':16064' |
说明:
1 | 运行在端口16064的进程id为24596,再通过ps命令就可以找到具体的应用程序了。 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LXY's blog!