linux怎么查看udp
linux怎么查看udp详细介绍
在 Linux 系统中,查看 UDP 相关信息(如 UDP 连接、监听端口、关联进程等)可以通过以下常用工具实现:
一、使用
netstat(传统工具)
netstat 是经典的网络状态统计工具,可用于查看 UDP 相关信息。常用参数组合:
1. 查看所有 UDP 连接和监听端口
bash
-n:以数字形式显示 IP 地址和端口(而非解析为域名 / 服务名),避免 DNS 查找延迟。-u:仅显示 UDP 协议的连接。-a:显示所有连接(包括监听和非监听状态)。-p:显示关联的进程 ID(PID)和进程名称。
示例输出:
plaintext
Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:5353 0.0.0.0:0 1234/avahi-daemon
udp 0 0 192.168.1.100:6000 10.0.0.2:6000 ESTABLISHED 5678/my_udp_app
Local Address:本地 UDP 端口(如0.0.0.0:5353表示监听所有网卡的 5353 端口)。State:UDP 无连接状态(通常为空或ESTABLISHED表示有数据交互)。PID/Program name:占用该 UDP 端口的进程信息(如1234/avahi-daemon)。
二、使用
ss(现代高效工具,推荐)
ss 是 netstat 的替代工具,性能更优(尤其在连接数大时),支持更细粒度的过滤。
1. 查看所有 UDP 监听端口
bash
ss
-u:仅显示 UDP 协议。-n:数字形式显示地址和端口。-l:仅显示监听状态的 UDP 端口(非监听的连接不会显示)。-p:显示关联的进程信息。
示例输出:
plaintext
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Portudp UNCONN 0 0 0.0.0.0:5353 0.0.0.0:0 users:(("avahi-daemon",pid=1234,fd=12))
Local Address:Port:监听的 UDP 端口(如0.0.0.0:5353)。users:显示占用该端口的进程 PID 和名称(如avahi-daemon)。
2. 查看所有 UDP 连接(包括非监听)
bash
ss
-u:仅 UDP。-a:显示所有连接(监听 + 非监听)。-n:数字形式。-o:显示计时器信息(如timer:(on,32.939ms)表示连接的计时状态)。
示例输出:
plaintext
udp UNCONN 0 0 192.168.1.100:6000 10.0.0.2:6000 timer:(on,32.939ms) users:(("my_udp_app",pid=5678,fd=5))
Local Address:Port和Peer Address:Port:本地和对端的 UDP 地址 / 端口。users:关联的进程信息。
三、使用
lsof(查看进程占用的 UDP 端口)
lsof(List Open Files)可列出所有被进程打开的文件(包括网络套接字),适合定位哪个进程占用了 UDP 端口。
1. 查看所有 UDP 相关的进程和端口
bash
UDP
示例输出:
plaintext
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEavahi-dae 1234 root 12u IPv4 12345 0t0 UDP *:5353
my_udp_app 5678 user 5u IPv4 67890 0t0 UDP 192.168.1.100:6000->10.0.0.2:6000
TYPE:IPv4或IPv6表示 UDP 套接字类型。NAME:显示 UDP 地址(如*:5353表示监听所有地址的 5353 端口;192.168.1.100:6000->10.0.0.2:6000表示与对端的 UDP 连接)。
总结
- 若需快速查看 UDP 监听端口和进程,推荐
ss -unlp(现代系统)或netstat -nuap(旧系统)。 - 若需定位具体进程占用的 UDP 端口,使用
lsof -i UDP。 ss性能更优,建议优先使用(需系统支持,如 Ubuntu 16.04+、CentOS 7+)。