如何将值绑定到“inode”列中/proc/net/tcp
到文件中/proc/<pid>/fd/
?
我的印象是inode
TCP 中的列有套接字 inode 的十进制表示形式,但情况似乎并非如此。
例如,如果我运行telnet localhost 80
,我看到以下内容(telnet 的 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
, I see
349886 lrwx------ 1 me me 64 Dec 26 10:51 3 -> socket:[361556]
inode 为 349886,与 tcp 表的 inode 列中的值:361556 不同。但链接目标似乎具有正确的名称。相似地,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列中的数字是多少?为什么它与报告的 inode 不对齐ls
or stat
?
(我正在运行 Ubuntu 14.10,如果这很重要的话)