我有一个超旧的(不要问为什么)我的DreamBox上的BusyBox (BusyBox v1.01(2008.12.19-21:31 + 0000)Built-shell(ash)) 。 我想找出哪个进程使用netstat打开了哪个连接。 但是我发现BusyBox的netstat不包含-p选项。 还有什么其他可能性,我必须找出哪个进程打开(和正在使用)相应的套接字?
您可以在/proc/net/tcp
以略微更丑的forms(又名hex)查找等效信息。 在那里,你可以find连接的inode,你可以在/proc/$pid/fd/
下查找。
例如:
$ cat /proc/net/tcp sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode 0: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 6115 1 f5adc4c0 300 0 0 2 -1 ...
(在普通的netstat中,不能在busybox的netstat中, -e
选项也给你提供额外的信息。)
和
$ sudo ls -l /proc/2560/fd ... lrwx------ 1 root root 64 7 jan 22.50 3 -> socket:[6115]
您需要第二步的root访问权限。
不像-p
选项那么方便,显然,但是工作在一个绑定。 如有必要,可以编写脚本。
如果你没有机会重buildBusybox,这可能没有帮助,但如果它帮助任何人…
Busybox有一个configuration选项来支持Busybox netstat
的-p
开关。 查看选项CONFIG_FEATURE_NETSTAT_PRG
,在busybox menuconfig中通过Networking Utilities→netstat→启用PID /程序名称输出 。