> 网络管理 > netstat

netstat 命令指南:检查网络连接和统计信息(遗留)

`netstat` 命令(网络统计)用于在 Linux 和 Unix 系列操作系统中显示网络连接、路由表、接口统计、伪装连接等。它是监控系统网络状态和解决问题的有用工具。**然而,在现代 Linux 系统中,`ss`(套接字统计)命令已取代 `netstat`,提供更快和更强大的功能。因此,建议使用 `ss` 命令。** 通过本指南了解 `netstat` 的基本用法以及为何要转向 `ss`。

netstat 概述

`netstat` 提供有关系统网络活动的各种信息。这对于诊断服务器特定端口是否打开、哪些进程正在使用网络连接、路由路径是否正确等非常有用。然而,由于它是 `net-tools` 包的一部分,IPv6 支持不完善,并且在大规模系统中可能存在性能问题,因此它已被 `iproute2` 包中的 `ss` 命令所替代。

netstat 的主要角色

`netstat` 命令主要用于以下目的:

主要应用领域(过去和部分系统)

  • 检查活动连接: 显示当前所有已设置的 TCP、UDP 连接和监听端口。
  • 检查路由表: 显示定义 IP 数据包传输路径的路由表。
  • 网络接口统计: 提供每个网络接口的包传输和接收统计信息。
  • 进程-端口映射: 检查哪些进程正在使用特定端口。

`netstat` vs `ss`

`netstat` 已使用多年,但现在 `ss` 命令取代了它。建议在新系统中养成使用 `ss` 的习惯。

  • netstat: 遗留工具,基于 `/proc` 文件系统,在大规模连接时可能较慢,IPv6 支持不完善。
  • ss: 现代、快速,直接访问内核的套接字统计,完美支持 IPv6,提供更多过滤选项。

netstat 安装(可选)

某些最新的 Linux 发行版(例如:从 Ubuntu 18.04 开始)可能默认未安装 `netstat`。如有需要,可以安装 `net-tools` 包以使用它。

`netstat` 安装(Debian/Ubuntu)

sudo apt update
sudo apt install net-tools

在 Debian 或 Ubuntu 基础系统上安装包含 `netstat` 的 `net-tools` 包的命令。

主要 netstat 命令选项

`netstat` 命令可以组合各种选项,以详细过滤和显示所需的网络信息。

1. 连接和端口信息

2. 路由表和统计

生成的命令:

请尝试组合命令。

描述:

`netstat` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

通过 `netstat` 命令的各种应用示例,学习如何检查系统的网络连接和统计信息。

检查所有活动 TCP 连接和监听端口

sudo netstat -tulpn

最常用的组合,将 TCP 连接和监听端口以数字地址显示,同时还显示相关的程序名称和 PID。

仅检查所有监听端口

sudo netstat -lntp

检查当前系统中等待外部连接的所有端口(TCP、UDP)。在确认服务器端口是否正确打开时非常有用。

检查路由表

netstat -rn

以数字格式显示系统的 IP 路由表。可以确认数据包将通过何种路径发送。

检查使用特定端口的进程

sudo netstat -tulpn | grep :80

检查使用端口 `80` 的 TCP 连接和监听端口的进程信息。(在诊断 Web 服务器时非常有用)

检查每个网络接口的统计

netstat -i

显示每个网络接口(例如:`eth0`、`lo`)的接收(Rx)和发送(Tx)数据包数量、错误等。

整体网络统计摘要

netstat -s

显示 TCP、UDP、IP 等各网络协议的整体统计摘要。


相同类别命令