如何查看所有被占用的端口和对应的程序?

在 Linux 系统中列出所有被占用的端口以及对应的程序:

一 列出被使用的端口

1. netstat 是一个非常实用的工具,用于显示网络连接、路由表、接口统计等信息。要查看所有被占用的端口及其对应的程序,可以使用:

netstat -tulnpe

-t 选项表示显示 TCP 连接

-u 选项表示显示 UDP 连接

-l 选项表示仅显示监听中的端口

-n 选项表示以数字形式显示地址和端口号

-p 选项表示显示进程标识符和程序名称,此选项需要 root 权限

-e 选项显示扩展信息,例如 uid 等

注意:在一些最新版本的 Linux 发行版中,netstat 可能不是预装的。可以通过安装 net-tools 包来获取它。

2. ss 可以作为 netstat 的替代品。ss 命令的执行效率比 netstat 更高,特别是在系统打开了大量连接时。要查看所有被占用的端口及其对应的程序,可以使用:

ss -tulnpe

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process

udp UNCONN 0 0 0.0.0.0:59552 0.0.0.0:* uid:115 ino:55562 sk:1

3. lsof(list open files)是一个列出当前系统打开文件的工具。由于在 UNIX 和 Linux 中一切皆文件,网络连接也被视为文件,所以可以使用 lsof 来查看被占用的端口。要查看所有被占用的端口及其对应的程序,可以使用:

lsof -i -P -n

-i 选项表示显示网络连接

-P 选项表示不解析端口名称(显示端口号)

-n 选项表示以 IP 地址显示,不解析主机名

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

java 1861 ze 136u IPv6 44351 0t0 TCP *:8080 (LISTEN)

二 如何进一步查看详细的进程信息

1.如何根据pid查看详细的程序信息

ps -f -p PID

ls /proc/PID

ps -f -p PID

2.如何根据 inode(ino)编号查看详细的程序信息

sudo find /proc/ -type l -lname 'socket:[1013887]' 2>/dev/null

执行该命令后,如果找到了匹配的符号链接,输出将类似于:

/proc/12345/fd/3

这意味着进程 12345 拥有一个文件描述符,指向 inode 为 1013887 的套接字。可以通过查看 /proc/12345 目录下的信息(如 cmdline、status 文件)来获取有关该进程的更多详细信息:

cat /proc/12345/cmdlinecat /proc/12345/status

cmdline 文件包含了启动进程时使用的命令行参数,而 status 文件提供了进程的状态信息,包括它的 PID、PPID(父进程ID)、运行状态等。

3.如何根据 socket 编号通常在 ss 命令的输出中看到,格式如 sk:8编号查看详细的程序信息

sudo ss -tulnpe | grep 'sk:您的socket编号'

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值