这篇文章将为大家详细讲解有关linux如何显示系统中所有监听的网络服务和他们的PID,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Linux 查看系统中所有监听网络服务的命令
要在 Linux 系统中查看所有监听网络服务的完整列表,可以使用以下命令:
netstat -lntup
此命令将显示一个详细表格,其中包含以下信息:
- Proto: 协议(例如 TCP、UDP)
- Recv-Q: 已接收但未读取的数据包队列
- Send-Q: 已发送但未确认的数据包队列
- Local Address: 监听地址
- Foreign Address: 远程地址
- State: 连接状态(例如 LISTEN、ESTABLISHED)
- PID/Program name: 进程 ID 和进程名称
解释结果
输出中,LISTEN 状态表示服务正在侦听传入连接。ESTABLISHED 状态表示服务已建立连接。
PID 列显示了正在侦听该服务的进程的进程 ID。可以使用以下命令查找进程名称:
ps -p <PID> -o comm=
例如,要查找 PID 为 1234 的进程的名称,可以使用:
ps -p 1234 -o comm=
其他有用的选项
- -n: 不解析地址和端口号。
- -t: 仅显示 TCP 连接。
- -u: 仅显示 UDP 连接。
- -p: 指定特定进程,仅显示该进程的连接。
其他命令
除了 netstat 之外,您还可以使用以下命令查看监听服务:
- lsof: 列出打开文件,包括网络套接字。
- ss: 显示套接字统计信息,包括监听服务。
示例输出
以下是一个 netstat 输出示例,显示监听服务的列表:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 880/sendmail
tcp 0 0 127.0.0.1:111 0.0.0.0:* LISTEN 21/rpcbind
tcp 0 0 :::80 :::* LISTEN 9234/nginx
tcp 0 0 :::443 :::* LISTEN 9545/nginx
udp 0 0 0.0.0.0:68 0.0.0.0:* 504/dhclient
udp 0 0 0.0.0.0:67 0.0.0.0:* 504/dhclient
udp 0 0 :::53 :::* 6569/systemd-resolved
udp 0 0 :::123 :::* 6569/systemd-resolved
在此示例中,您可以看到以下监听服务:
- SSH(端口 22)
- SMTP(端口 25)
- RPC(端口 111)
- HTTP(端口 80)
- HTTPS(端口 443)
- DHCP(端口 68 和 67)
- DNS(端口 53)
- NTP(端口 123)
以上就是linux如何显示系统中所有监听的网络服务和他们的PID的详细内容,更多请关注编程学习网其它相关文章!