当前位置:首页 > Ubuntu > 正文

Ubuntu netstat命令详解(小白也能看懂的Linux网络诊断工具)

在使用 Ubuntu 或其他 Linux 系统时,你是否曾遇到过网络连接异常、某个端口被占用却不知道是哪个程序在使用?这时,netstat 命令就派上用场了!本文将手把手教你如何使用 netstat 查看网络连接状态、监听端口、路由表等信息,即使你是 Linux 新手,也能轻松掌握。

Ubuntu netstat命令详解(小白也能看懂的Linux网络诊断工具) netstat命令 网络连接状态 Linux网络诊断 查看端口占用 第1张

什么是 netstat?

netstat(Network Statistics 的缩写)是一个用于显示网络连接、路由表、接口统计、伪装连接和多播成员的命令行工具。虽然在较新的系统中它正逐渐被 ss(socket statistics)命令取代,但因其语法直观、功能全面,仍被广泛使用。

安装 netstat(如未预装)

在某些精简版的 Ubuntu 系统中,netstat 可能未默认安装。它属于 net-tools 软件包,可通过以下命令安装:

sudo apt updatesudo apt install net-tools  

常用 netstat 命令示例

1. 查看所有活动的网络连接

使用以下命令可以列出所有 TCP 和 UDP 连接:

netstat -a  

2. 仅查看 TCP 连接

netstat -t  

3. 仅查看 UDP 连接

netstat -u  

4. 显示监听中的端口(重要!)

这是排查“端口被占用”问题的关键命令:

netstat -l  

5. 同时显示 PID 和程序名(强烈推荐)

加上 -p 参数可以知道是哪个进程占用了端口,这对 查看端口占用 非常有用:

sudo netstat -tulnp  

参数说明:

  • -t:TCP 协议
  • -u:UDP 协议
  • -l:仅显示监听(listening)状态的套接字
  • -n:以数字形式显示地址和端口号(不解析主机名和服务名,速度更快)
  • -p:显示进程 ID(PID)和程序名称

实战案例:找出占用 80 端口的程序

假设你启动 Nginx 时提示“Address already in use”,说明 80 端口已被占用。你可以这样查:

sudo netstat -tulnp | grep :80  

输出可能如下:

tcp6  0  0 :::80  :::*  LISTEN  1234/nginx: master  

这说明 PID 为 1234 的 nginx 主进程正在监听 80 端口。

常见问题与注意事项

  • 使用 -p 参数通常需要 sudo 权限,否则看不到非当前用户的进程信息。
  • netstat 在较新版本的 Ubuntu 中已不推荐使用,官方建议改用 ss 命令(如 ss -tuln),但 netstat 更易理解,适合初学者。
  • 若只想快速查看某个端口是否被占用,也可结合 lsof 命令:
    sudo lsof -i :80

总结

通过本文,你应该已经掌握了如何在 Ubuntu 中使用 netstat 命令 进行基本的 网络连接状态 查看和 Linux 网络诊断。无论是排查服务启动失败、检查防火墙规则,还是学习网络知识,netstat 都是一个实用的工具。

记住关键命令:sudo netstat -tulnp,它能帮你快速定位问题所在。希望这篇教程对你有帮助!

关键词回顾:Ubuntu netstat命令网络连接状态Linux网络诊断查看端口占用