Linux系统中/proc/self/fd/socket文件的含义是什么,如何找到端口?

6
我对下面的输出感到困惑:
cd /proc/2045 ; ls -l fd
lrwx------ 1 root root 64 10月  8 19:04 66 -> socket:[294364529]

socket:[294364529]是什么意思?

我猜应该是由该线程打开的套接字,但这个数字是什么意思呢?

如何找到对应的端口Unix socket路径呢?

谢谢!

1个回答

5

根据你的例子,“2045”是进程的pid号,而“294364529”是套接字的inode号。在Linux中,套接字使用普通文件操作,因此它们具有inode号。

例如:假设我在系统中拥有inode号为4654214的套接字。

Netstat:

netstat -alep | egrep -i "Inode|4654214"
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 *:9999                  *:*                     LISTEN      root       4654214     10619/nc  

Lsof:

lsof -i | grep "4654214"
nc        10619            root    3u  IPv4 4654214      0t0  TCP *:9999 (LISTEN)

更多原始信息(针对TCP):

 grep -i "4654214" /proc/net/tcp
   5: 00000000:270F 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 4654214 1 cc2c5f00 300 0 0 2 -1 

这是获取有关套接字有用信息的方法。另外,请查看ss命令。

2
为什么套接字使用红色字体打印? - user180574

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接