自动摘要
正在生成中……
在 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 | 关联进程和文件的信息非常直观 | 处理大量连接时速度较慢 |