本文介绍一下两个常用的Linux命令,netstat以及ss,这两个命令均用来查看主机的网络相关的信息。
Netstat
netstat 是Unix系统上用于显示各种网络统计信息的命令,目前大多数的Linux系统默认自带该命令。该命令用于显示系统网络连接、路由表等,可帮助管理员深入了解系统的网络活动。如下将介绍 netstat 命令的基本用法以及一些常见的选项。
概况
所有的命令都可以使用-h显示器参数的解释,如下图1:
图1
图1可以看出该命令的基本功能,包括显示路由表,显示网络接口信息,显示网络统计信息,显示TCP/UDP信息等。只要和网络相关的信息,第一时间考虑该命令。
显示 TCP/UDP 连接
如果不加过滤的情况下,netstat -a显示的是所有的socket的信息。在Unix系统以及Linux系统中socket不仅可以用来作为网络访问的连接只用,还可以用于系统之间的进程通信。但是通常情况下使用netstat的目的在于查看网络连接情况,如下图2:
图2
图2可以看到,分别使用-t以及-u的参数进行过滤就可以显示TCP和UDP的连接情况。
显示监听状态的连接
有的系统连接较多,过滤就显得非常的重要,比如只关注处于listen状态的连接,如下图3:
图3
图中使用-l参数显示处于listen状态的连接,同时使用了-n参数,图1中-n参数的解释为不做名字的解析,对比图2可以看到使用了-n参数之后IP地址和端口号会直接显示,如果不使用-n参数,IP地址和端口号则会使用相应的名称替代。
显示 PID 和程序名称
很多时候想要查看对应的连接是由那个进程创建的,即关联对应的进程号和名称,如下图4:
图4
图4使用-p 选项用于显示创建该连接的进程 PID 和程序名称,该参数非常实用,实用频率较高。
显示路由表
该命令的-r参数具有和route同样的功能,如下图5:
图5
route能够设置路由表,netstat只具备显示功能。
显示接口统计信息
对于简单的统计每个接口网络的收发情况,可以使用-i参数,如下图6:
图6
-i 选项用于显示接口的统计信息,包括收发的数据包数量、错误等,更为细粒度的统计往往需要借助特定的程序。
ss 命令
ss(Socket Statistics) 由Linux的iproute2套件提供,专注于显示套接字相关的统计信息,是Linux 系统中一个强大的命令,能够平替netstat命令。
概况
所有的命令都可以使用-h显示器参数的解释,如下图7:
图7
图7可以看出该命令的基本功能,很多的参数和netstat是一致的,包括-t显示TCP连接,-u显示UDP连接,-n不做名字解析,-l显示处于监听状态的连接,-p显示集成信息,如下图8.9所示:
图8
图9
除了和netstat相同的功能之外,ss还提供更多的功能,例如-b可以使用BPF的过滤功能。
netstat VS ss
ss(Socket Statistics)和netstat(Network Statistics)都是用于显示网络相关信息的命令,通常来说ss命令在性能上通常比netstat更优越,因为它直接与Linux内核的套接字相关统计信息进行交互,而不是解析/proc文件系统中的信息。netstat命令随着时间的推移,已经被标记为过时,一些新的Linux发行版甚至可能不再默认安装它。如果使用的是较新的Linux发行版,推荐使用ss,因为它更现代、性能更好。但在某些情况下,如果你需要在旧系统上执行相同的任务,netstat仍然可以提供所需的信息。
本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。