《坚持每天学习一个 linux 命令,今天我们来学习 netstat 命令》

  前言:netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态等,还可以很方便查看本地机器上的外部连接及本地和远程系统连接的状态。

我们先来看一下执行 netstat 命令结束后的输出信息:

从整体上看,输出的信息主要可以分为两部分:

1,Active Internet connections: 称为有源 TCP 连接,其中Recv-Q 和 Send-Q 分别表示接收队列和发送队列,这些数字一般都应该为 0,如果不是表示网络包正在缓冲队列中堆积,这种情况只能在非常少的情况下能看到。

2,Active UNIX domain socket: 称为有源 Unix域套接口(和网络套接字一样,但只能用于本机通信,性能可以提高一倍),Proto 表示连接所使用的协议,RefCnt 表示连接到本套接口上的进程号,Type 显示套接口的类型,State 显示套接口当前的状态,Path 表示连接到套接口的其它进程使用的路径名。

options:

  -a : 显示所有选项,默认不显示 LISTEN 相关

   -t : 仅显示 tcp 相关选项

  -u : 仅显示 udp 相关选项

  -n : 禁止显示别名,能显示数字的全部转换成数字(如将 localhost 显示为 192.168.175.137)

  -l : 仅列出 LISTEN 的服务状态

  -r : 显示路由信息,路由表

  -e : 显示扩展信息,如 uid 等

  -s : 按各个协议进行统计

  -c : 每隔一个固定时间,执行该 netstat 命令

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

step 1 : 列出端口

# 列出所有端口
$ netstat -a # 列出所有 tcp 端口
$ netstat -at # 列出所有 udp 端口
$ netstat -au # 列出监听的端口
$ netstat -l # 列出所有监听 tcp 的端口
$ netstat -lt # 列出所有监听 udp 的端口
$ netstat -lu # 列出所有监听 UNIX 端口
$ netstat -lx

step 2 : 统计端口的统计信息

# 统计端口统计信息
$ netstat -s # 显示 TCP 端口统计信息
$ netstat -st # 显示 UDP 端口统计信息
$ netstat -su

step 3 : 在 netstat 输出中显示 PID 和进程名称,这样我们就可以很方便的发现特定端口运行的程序。

# 显示特定端口运行的程序
$ netstat -p # -p 参数可以与其他参数一同使用
# 显示 tcp 连接中的端口所运行的程序
$ netstat -pt

注1:在用 netstat 命令时,可能会看到 Local Address 和 Foreign Address 都是自己的本机地址,这是因为自己的机器是可以连接到自己的机器的,比如开了代理然后自己浏览器连接到代理服务器上。

注2 : netstat 中的 0.0.0.0 的意思是本机上可用的任意地址,比如 0.0.0.0:13550 表示本机上所有地址的 13550 端口,这样多 ip 计算机就不用重复显示了; TCP 0.0.0.0:80 表示在所有的可用接口上监听 TCP 80 号端口;另外,0.0.0.0 为默认路由,即到达不再路由表里面的网段的包都走这条默认路由。

参考资料:

https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html

one_day_one_linuxCmd---netstat命令的更多相关文章

  1. linux之netstat命令

    netstat用于显示各种网络相关的信息,如网络连接,路由表接口状态(interface statistics), masquerade连接,多播成员(Multicast Memberships)等等 ...

  2. netstat命令

    netstat命令会罗列出当前所有的网络连接.连接统计以及路由表信息.默认情况下,netstat命令将罗列出本地计算机所有开启的端口情况,以及它所连接的外部计算机情况. 端口就像一所房子的房门一样.数 ...

  3. Linux netstat命令详解

    Linux netstat命令详解 一  简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多 ...

  4. 每天一个linux命令(56):netstat命令

    netstat命令​用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UD ...

  5. SS命令和Netstat命令比较

    在早期运维工作中,查看服务器连接数一般都会用netstat命令.其实,有一个命令比netstat更高效,那就是ss(Socket Statistics)命令!ss命令可以用来获取socket统计信息, ...

  6. Linux之netstat命令详解

    简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Member ...

  7. netstat命令详解

    它主要的用法和详解! (netstat -na 命令),本文主要是说Linux下的netstat工具,然后详细说明一下各种网络连接状态. netstat -nat |awk ‘{print $}’|s ...

  8. centos7.0 没有netstat 命令问题

    centos有时安装时,没有安装netstat命令: 直接如下就可搞定: yum install wget 运行  yum install net-tools  就OK了 netstat常用命令: n ...

  9. linux netstat 命令简解

    Netstat 简介: Netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告.常见参数-a (all)显示所有选项,默认不显示LISTEN相 ...

  10. 每天一个linux命令(48):netstat命令

    netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP ...

随机推荐

  1. P 1007 素数对猜想

    转跳点:

  2. C++ 根据日期判断星期几

    int CaculateWeekDay(int y,int m, int d) { ||m==) { m+=; y--; } *m+*(m+)/+y+y/-y/+y/)%; ; }

  3. IOCTL_DISK_GET_DRIVE_GEOMETRY

    IOCTL_DISK_GET_DRIVE_GEOMETRY: 获取磁盘参数 c++实现: #include <Windows.h> #include <winioctl.h> ...

  4. 从Http上返回Json数据

    我们现在先在浏览器访问一下,看到下面返回的结果: 接下来就是大家最喜欢的写代码环节,为了方便演示,我们这里用winform程序.非常简单,我们新建一个窗体程序,点击后,弹出JSON数据即可.界面如下: ...

  5. 利用vim查看日志,快速定位问题《转载》

    利用vim查看日志,快速定位问题 链接:https://www.cnblogs.com/abcwt112/p/5192944.html

  6. cf 763A. Timofey and a tree

    呵呵呵,直接判断是不是一个点连起来所有的特殊边(连接2不同颜色的点的边) (一开始还想各种各样奇怪的dfs...垃圾) #include<bits/stdc++.h> #define LL ...

  7. Centos6 import tensorflow遇到的问题

    1.ImportError: /lib64/libc.so.6: version `GLIBC_2.16' not found 解决办法:升级系统glibc库至2.17版本 首先在网上下载glibc- ...

  8. 干货分享|留学Essay怎么写?

    留学生活其实就是分割成一个个deadline,留学就是赶完一个又一个deadline.朋友同学的革命情感源自赶一个个deadline时候的不离不弃,相知相守,无数个夜里大家群里打卡,你今天Essay写 ...

  9. linux常用命令-关机、重启

    常用命令-关机.重启 命令 含义 reboot 重新启动操作系 shutdown –r now 重新启动操作系统,shutdown会给别的用户提示 shutdown -h now 立刻关机,其中now ...

  10. 使用Linux系统,是一种什么体验?

    导读 同事,从事嵌入式软件开发多年,主要开发环境用的就是linux,最疯狂的一段时间直接把系统装成linux系统,然后在linux下面虚拟一个windows操作系统,主要有些事情必须在windows才 ...