Busybox、netstat、-pなし


10

DreamBoxに超古い(理由は尋ねない)BusyBox (BusyBox v1.01(2008.12.19-21:31 + 0000)組み込みシェル(灰))があります。netstatを使用して、どのプロセスがどの接続を開いたかを確認したいと思います。しかし、BusyBoxのnetstatには-pオプションが含まれていないことがわかりました。どのプロセスが対応するソケットを開いた(そして使用している)かを知るために、他にどのような可能性がありますか?


lsofはそのバージョンのbusyboxの一部ですか?
Zoredache 2011年

残念ながら違います。
a1337q 2011年

回答:


15

同等の情報は、わずかに醜い形式(別名16進数)でにあり/proc/net/tcpます。そこで、接続のiノードを見つけることができます/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]

2番目のステップではrootアクセスが必要です。

-pオプションほど便利ではありませんが、バインドで機能します。必要に応じて、スクリプトを作成できます。


クールに聞こえますが、私のnetstatは期待どおりに機能せず、-eオプションを使用しても追加の出力はありません。私も6つの列に-eを付けています:Proto、Recv-Q、Send-Q、Local Address、Foreign Address、State。ポートに方法はありますか?私はポートを見ることができます。..
a1337q

あなたは正しい、私は私のテストを台無しにしたにちがいない。私はあなたに実用的な解決策を与えるためにそれを編集しました。
Peter Eisentraut、2011年

1
2番目のコマンドで入力した「2560」という数字をどのように見つけますか?それが問題です。
ygoe

あなたが使用する必要があり@ygoe 6115:そして、このようにそれを使用find /proc/ -type l | grep /fd/ | xargs ls -la 2>/dev/null | grep 6115
サム・

3

Busyboxを再構築する機会がない場合、これは役に立たない可能性がありますが、万一に役立つ場合に備えて...

Busyboxには-pBusyboxnetstatの切り替えをサポートする構成オプションがあります。Networking Utilities→netstat→Enable PID / Program name outputのCONFIG_FEATURE_NETSTAT_PRG busybox menuconfigで選択されたオプションを参照してください。


0

ssデバイスを持っているか、デバイスに乗ることができる場合は、PIDも表示できます。

ss -ltp # for TCP
ss -lup # for UDP
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.