如何在GNU / Linux中使用netstat

尝试消除问题的工具

Netstat是一个非常强大的实用程序,它将列出所有TCP和UDP连接,以及当前侦听连接和当前连接的unix套接字连接。尽管许多家庭用户可能不必为此担心,但在线游戏玩家或将来打算托管任何类型服务器的任何人肯定会在某些时候处理端口。

Netstat对安全性和隐私性也很有用,例如,找出哪些程序与互联网“对话”。

使用netstat可能是一个非常简单的过程,或者取决于使用情况,它可能变得非常复杂和繁重。因此,今天我们将看看Netstat的一些更常见的用法。

按照承诺(在我的文章中, 如何在Linux中找到我的网络信息 ?')我将向您介绍netstat命令。此命令是用于发现网络信息(例如路由表,网络连接,接口统计信息,伪装连接和多播成员身份)的非常有用的工具。但是使用起来并不像其他一些“发现”工具(例如ifconfig)那样简单。使用netstat时,您确实确实需要知道您要寻找的内容以及如何找到它。本文将帮助您了解这一点。

安装?

幸运的是,您的发行版应随附 netstat 命令预装。要检查这一点,请打开一个终端窗口(无论如何都将使用netstat)并发出命令 哪个netstat 。此命令应返回类似 / bin / netstat 。这将告诉您该工具已安装以及可执行文件在何处。

Netstat基础

netstat的基本命令如下所示:

netstat参数选项

其中ARGUMENT是您想要的信息的地址族的类型,而OPTIONS是将指定您返回的信息的类型的可选选项。

由于netstat提供了如此多种选择,因此最好先列出一些更有用的选项。

  • :显示所有套接字和路由表条目的状态。
  • C :连续显示信息。
  • d :显示使用DHCP的所有接口的状态。
  • :显示扩展信息。
  • G :显示IPv4和IPv6的组播组成员信息。
  • 一世 :显示所有网络接口的表。
  • :将统计信息限制为已定义的接口。
  • 中号 :显示多播路由表。
  • ñ :将网络地址显示为数字而不是默认符号。
  • p :显示地址解析表。
  • P :将统计信息限制为已定义的协议。
  • [R :显示所有路由表。
  • Ť :显示TCP连接。
  • ü :显示UDP连接。
  • v :使用详细模式进行输出。

因此,让我们看一下如何将它们一起使用。

netstat

此命令本身(无选项)会打印出您当前连接到的主机的一般统计信息。

netstat -an

此命令将显示与主机的所有连接,包括源地址和目标地址以及端口,并将它们显示为数字。

netstat -rn

此命令将以数字形式显示主机的路由表。

netstat -r

该命令将显示主机的路由表。

netstat -natp

此命令将以数字形式显示活动的TCP连接。

netstat -t-监听

这将显示您正在监听的所有tcp端口。

netstat-统计

此命令将显示主机接口的各种统计信息。请注意,此命令将显示很多统计信息。

如您所见,此命令将显示很多信息。最重要的是,您可能需要将该命令传递给less命令,以便更轻松地查看它。完整的命令看起来像netstat --statistics |减。以这种方式使用它可以让您使用箭头键在输出中上下滚动。

Netstat的使用技巧

使用netstat的最基本,最常见的方法之一是检查正在侦听哪些端口

  • netstat -l

这在我刚安装的Antergos系统上给出了类似的内容

netstat -l

或者,如果您希望将搜索重点放在一点上,则可以添加另一个选项以针对不同类型的连接进行特定排序

  • netstat -lt#用于TCP
  • netstat -lu#用于UDP
  • netstat -lx#用于Unix

或者,您可以继续进行光谱的另一端,并列出所有连接

  • netstat -a

如果您愿意的话,请记住另一个有用的选项,就是使用“ n”选项。例如,当使用netstat -n或netstat -ltn时,将不再尝试解析所有主机名,并且仅显示IP地址,如以下示例所示。

netstat-ltn

如您所见,使用“ n”选项后,名称中的localhost被解析为其数值

使用netstat的另一种方法是netstat -ie,即接口的“ i”和“ extended”的“ e”,这将使我们的输出更具可读性。

netstat -ie#这将向我们显示网络接口列表以及有关每个设备的信息。

netstat ie

先进的Netstat技巧

我们想要做的就是告诉netstat为正在监听TCP连接的特定应用程序提供输出。为此,我们发出命令:

  • netstat --tcp-侦听-程序

该命令的输出如下所示:

Proto Recv-Q Send-Q本地地址外部地址统计PID /程序
tcp 0 0 *:ssh ** *:* LISTEN 25469 / sshd
tcp 0 0 *:httpd **:* LISTEN 26754 / httpd
tcp 0 0本地主机:ipp *:* LISTEN-

现在,您实际上可以看到一些有用的信息。在上面的输出中,您可以看到sshd和httpd都在侦听传入的连接。上面只是输出内容的摘要。这个命令非常方便的地方是它将告诉您是否有命令或本地地址在监听不应监听的传入连接。如果找到不应该监听的应用程序,请关闭它以确保安全。

路线

Netstat可以使用以下命令快速打印计算机的内核路由表:

netstat -r

该命令的输出如下所示:

内核IP路由表
目标网关Genmask Genflags MSS窗口irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
默认192.168.1.1 0.0.0.0 UG 0 0 0 eth0

统计

这是netstat工具的便捷工具之一。有了它,您可以准确地找到每种协议的静态信息。基本命令结构为:

netstat-统计

这将为您提供比您想要的更多的信息。假设您只想查看有关TCP协议的统计信息。为此,您可以发出以下命令:

netstat -t-统计

上面命令的输出将包含以下信息:

Tcp:
4343个活动连接口
8个无源连接孔
5次失败的连接尝试
收到178个连接重置
建立了6个连接
收到59075个细分
60033分段发送
转发了76个段
收到0个坏段。
发送了303个重置

或者您也可以使用以下命令获取有关UDP的信息:

netstat -u-统计信息

这将为UDP协议提供类似的输出。

发挥创意

如果要查看连接到服务器的所有唯一IP地址怎么办?您可以使用netstat(以及其他一些工具的帮助)来做到这一点,如下所示:

netstat -nat | awk'{print $ 5}'|切-d:-f1 | sed -e'/ ^ $ / d |优衣库

上述命令的输出将取决于您的计算机/服务器获得的流量。但是它将包括尝试连接到服务器的所有唯一IP地址。

如何查看服务器是否受到DOS攻击呢?您可以使用netstat进行如下操作:
netstat -anp | grep'tcp | udp'| awk'{print $ 5}'|切-d:-f1 |排序| uniq -c |排序-n

上面的命令将列出请求与服务器的连接数量最多的IP地址。如果您看到的数字远远超过应有的数字,则很可能正遭受“拒绝服务”攻击。

最后的想法

Netstat是您永远不会真正认为自己需要的那些工具之一,直到突然之间您需要它。而且知道如何使用它总是很高兴,以防至少在某些基本水平上出现需求。有关如何使用netstat命令及其选项的更多信息,请输入以下内容来查看手册页: 男人netstat

现在轮到你: 检查网络信息的首选实用工具是什么,为什么?让我们在评论中知道!

相关文章