netstat命令有什么作用?新手如何用它排查网络问题

来源:AI教程网作者:清原小日向头衔:网络博主
导读:本期聚焦于小伙伴创作的《netstat命令有什么作用?新手如何用它排查网络问题》,敬请观看详情。网络服务启动后却无法访问,第一反应应该是确认端口是否真正在监听。netstat作为系统自带的网络统计工具,能直接列出当前所有的TCP、UDP连接与监听端口。通过netstat -tulnp可看到进程名与PID,快速定位是谁占用了目标端口。不少人误以为服务跑起来就一定能对外通信,其实防火墙、绑定地址错误都会让端口处于不可见状态。结合-a与-n参数还能观察已建立的连接来源IP,辅助判断是否存在异常外联。掌握几个常用参数,比装第三方工具更省事。

netstat是绝大多数Linux与Windows系统自带的网络状态查看命令,全称为network statistics。它的核心能力是读取系统内核维护的网络栈信息,把当前主机的网络连接、路由表、接口统计、端口监听等情况以文本形式展示出来。对于开发与运维人员来说,不需要安装额外软件就能知道某台机器上哪些端口被占用、哪些服务建立了外部通信,是排查网络故障的第一步。

netstat命令有什么作用?新手如何用它排查网络问题

一、netstat能做什么

netstat最基本的作用是列出系统中所有的网络端点。端点分为两类:一类是处于监听状态的端口,也就是服务进程绑定并等待连接的地址;另一类是已经建立的连接,包含本地IP端口与对端IP端口。通过这些信息,我们可以确认Web服务是否真的在80端口监听,或者数据库是否只绑定了回环地址导致外部无法访问。

除了连接与监听,netstat还能显示路由表(使用-r参数)和网络接口统计(使用-i参数)。路由表告诉我们数据包发往某个网段时会走哪个网关;接口统计则能看出网卡是否有丢包或错误计数。虽然现代环境常用ip命令替代部分功能,但netstat在快速浏览全局网络关系时依然直观高效。

二、常用参数与含义

实际使用中,以下几个参数组合最常见:-t表示TCP协议,-u表示UDP协议,-l表示仅显示监听端口,-n表示以数字形式显示地址和端口而不做域名反查,-p表示显示所属进程信息。把这些都拼起来就是netstat -tulnp,一条命令看清所有监听中的服务及对应程序。

如果不加-n,netstat会尝试把IP反解成主机名、把端口转成服务名,这在DNS异常时会导致命令卡顿数秒。因此在脚本或排障时建议始终带上-n。另外-a代表所有连接,包含已建立和非监听状态,适合看全量连接数是否过多。

# 查看所有监听中的TCP/UDP端口及进程
netstat -tulnp

# 查看某特定端口是否被占用,例如8080
netstat -tulnp | grep 8080

# 查看当前所有TCP连接(含外部已建立)
netstat -tn

三、用netstat排查端口被占

启动一个Java或Node服务时,若报出“Address already in use”,说明目标端口已被其他进程绑定。此时运行netstat -tulnp | grep 端口号,输出行的最后一列会显示进程名与PID。拿到PID后,可以用kill -9 PID释放端口,或者修改自己服务的配置文件换端口。

有时服务明明起来了,但外部访问不通。用netstat一看,发现监听地址是127.0.0.1:8080而非0.0.0.0:8080,这就意味着只接受本机请求。这种绑定差异在Spring Boot或Nginx配置错误时很常见,netstat能立刻暴露问题,比盲目改防火墙更精准。

# 假设8080被占用,查找占用者
netstat -tulnp | grep 8080
# 输出示例:tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1234/java
# 结束该进程
kill -9 1234

四、观察异常连接

当服务器出现流量异常或CPU偏高,可以用netstat -tn看已建立的TCP连接。如果某个陌生IP反复出现且连接数极多,可能是爬虫或攻击。配合wc -l统计行数,能快速评估连接规模。

需要注意的是,netstat统计的是瞬时快照,高并发下连接状态变化很快。若要做持续监控,应结合watch -n 1 netstat -tn或改用ss命令。但理解netstat的输出字段(如ESTABLISHED、TIME_WAIT)仍是网络排障的基本功。

参数作用
-t显示TCP相关连接
-u显示UDP相关连接
-l仅列出监听状态的端口
-n用数字显示地址端口,不反查名称
-p显示进程名与PID

五、netstat与ss的区别

在较新的Linux发行版中,iproute2套件提供了ss命令,它直接从内核获取信息,速度比netstat更快,尤其在连接数上万时差异明显。不过netstat输出格式对人类更友好,且几乎所有老系统都预装。初学者先掌握netstat,再迁移到ss不会有什么成本。

无论使用哪个工具,核心思路不变:先确认监听、再确认连接、最后关联进程。只要形成这个排查链条,大部分网络不通、端口冲突的问题都能在几分钟内定位。netstat作为经典命令,依然值得放进每个人的常用手册里。

netstat网络排查端口监听修改时间:2026-08-08 06:00:25

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。