我对下面的输出感到困惑:
cd /proc/2045 ; ls -l fd
lrwx------ 1 root root 64 10月 8 19:04 66 -> socket:[294364529]
socket:[294364529]
是什么意思?
我猜应该是这个线程打开的socket,但是这个数字是什么意思呢?
如何找到对应的port
或Unix 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/