linux - linux系统上的/proc/self/fd/socket文件是什么意思以及如何找到端口

标签 linux sockets networking

我对下面的输出感到困惑:

cd /proc/2045 ; ls -l fd
lrwx------ 1 root root 64 10月  8 19:04 66 -> socket:[294364529]

socket:[294364529] 是什么意思?

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

如何找到对应的portUnix socket路径?

谢谢!

最佳答案

根据您的示例,“2045”是进程的 pid 号,“294364529”是套接字的 inode 号。在 Linux 套接字中使用普通的文件操作,所以这就是它们有 inode 编号的原因。

例子: 假设我在系统套接字中有 inode 号 4654214。

网络统计:

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)

更多原始信息(fot 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 命令。

关于linux - linux系统上的/proc/self/fd/socket文件是什么意思以及如何找到端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26255936/

相关文章:

linux - Django celery socket.error : [Errno 111] Connection refused

java - 具有单个目标网络的Linux多网关

linux - 一个普通的 Linux 发行版中有多少个文件?

java - 连接到服务器的套接字客户端数

linux - Rdma infiniband 无法打开主机(iberror : discovery failed) Port state: Down

linux - 将多行中的相应字符粘贴在一起

node.js - 客户端建立连接时 Socket.io 服务器没有响应

c# - 网络断开时的WebSocket重新连接问题

java - isProviderEnabled() 永远不会被调用 android

r - 对两列以上使用 igraph