×

Linux查看监听端口的各个命令比较

Falcon 2026-02-21 views:
自动摘要

正在生成中……

在 Debian 12 上,查看监听端口并区分 TCP/UDP 协议最常用且最强大的工具是 ss(来自 iproute2 软件包,是 netstat 的现代替代品)。

以下是几种常用的查询方式:

1. 使用 ss 命令(推荐)

ss 执行速度更快,且输出的信息比传统的 netstat 更详细。

sudo ss -tuln

参数解释:

  • -t (tcp): 仅显示 TCP 套接字。
  • -u (udp): 仅显示 UDP 套接字。
  • -l (listening): 仅显示处于监听状态的套接字。
  • -n (numeric): 直接显示端口号,不解析为服务名(如显示 443 而不是 https)。

2. 如何区分同端口的不同协议

如果你想确认 443 端口是否同时在 TCP 和 UDP 上监听,可以配合 grep 使用。

sudo ss -tuln | grep :443

输出示例:

tcp   LISTEN 0      128       0.0.0.0:443        0.0.0.0:* tcp   LISTEN 0      128          [::]:443           [::]:* udp   UNCONN 0      0         0.0.0.0:443        0.0.0.0:* udp   UNCONN 0      0            [::]:443           [::]:* 

注意:ss 输出中,UDP 的监听状态通常显示为 UNCONN(未连接),这是正常现象。


3. 查看具体是哪个程序在监听

如果你不仅想看协议,还想看进程 ID (PID)进程名称,可以添加 -p 参数:

sudo ss -tulnp | grep :443


4. 备选方案:lsof

如果你更习惯看到清晰的列表,lsof 也是一个很好的选择:

sudo lsof -i -P -n | grep LISTEN

或者专门查看特定端口:

sudo lsof -i :443

工具对比表

| 工具 | 优点 | 缺点 | | --- | --- | --- | | ss | Debian 12 预装,速度极快,显示内核级详细信息 | 参数较多,新手需记忆 | | netstat | 兼容性广,老用户习惯 | 在较新的 Debian 系统中可能需要手动安装 net-tools | | lsof | 关联进程和文件的信息非常直观 | 处理大量连接时速度较慢 |

本文收录于