【DevOps】Linux 网络命令netstat详解

49 篇文章 0 订阅
34 篇文章 25 订阅

目录

一、netstat 命令的主要功能

常用 netstat 命令及选项

 二、示例和用法

1. 查看所有连接和监听端口

2. 显示端口和进程信息

3. 使用 netstat 查看路由表

4. 查看接口统计

5. 查看服务和协议的统计信息

6. 持续监控网络状态

7. 组合使用 netstat 选项

8. 其他有用的 netstat 用法

三、结论


netstat(网络统计)是一个强大的命令行工具,常用于检查各种网络相关的统计信息,包括接口统计、路由表、网络连接、监听端口等。这个工具在网络问题诊断和性能分析中非常有用。

一、netstat 命令的主要功能

  • 显示所有连接和监听端口

    • 列出所有端口的状态,包括 TCP 和 UDP 端口。
  • 显示路由表

    • 查看本机的路由表。
  • 显示网络接口信息

    • 查看网络接口的状态,包括每个接口的 IP 地址、MTU、网络流量等。
  • 显示统计信息

    • 提供 TCP、UDP、ICMP 和 IP 等协议的详细统计信息。

常用 netstat 命令及选项

  • -a (all)

    • 显示所有连接和监听端口。这包括 TCP 和 UDP 的所有端口。
  • -t (TCP)

    • 仅显示 TCP 连接。
  • -u (UDP)

    • 仅显示 UDP 连接。
  • -n (numeric)

    • 显示 IP 地址和端口号,不使用域名和服务名。这可以加速显示结果,因为避免了 DNS 解析。
  • -l (listening)

    • 仅显示监听中的服务端口(通常用于查找正在运行的服务器)。
  • -p (program)

    • 显示哪个进程正在监听某个端口。这需要 root 权限来查看非当前用户的进程。
  • -r (routing)

    • 显示路由表。
  • -i (interfaces)

    • 显示网络接口统计信息,如接口状态、MTU、以及发送和接收的数据包数。
  • -s (statistics)

    • 显示协议统计信息,如 TCP、UDP、ICMP 和 IP 的统计数据。
  • -c (continuous)

    • 持续输出选定的信息,通常用于监控网络状态的变化。

 二、示例和用法

以下详细介绍了 netstat 的各种实用示例和用法,这些示例能帮助你更好地理解和使用这个命令。

1. 查看所有连接和监听端口

  • 查看所有连接

    netstat -a
    

    这个命令显示所有的连接和监听端口,包括 TCP 和 UDP。这是检测系统上网络活动的一个快速方式。

  • 查看所有 TCP 连接

    netstat -at
    

    使用 -t 选项来限制输出只显示 TCP 协议的连接。

  • 查看所有 UDP 连接

    netstat -au
    

    使用 -u 选项来限制输出只显示 UDP 协议的连接。

  • 查看所有监听端口

    netstat -l
    

    使用 -l 选项来显示所有处于监听状态的端口,这对于查找所有正在运行的服务特别有用。

  • 查看所有监听的 TCP 端口

    netstat -lt
    

    结合 -l 和 -t 来查看所有监听的 TCP 端口。

  • 查看所有监听的 UDP 端口

    netstat -lu
    

    结合 -l 和 -u 来查看所有监听的 UDP 端口。

2. 显示端口和进程信息

  • 显示监听端口及其服务名称

    netstat -l --tcp --programs --numeric-ports
    

    或简写为

    netstat -ltpn
    

    在这里:

    • -l 表示监听
    • -t 表示 TCP
    • -p 表示显示进程信息
    • -n 表示显示数字形式的端口和 IP 地址
  • 查看谁在监听端口 80

    netstat -lnp | grep ':80'
    

    这对于检查哪个进程 (比如 Web 服务器) 正在使用端口 80 非常有用。

3. 使用 netstat 查看路由表

  • 查看系统路由表

    netstat -r
    

    或者

    netstat -rn
    

    这里 -r 选项表示显示路由表,-n 表示使用数字地址。

4. 查看接口统计

  • 查看网络接口的详细信息

    netstat -i
    

    这将列出所有网络接口及其状态,包括 MTU、数据包统计等。

  • 查看更详细的网络接口信息

    netstat -ie
    

    这里 -e 显示扩展信息,如更多的统计数据。

5. 查看服务和协议的统计信息

  • 查看所有协议的统计信息

    netstat -s
    

    这将显示 TCP、UDP、ICMP 等所有支持的协议的统计信息。

  • 查看 TCP 协议的统计信息

    netstat -st
    

    只显示 TCP 协议的统计信息。

  • 查看 UDP 协议的统计信息

    netstat -su
    

    只显示 UDP 协议的统计信息。

6. 持续监控网络状态

  • 持续报告网络连接状态

    netstat -c
    

    使用 -c 持续输出选定的信息,常用于实时监控网络状态。

7. 组合使用 netstat 选项

  • 查找所有处于 ESTABLISHED 状态的连接

    netstat -atn | grep ESTABLISHED
    

    这里通过组合使用 -a-t-n 并结合 grep 命令,你可以过滤出所有建立了的 TCP 连接。

  • 检查特定服务(如 MySQL)使用的端口

    netstat -tulpn | grep mysql
    

    或者

    netstat -tulpn | grep 3306
    

    这对于找出 MySQL 数据库服务监听的端口非常有用(通常是 3306)。

8. 其他有用的 netstat 用法

  • 查看多播组成员资格

    netstat -g
    

    这将列出网络接口的多播组成员资格信息,对于调试多播问题很有帮助。

  • 列出所有端口,包括监听和非监听状态,以及服务名称

    netstat -atunp
    

    这个命令结合了多个选项,提供了一个全面的网络连接视图。

三、结论

netstat 是一个多功能网络工具,可以提供系统连接、路由表、接口计数器等多样的信息。通过上述示例和用法,你可以有效地监控和诊断网络相关的问题和性能瓶颈。不过,随着 Linux 发展,一些新的工具如 ss 和 ip 命令开始取代 netstat,提供了更高的性能和更多的功能。但在很多系统上,netstat 仍然可用,是理解网络状态的一个重要工具。

  • 15
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder加油!

感谢您的认可和支持!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值