实用科技屋
霓虹主题四 · 更硬核的阅读氛围

netstat命令详解:查端口、看连接、揪出偷偷联网的程序

发布时间:2026-02-11 01:21:44 阅读:64 次

你有没有遇到过这种情况:电脑变慢、网速突然卡顿,或者发现某个程序根本没开,却在任务管理器里看到它占着网络?这时候,netstat 就是你的“网络透视镜”——不用装软件,打开命令提示符就能立刻看清谁在连什么、占着哪个端口、连到了哪里。

netstat 是干啥的?

简单说,netstat(network statistics 的缩写)是 Windows 和 Linux 都自带的网络诊断命令工具,专门用来显示当前系统的网络连接、路由表、接口统计、端口监听状态等信息。它不依赖第三方软件,系统一装就有,适合快速排查问题。

最常用的几个组合命令

打开 CMD(Win+R → 输入 cmd → 回车),直接敲下面这些命令,基本覆盖 90% 日常需求:

查看所有活动连接 + 监听端口(带进程 PID):

netstat -ano

输出里你会看到“Proto”(协议)、“Local Address”(本机地址和端口)、“Foreign Address”(对方地址)、“State”(连接状态),最后一列是 PID(进程编号)。比如看到 :3389 端口处于 LISTENING,又不知道是谁在用,就靠这个 PID 去任务管理器里找。

只看 TCP 连接,并按状态分组统计:

netstat -anp tcp | findstr ":" | findstr "ESTABLISHED"

(Windows 下可简化为:netstat -an | findstr ESTABLISHED

这能帮你一眼揪出正在传数据的连接,比如下载软件、视频后台上传、游戏联机等。

查某个端口被谁占了(比如启动服务时提示“端口已被占用”):

netstat -ano | findstr ":8080"

假设你刚想跑本地开发服务器,但 8080 端口报错,执行这句就能立刻看到占用它的 PID,再用 tasklist | findstr "12345"(把 12345 换成实际 PID)就能知道是哪个程序。

常见状态说明,别再看不懂输出

LISTENING:本机某程序正开着端口等别人来连,比如微信、QQ、远程桌面服务;
ESTABLISHED:连接已建立,正在双向通信,比如你刷网页时跟服务器之间的连接;
CLOSE_WAITTIME_WAIT:连接快结束了,属于正常收尾阶段;
SYN_SENT:本机发出了连接请求,但还没收到回应,可能目标关机或防火墙拦了。

一个小技巧:直接定位到进程名

光有 PID 不够直观?可以配合 tasklist 查名字:

tasklist | findstr "1728"

如果返回 chrome.exe,那基本就是浏览器某个标签页在后台连着广告或推送服务器;如果是 svchost.exe,就得再结合 netstat -abno(需管理员权限)看具体服务名——不过日常排查,-ano 足够用了。

注意点

netstat -abno 能显示程序路径和对应服务名,但必须以管理员身份运行 CMD,否则会提示“拒绝访问”;
• Windows 11/10 中部分功能默认关闭,若提示“不是内部或外部命令”,可尝试启用“Telnet 客户端”(控制面板 → 程序 → 启用或关闭 Windows 功能);
• Linux/macOS 用户同样可用 netstat -tulnp,原理一致,只是参数略有不同。

下次网卡狂闪、杀毒软件报“可疑外连”,别急着重装系统——先敲一行 netstat -ano,真相往往就藏在那一屏滚动的文字里。