news 2026/5/1 2:05:25

《每日一命令16:netstat——谁在偷偷连你的服务器?》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《每日一命令16:netstat——谁在偷偷连你的服务器?》

本期摘要

netstat是网络连接查看的经典命令,尽管新一代ss性能更快,但netstat仍然是最普及、最直观的网络排查工具。本文聚焦五个核心场景:列出所有监听端口(找服务有没有起来)、统计每个状态的连接数(看TIME_WAIT是否爆炸)、按 IP 统计连接数(是不是被某个IP扫)、根据端口号找进程(哪个进程占用了端口)、查看路由表。同时解释了 LISTEN / ESTABLISHED / TIME_WAIT / CLOSE_WAIT 四个最常见状态的业务含义,读完你就能在收到网络告警时快速定位原因。

netstat是什么?

netstat是 network statistics 的缩写,用于显示网络连接、路由表、接口统计等信息。

虽然很多教程已经开始转向ss,但netstat仍然是最广泛存在的工具,尤其是在老系统和临时排查环境中。

netstat可能未预装,可用yum install net-toolsapt install net-tools安装。

最常用的5种姿势

1. 列出所有监听端口(找服务)

bash

netstat -tulnp
参数含义
-tTCP
-uUDP
-l仅显示监听状态的端口
-n不解析名字(显示 IP 和端口号)
-p显示进程 PID 和名称

输出示例:

text

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 567/sshd tcp6 0 0 :::3306 :::* LISTEN 890/mysqld

解读:

  • 0.0.0.0:*表示监听所有 IPv4 地址,:::*表示监听所有 IPv6 地址

  • 127.0.0.1:3306表示只监听本机,外部无法访问

2. 统计各状态的连接数

bash

netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

输出类似:

text

ESTABLISHED 234 TIME_WAIT 1890 CLOSE_WAIT 12 LISTEN 8

各状态业务含义:

状态对程序员/运维的意义
LISTEN服务在等请求——正常
ESTABLISHED正常通信连接
TIME_WAIT主动关闭一方留下的,大量出现表示短连接频繁
CLOSE_WAIT被动关闭方未调用 close,说明程序有 bug——连接泄漏
SYN_RECV收到 SYN 但连接未建立,可能受到 SYN Flood 攻击

3. 按 IP 统计连接数(抓坏蛋)

bash

netstat -an | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn

输出类似:

text

245 1.2.3.4 128 5.6.7.8 12 10.0.0.1

某个 IP 连接数异常高 → 可能是爬虫、攻击或程序错误重连。

4. 查看某个端口上的连接

bash

netstat -an | grep :8080

5. 根据端口号找进程

bash

netstat -tulnp | grep :80

-p需要 root 权限才能看到完整进程名。

进阶技巧

实时刷新(类似 top)

bash

watch -n 1 "netstat -an | grep ESTABLISHED | wc -l"

每秒刷新一次,观察连接数变化。

查看路由表

bash

netstat -rn

输出网关信息,排查网络不通问题时很有用。

查看接口统计(丢包、错误)

bash

netstat -i

RX-ERR/TX-ERR列有非零值表示网卡有错误。

真实场景

场景1:服务启动失败,检查端口是否被占

bash

netstat -tulnp | grep :8080

如果被占用,kill掉占用的进程或换端口。

场景2:TIME_WAIT 过多

TIME_WAIT 太多会耗尽端口,排查方法:

  • netstat -an | grep TIME_WAIT | wc -l统计数量

  • 超过 1 万需要优化:开启tcp_tw_reuse,或改用长连接

场景3:CLOSE_WAIT 泄漏

bash

netstat -an | grep CLOSE_WAIT | wc -l

如果这个值持续增长且不降,说明程序没有正确关闭连接——最经典的连接泄漏表现。

场景4:某个 IP 在扫你的端口

bash

netstat -an | grep SYN_RECV | wc -l

若 SYN_RECV 数量很大,可能遭受 SYN Flood。配合netstat -an | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | uniq -c找到攻击源 IP。

备选方案ss对比

ssnetstat的现代替代品,速度更快,输出更清晰。

功能netstatss
监听端口netstat -tulnpss -tulnp
连接统计netstat -an+ awkss -tan state time-wait
按进程筛选-p参数-p参数同样支持

ss的优势在于可以对状态直接过滤:ss -tan state time-wait直接列出所有 TIME_WAIT。但在老系统或容器环境中,netstat往往更通用。

常用参数速查

参数含义
-tTCP
-uUDP
-l仅监听
-a所有连接(包含监听)
-n不解析名字,显示数字 IP
-p显示 PID/进程名
-c连续输出
-r路由表
-i网络接口统计

下期预告

《每日一命令17:ss——比netstat快10倍的新一代工具》

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 1:56:22

Tidyverse 2.0自动化报告实战手册(企业级CI/CD集成全路径曝光):从dev环境校验到生产环境审计追踪,一文打通GDPR/等保2.0合规闭环

更多请点击: https://intelliparadigm.com 第一章:Tidyverse 2.0自动化报告体系全景图 Tidyverse 2.0 不再是单一包集合,而是一套以声明式语法驱动、可插拔架构支撑的自动化报告生产平台。其核心演进在于将数据清洗、可视化、文档编译与部署…

作者头像 李华
网站建设 2026/5/1 1:54:43

岩土力学微观探索:蓝光3D扫描在断面粗糙度分析中的应用

title: “岩土力学微观探索:蓝光3D扫描在断面粗糙度分析中的应用” date: 2026-04-30 author: “Roger_GeoTech” tags: [“岩土力学”, “结构面粗糙度”, “蓝光3D扫描仪”, “JRC”, “XTOM”, “点云分析”] description: “深度探讨固定式蓝光3D扫描技术在室内…

作者头像 李华
网站建设 2026/5/1 1:43:25

西安公立医院和私立医院近视手术哪个好

在西安,越来越多的人选择通过近视手术来摆脱眼镜的束缚。面对众多的选择,公立医院和私立医院各有特点,究竟哪个更适合做近视手术呢?下面我们来详细分析。医疗技术与设备从医疗技术来看,西安的大型公立医院如西安交通大…

作者头像 李华
网站建设 2026/5/1 1:40:00

【西瓜带你学Kafka | 第八期】 Kafka的主从同步、消息可靠性、流处理与顺序消费(文含图解)

文章目录前言一、Kafka 中如何进行主从同步ISR 机制同步复制异步复制异步复制的利与弊二、Kafka 中什么情况下会出现消息丢失/不一致的问题消息发送时丢失消息消费时丢失三、Kafka 作为流处理平台的特点什么是流处理Kafka 作为流处理平台的五大特性与其他流处理框架的定位差异四…

作者头像 李华