当前位置:首页 > 技术 > 正文内容

Linux网络状态查看工具netstat详解

访客 技术 2026年6月10日 1

netstat命令概览

netstat用于展示系统中网络连接、路由表、接口统计及协议状态等信息。其功能已逐渐被更高效的ss命令取代,但仍在部分场景中使用。

netstat [地址族选项] [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [-all|-a] 
[--numeric|-n] [--numeric-hosts] [--numeric-ports] [--symbolic|-N] [--extend|-e]
[--timers|-o] [--program|-p] [--verbose|-v] [--continuous|-c] [延迟时间]

netstat {--route|-r} [地址族选项] [--extend|-e] [--verbose|-v] [--numeric|-n] [延迟时间]

netstat {--interfaces|-I|-i} [接口名] [--all|-a] [--extend|-e] [--verbose|-v] 
[--program|-p] [--numeric|-n] [--continuous|-c] [延迟时间]

netstat {--groups|-g} [--numeric|-n] [--continuous|-c] [延迟时间]

netstat {--masquerade|-M} [--extend|-e] [--numeric|-n] [--continuous|-c] [延迟时间]

netstat {--statistics|-s} [--tcp|-t] [--udp|-u] [--raw|-w] [延迟时间]

netstat {--version|-V} | {--help|-h}

地址族选项说明

  • --protocol={inet,inet6,unix,ipx,ax25,netrom,ddp,...}:指定协议族,如IPv4(inet)、IPv6(inet6)、Unix域套接字(unix)等。
  • --unix|-x:仅显示Unix域套接字。
  • --inet|-ip:显示IPv4相关连接。
  • --inet6:显示IPv6相关连接。

主要功能模式

  • --route:显示内核路由表。
  • --groups:显示IPv4/IPv6组播成员关系。
  • --interfaces:显示网络接口状态与流量统计。
  • --masquerade:查看NAT伪装连接。
  • --statistics:输出各协议的详细统计信息。

常用参数解析

参数含义
-a / --all显示所有连接,包括监听和已建立的。
-l / --listening仅显示处于监听状态的套接字。
-n / --numeric以数字形式显示地址和端口,不进行域名或服务名解析。
-u / --udp仅显示UDP协议连接。
-t / --tcp仅显示TCP协议连接。
-p / --program显示每个套接字关联的进程PID与名称(需root权限)。
-e / --extend显示额外信息,重复使用可获取更详细数据。
-o / --timers包含计时器相关信息。
-c / --continuous持续刷新输出,每秒一次(可自定义间隔)。
-v / --verbose启用详细模式,输出更多信息。

典型使用示例

1. 查看当前所有活跃网络连接

[user@host ~]$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
udp        0      0 0.0.0.0:mdns            0.0.0.0:*                          

2. 显示所有本地端口(含监听)并以数字格式呈现

[user@host ~]$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
udp        0      0 0.0.0.0:5353            0.0.0.0:*                          

3. 查看特定协议的连接详情(如UDP)

[user@host ~]$ netstat -nu
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:5353            0.0.0.0:*                          

4. 查看网络接口状态

[user@host ~]$ netstat -i
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33     1500   330372      0      0      0     41459      0      0      0 BMRU
lo       65536       32      0      0      0        32      0      0      0 LRU

5. 显示系统路由配置

[user@host ~]$ netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         gateway         0.0.0.0         UG        0 0          0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0

6. 获取网络协议统计信息

[user@host ~]$ netstat -s
Ip:
    78191 total packets received
    69729 incoming packets delivered
    41276 requests sent out
Tcp:
    16 active connections openings
    69351 segments received
    40743 segments send out
    17 segments retransmited
Udp:
    341 packets received
    444 packets sent

重要注意事项

  • netstat已被标记为过时,推荐使用 ss 命令替代。
  • 路由信息建议使用 ip route show 而非 netstat -r
  • 接口统计应使用 ip -s link 替代 netstat -i
  • 组播成员信息可通过 ip maddr show 查询。
  • 查看非自身拥有的套接字需具备root权限。

底层数据源

netstat的数据来源于/proc文件系统中的多个子目录:

  • /proc/net/dev:网络设备统计数据。
  • /proc/net/tcp:TCP连接状态。
  • /proc/net/udp:UDP连接状态。
  • /proc/net/route:IP路由表信息。
  • /proc/net/unix:Unix域套接字信息。
  • /proc/net/snmp:协议统计信息。
标签: netstat

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。