【问题标题】:How to find out what the socket points to?如何找出套接字指向的内容?
【发布时间】:2012-06-08 13:27:30
【问题描述】:

我为系统 (RHEL) 中的一个进程打开了很多套接字:

$ls -1l /proc/22794/fd | less
lrwx------ 1 myapp apps 64 Jun  8 14:53 201 -> socket:[1662944133]
lrwx------ 1 myapp apps 64 Jun  8 14:53 202 -> socket:[1662944193]
lrwx------ 1 myapp apps 64 Jun  8 14:53 203 -> socket:[1684299114]
lrwx------ 1 myapp apps 64 Jun  8 14:53 204 -> socket:[1662944920]
lrwx------ 1 myapp apps 64 Jun  8 14:53 205 -> socket:[1662987275]
lrwx------ 1 myapp apps 64 Jun  8 14:53 206 -> socket:[1663104470]
lrwx------ 1 myapp apps 64 Jun  8 14:53 207 -> socket:[1663067786]
lrwx------ 1 myapp apps 64 Jun  8 14:53 208 -> socket:[1663045536]
lrwx------ 1 myapp apps 64 Jun  8 14:53 209 -> socket:[1663233730]

...

我确切地知道这个过程是什么。我需要知道这些已知进程创建的套接字指向的位置。

你能告诉我,我怎样才能知道每个套接字指向什么?

提前谢谢你!

【问题讨论】:

  • 使用 root 的 id,您可以看到带有 netstat -p 的程序到套接字的连接。
  • 您可以使用lsof -p $pid | grep IPv 列出打开的连接。

标签: linux sockets process


【解决方案1】:

这个:

netstat -napev

可能会有所启发。

【讨论】:

  • 谢谢,但我知道具体的流程是什么。我需要知道由这些已知进程创建的套接字指向的位置。
  • @semiliranda point to 到底是什么意思?此命令向您显示所有打开的套接字,以及有关它们的信息,您可以使用 grep 获取您的进程 ID。你还需要什么?
【解决方案2】:

netstat -nap 将列出每个正在运行的进程的所有打开的套接字,并以 root 权限运行它。

【讨论】:

  • 谢谢,但我知道具体的流程是什么。我需要知道由这些已知进程创建的套接字指向的位置。
  • 你试过这个命令吗?,netstat 就是这样做的,列出关于套接字的信息。
【解决方案3】:

我在这里找到了答案:how do I find out what program's on the other end of a local socket?

答案是

ss -p | grep <socket-number>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2018-10-13
    • 2019-04-16
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多