如何找到 TCP 套接字的 inode? [英] How do I find the inode of a TCP socket?

查看:82
本文介绍了如何找到 TCP 套接字的 inode?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将 /proc/net/tcp 的 'inode' 列中的值绑定到 /proc//fd/ 中的文件?

How do I tie values in the 'inode' column of /proc/net/tcp to files in /proc/<pid>/fd/?

我的印象是 TCP 中的 inode 列具有套接字 inode 的十进制表示,但似乎并非如此.

I was under the impression that the inode column in the TCP had a decimal representation of the socket's inode, but that doesn't seem to be the case.

例如,如果我运行 telnet localhost 80,我会看到以下内容(telnet 为 pid 9021).

For example, if I run telnet localhost 80, I see the following (telnet is pid 9021).

/proc/net/tcp 包含

sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
23: 0100007F:CE2A 0100007F:0050 01 00000000:00000000 00:00000000 00000000  1000        0 361556 1 00000000 20 0 0 10 -1

这让我觉得连接到 127.0.0.1:80 的套接字的 inode 是 361556.但是如果我运行 ls --inode -alh/proc/9021/fd,我看到

which makes me think that the inode of the socket connected to 127.0.0.1:80 is 361556. But if I run ls --inode -alh /proc/9021/fd, I see

349886 lrwx------ 1 me me 64 Dec 26 10:51 3 -> socket:[361556]

inode为349886,与tcp表inode列中的值不同:361556.但链接目标似乎有正确的名称.同样,stat/proc/9021/3 显示:

The inode is 349886, which is different from the value in the inode column of the tcp table: 361556. But the link target seems to have the right name. Similarly, stat /proc/9021/3 shows:

File: ‘/proc/9021/fd/3’ -> ‘socket:[361556]’
Size: 64            Blocks: 0          IO Block: 1024   symbolic link
Device: 3h/3d   Inode: 349886      Links: 1

tcp 表的 inode 列中的数字是多少?为什么它不与 lsstat 报告的 inode 对齐?

What's the number in the inode column of tcp table? Why doesn't it line up with the inode as reported by ls or stat?

(如果重要的话,我正在运行 Ubuntu 14.10)

(I'm running Ubuntu 14.10, if that matters)

推荐答案

lsstat 显示的 inode 用于指向与插座.运行 ls -iLalh 显示正确的 inode.stat -L 同上.

The inode shown by ls and stat is for the symlink that points to the inode associated with the socket. Running ls -iLalh shows the right inode. Ditto for stat -L.

Herpa derp derp.我只是在我提出问题时才想到这一点.;_;

Herpa derp derp. I only figured this out when I was composing my question. ;_;

这篇关于如何找到 TCP 套接字的 inode?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆