【Linux实用工具】netstat命令详解及使用场景

简介

Linux命令Netstat是一个非常实用的网络监测工具,它可以用来监测网络连接状态、查找端口占用情况、分析网络通信状况等等。在服务器管理和网络故障排查中经常用到。今天,左羊就来了解一下这个神器。

安装方式

对于不同版本的Linux系统,安装Netstat的方式也可能不同。下面我们来介绍一些常见Linux版本的安装方式。

  1. Debian/Ubuntu

在Debian或Ubuntu上安装Netstat非常简单,只需打开终端,然后使用下面的命令安装即可:

sudo apt-get install net-tools

如果你的系统中没有安装apt,你需要先执行以下命令:

sudo apt-get update
  1. CentOS/RHEL/Fedora

对于CentOS、RHEL和Fedora系统,我们需要使用yum命令来安装Netstat。只需打开终端,然后使用下面的命令安装即可:

sudo yum install net-tools

如果你的系统中没有yum,你需要执行以下命令:

sudo yum update
  1. Arch Linux

如果你使用的是Arch Linux,那么可以使用pacman命令安装Netstat。打开终端,使用下面的命令安装:

sudo pacman -S net-tools
  1. Debian 9 及以后版本

在Debian 9及以后的版本中,Netstat不再默认安装,需要使用ss代替。可以使用以下命令安装ss:

sudo apt-get install -y iproute2

安装完成后,使用以下命令进行网络连接监测:

ss -a

在不同版本的Linux系统上安装Netstat可能存在差异,但以上介绍的方法通常可以适用于大多数系统。根据你的具体系统版本,选择相应的安装方式即可。

基本用法

首先,让我们来看一下Netstat的基本用法,打开终端并输入以下命令:

netstat -a

或者

netstat -an

这样就可以查看所有正在监听的端口,以及服务器的网络连接情况。其中,-a选项表示显示所有端口,而-n选项表示使用数字形式显示网络地址和端口号,这样看起来更加直观。

例如,这里展示的是一台Linux服务器上的所有网络连接情况:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0     52 172.16.28.111:22        114.114.114.114:63552   ESTABLISHED
udp        0      0 172.16.28.111:123       0.0.0.0:*                          
udp        0      0 127.0.0.1:123           0.0.0.0:*                          
udp        0      0 0.0.0.0:123             0.0.0.0:*                          
udp        0      0 0.0.0.0:5353            0.0.0.0:*                          

我们从上到下逐一分析一下:

  • 第一列:协议类型,如tcp、udp等;
  • 第二列:接收队列中的数据大小;
  • 第三列:发送队列中的数据大小;
  • 第四列:本地地址和端口号;
  • 第五列:远程地址和端口号;
  • 第六列:网络连接状态(如LISTEN表示监听状态,ESTABLISHED表示已经建立连接)。

除了以上基本用法,Netstat还有很多其他常用选项,下面我们来简单介绍一下。

  1. netstat -t

此命令将只显示TCP连接。可以将其视为-a的子集。

  1. netstat -u

此命令将只显示UDP连接。需要注意的是,当你运行此命令时,将会看到许多UDP连接。这是正常的,因为UDP并不要求在两端之间建立虚拟电路。

  1. netstat -l

此命令将只显示正在监听的套接字。

  1. netstat -p

此命令显示正在监听的程序。使用此命令将显示Netstat与上面两种命令相比的一个独特的输出。当你使用此命令时,将看到所有程序的Socket接口,程序使用的端口,包括正在监听套接字的程序。

除了以上常用选项,那么还有些选择呢?下面列举几个比较常用的命令选项,以供参考。

  1. netstat -s

此命令将显示网络各种协议被使用的统计信息。

  1. netstat -r

此命令将显示Linux内核的路由表。此命令的输出也可以解释为Linux从网络获得数据包时,如何将数据包路由到目标。

  1. netstat -c

此命令将持续不断地运行,直到以CTRL-C停止。在每行输出中,在Netstat的实时视图下,将显示已建立的连接,以及连接正在进行的状态。

更多命令详见netstat -help

左羊常用的使用场景

以下是一些常见的Netstat应用场景及相应命令:

  1. 监测所有TCP连接

命令:netstat -at

此命令可以查看所有TCP连接信息,包括本地地址、远程地址、连接状态等。

  1. 监测处于LISTEN状态的TCP连接

命令:netstat -at | grep LISTEN

此命令可以查看所有正在监听的TCP连接信息,包括本地地址、远程地址、连接状态等。

  1. 监测某个端口的使用情况

命令:netstat -an | grep :端口号

此命令可用于查找某个端口的占用情况,其中“端口号”是要查询的端口号。

  1. 监测TCP和UDP连接

命令:netstat -au

此命令可以查看所有TCP和UDP连接信息,包括本地地址、远程地址、连接状态等。

  1. 显示与每个进程相关联的端口

命令:netstat -nap

此命令可以查看所有与进程相关联的端口信息,包括占用端口的进程名称、PID等信息。

  1. 监测网络流量

命令:netstat -s

此命令可以查看网络接口的统计信息,包括传输的数据包数量、字节数、错误数量、丢失数量等。

总结

总结来说,Netstat是一个非常实用的网络监测工具,可以在服务器管理和网络故障排查等方面使用。通过学习并灵活运用Netstat,我们可以更好地了解Linux中的网络连接,以及排除网络故障的原因。

参考文献

1. https://www.tecmint.com/20-netstat-commands-for-linux-network-management/
感谢你的观看,YES!


原文始发于微信公众号(左羊公社):【Linux实用工具】netstat命令详解及使用场景

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/187497.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!