Linux运维工程师必知:如何在 Linux 中使用网络命令netstat?

简介: 【10月更文挑战第21天】

netstat 是 Linux 和其他类 Unix 操作系统中最常用的网络命令之一。它用于显示有关网络连接、路由表、接口统计信息、伪装连接和多播成员的信息。对于系统管理员和网络工程师来说,netstat 是诊断网络问题、查看当前网络活动以及获取系统网络配置状态的关键工具。

本文将详细介绍 netstat 命令的各个方面,包括其功能、常见用法、输出解读以及如何使用 netstat 进行网络故障排除。我们还将探讨一些高级用法,帮助您在实际工作中更好地应用这个强大的工具。

netstat 命令简介

netstat 是网络统计的缩写,它提供了与网络子系统相关的各种统计信息。通过 netstat,您可以监控以下内容:

  • 网络连接的状态(TCP、UDP、ICMP 等)
  • 网络接口的流量统计
  • 系统的路由表
  • 监听的套接字(sockets)
  • 网络协议的使用情况

netstat 的功能非常广泛,因此理解和熟练使用它能够极大地提高网络管理的效率。

netstat 的基本语法如下:

netstat [选项]

常见的选项包括:

  • -a:显示所有的连接,包括监听和非监听的。
  • -t:仅显示 TCP 连接。
  • -u:仅显示 UDP 连接。
  • -n:以数字形式显示地址和端口号。
  • -r:显示路由表。
  • -i:显示网络接口统计信息。
  • -s:显示每个协议的统计信息。
  • -p:显示哪个进程使用了哪个套接字。

使用 netstat 查看网络连接

显示所有的网络连接

要查看系统上所有的网络连接,可以使用 netstat -a 命令。这个命令列出所有的 TCP 和 UDP 连接,包括正在监听的服务。示例如下:

netstat -a

输出通常会包括如下内容:

  • Proto:协议类型(TCP 或 UDP)。
  • Recv-Q:接收队列中的字节数。
  • Send-Q:发送队列中的字节数。
  • Local Address:本地端的 IP 地址和端口号。
  • Foreign Address:远程端的 IP 地址和端口号。
  • State:连接的状态(例如 ESTABLISHED, LISTEN 等)。

显示 TCP 连接

如果只想查看 TCP 连接,可以使用 -t 选项。例如:

netstat -t

显示 UDP 连接

类似地,您可以使用 -u 选项仅查看 UDP 连接:

netstat -u

使用数字显示地址和端口

通常,netstat 会将地址和端口号解析为主机名和服务名,但有时您可能需要直接查看数字形式的地址和端口号,这时可以使用 -n 选项:

netstat -an

查看网络接口信息

显示网络接口统计

netstat 还可以用于查看网络接口的统计信息。使用 -i 选项可以显示每个网络接口的详细统计信息,例如传输的包数量、错误数等:

netstat -i

查看详细的接口信息

要查看更详细的接口统计信息,可以使用 -ie 选项。这将显示接口的错误信息、MTU(最大传输单元)等内容:

netstat -ie

查看系统的路由表

显示系统的路由表

使用 -r 选项可以显示当前系统的路由表。路由表显示了网络数据包如何在网络中被路由到不同的目的地:

netstat -r

输出将包括以下列:

  • Destination:目标网络或主机。
  • Gateway:到达目标的网关。
  • Genmask:子网掩码。
  • Flags:标志位,表示路由的状态,例如 U(Up)、G(Gateway)等。
  • Iface:使用的网络接口。

监控协议统计信息

显示协议的统计信息

netstat -s 选项可以显示各种网络协议的统计信息,例如 TCP、UDP、ICMP 等。这个命令对于分析网络流量和检测异常非常有用:

netstat -s

显示特定协议的统计信息

如果您只对某个特定协议的统计信息感兴趣,可以在 -s 后面加上协议名称。例如,要查看 TCP 的统计信息,可以使用:

netstat -st

要查看 UDP 的统计信息,可以使用:

netstat -su

查看监听的套接字

显示正在监听的服务

netstat -l 命令用于显示正在监听的套接字,这些套接字通常表示系统上正在运行的服务器服务。示例如下:

netstat -l

按协议过滤监听套接字

可以使用 -lt-lu 选项分别过滤 TCP 和 UDP 的监听套接字:

netstat -lt  # 仅显示正在监听的 TCP 套接字
netstat -lu  # 仅显示正在监听的 UDP 套接字

显示套接字的进程信息

显示使用套接字的进程

netstat-p 选项允许显示哪个进程使用了哪个网络连接。这在追踪网络活动时非常有用:

netstat -p

请注意,您可能需要超级用户权限才能查看所有进程的信息,因此通常需要使用 sudo

sudo netstat -p

输出的最后一列将显示进程的 PID(进程 ID)和进程名称。

使用 netstat 进行网络故障排除

检查网络连接状态

netstat 可以帮助您快速检查系统上的网络连接状态。例如,您可以使用以下命令查看系统上所有的 ESTABLISHED 连接:

netstat -atn | grep ESTABLISHED

这对于确认某个服务是否正在正常通信非常有帮助。

检测端口冲突

如果怀疑两个服务之间存在端口冲突,可以使用 netstat 来检查哪个服务正在占用特定端口。例如,要检查端口 80 上的服务,您可以使用:

sudo netstat -tuln | grep :80

监控网络接口流量

使用 netstat -i 可以实时监控网络接口的流量情况,结合 watch 命令,您可以实时刷新查看接口流量:

watch -n 1 netstat -i

这个命令每秒刷新一次网络接口的统计信息,非常适合监控网络接口的实时流量。

高级用法

结合 grep 进行过滤

netstat 生成的大量输出有时可能会让人眼花缭乱。结合 grep 命令可以有效过滤出有用的信息。例如,查找所有与特定 IP 地址相关的连接:

netstat -an | grep 192.168.1.1

结合 awk 进行统计分析

使用 awk 可以对 netstat 的输出进行更复杂的统计分析。例如,统计每种连接状态的数量:

netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n

这个命令将显示每种连接状态的连接数,如 ESTABLISHED、TIME_WAIT、CLOSE_WAIT 等。

结合 cron 进行定时监控

netstat 命令放入 cron 任务中,可以实现对网络状态的定时监控。例如,每五分钟记录一次当前的网络连接状态:

*/5 * * * * /bin/netstat -an > /var/log/netstat.log
目录
相关文章
|
7天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
33 14
Linux 10 个“who”命令示例
|
16天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
30 9
|
14天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
20天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
64 3
|
7天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
8天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
31 10
|
10天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
38 10
|
10天前
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。
|
11天前
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。
|
8天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们日常生活中不可或缺的一部分。本文将深入探讨网络安全漏洞、加密技术和安全意识等方面的问题,并提供一些实用的建议和解决方案。我们将通过分析网络攻击的常见形式,揭示网络安全的脆弱性,并介绍如何利用加密技术来保护数据。此外,我们还将强调提高个人和企业的安全意识的重要性,以应对日益复杂的网络威胁。无论你是普通用户还是IT专业人士,这篇文章都将为你提供有价值的见解和指导。