普通网友 2025-07-11 07:25 采纳率: 98.6%
浏览 0
已采纳

问题:Ubuntu如何查看端口占用情况及状态?

在Ubuntu系统中,如何查看端口占用情况及网络连接状态是系统管理和故障排查中的常见需求。用户可通过多种命令行工具实现这一目标,如`netstat`、`ss`、`lsof`和`nmap`等。例如,使用`sudo netstat -tulnp`可列出所有监听端口及其对应的进程信息;而`ss -tulwnp`则提供更高效的替代方案。此外,`lsof -i :端口号`可用于查看特定端口的占用进程详情。掌握这些命令有助于快速定位服务冲突、排查异常连接或优化网络性能。本文将详细介绍这些工具的使用方法及典型应用场景。
  • 写回答

1条回答 默认 最新

  • 羽漾月辰 2025-07-11 07:25
    关注

    Ubuntu系统中查看端口占用及网络连接状态的全面指南

    在Ubuntu等Linux操作系统中,系统管理员和开发人员经常需要检查服务器上的端口使用情况以及当前的网络连接状态。这不仅有助于排查服务启动失败、端口冲突等问题,还能帮助识别异常连接或潜在的安全威胁。本文将详细介绍如何利用常见的命令行工具如 netstatsslsofnmap 来完成这些任务。

    1. 查看所有监听端口(Listening Ports)

    监听端口是系统等待客户端连接的入口点。了解哪些服务正在监听可以帮助我们判断是否有服务未正确关闭或存在安全风险。

    • sudo netstat -tulnp:列出所有TCP/UDP监听端口及其关联进程信息。
    • ss -tulwnp:更轻量级的替代方案,推荐用于新项目。
    命令说明是否推荐
    netstat -tulnp显示所有监听的TCP和UDP端口,以及对应的PID和程序名否(已逐渐被弃用)
    ss -tulwnp功能类似但性能更好,支持更多过滤选项

    2. 查看特定端口的占用情况

    当你知道某个具体端口(例如80、443、3306等)被占用时,可以使用以下命令定位是哪个进程占用了它:

    lsof -i :80

    该命令会输出所有与端口80相关的进程信息,包括PID、用户、协议类型等。这对于排查Apache/Nginx服务无法启动的问题非常有用。

    3. 检查活动的网络连接(Established Connections)

    除了监听端口外,查看当前有哪些活跃的连接也非常重要,特别是在排查安全问题或调试分布式应用时。

    • ss -tnp:显示所有TCP连接,并显示相关进程。
    • netstat -antp:同样可实现,但效率较低。
    graph TD A[开始] --> B{选择查看方式} B --> C[查看监听端口] B --> D[查看活动连接] B --> E[查看特定端口] C --> F[使用 ss 或 netstat] D --> G[使用 ss 或 netstat] E --> H[lsof 命令]

    4. 使用 nmap 进行远程主机端口扫描

    虽然主要用于本地系统,但在某些场景下我们也需要对远程服务器进行端口扫描以确认其开放的服务。此时可使用 nmap 工具:

    nmap -sT -O 192.168.1.100

    该命令会对IP为192.168.1.100的主机进行TCP连接扫描并尝试检测操作系统类型。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 7月11日