Busybox, netstat, no -p

10

Saya memiliki BusyBox (BusyBox v1.01 (200812.19-21: 31 + 0000) ultra-tua (jangan tanya mengapa) BusyBox (shell)) di DreamBox saya. Saya ingin mengetahui proses mana yang membuka koneksi mana yang menggunakan netstat. Tapi saya menemukan bahwa netstat BusyBox tidak mengandung opsi -p . Kemungkinan lain apa yang harus saya cari tahu proses mana yang telah membuka (dan menggunakan) soket yang sesuai?

a1337q
sumber
Apakah ini bagian dari versi busybox?
Zoredache
Sayangnya tidak.
a1337q

Jawaban:

15

Anda dapat menemukan informasi yang setara dalam bentuk yang sedikit lebih buruk (alias heksadesimal) di /proc/net/tcp. Di sana, Anda dapat menemukan inode koneksi, yang dapat Anda cari di bawah /proc/$pid/fd/.

Sebagai contoh:

$ 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
...

(Di netstat normal, tetapi tidak di busybox netstat, -eopsi juga memberi Anda informasi tambahan itu.)

dan

$ sudo ls -l /proc/2560/fd
...
lrwx------ 1 root root 64  7 jan 22.50 3 -> socket:[6115]

Anda memerlukan akses root untuk langkah kedua.

Tidak nyaman sebagai -ppilihan, jelas, tetapi karya-karya dalam mengikat. Bisa dituliskan, jika perlu.

Peter Eisentraut
sumber
Kedengarannya keren, tetapi netstat saya tidak berfungsi sebagaimana mestinya, tidak menghasilkan apa-apa tambahan dengan opsi -e . Saya memiliki 6 kolom juga dengan -e : Proto, Recv-Q, Send-Q, Alamat Lokal, Alamat Asing, Negara. Apakah ada cara dengan port? Saya dapat melihat port ..
a1337q
Anda benar, saya pasti mengacaukan tes saya. Saya mengeditnya untuk memberi Anda solusi yang berfungsi.
Peter Eisentraut
2
Bagaimana Anda menemukan nomor "2560" yang Anda ketikkan pada perintah kedua? Itu pertanyaannya.
ygoe
1
@ygoe, Anda harus menggunakan 6115dan menggunakannya seperti ini:find /proc/ -type l | grep /fd/ | xargs ls -la 2>/dev/null | grep 6115
Sam
3

Ini mungkin tidak membantu, jika Anda tidak memiliki kesempatan untuk membangun kembali Busybox, tetapi jika itu membantu siapa pun ...

Busybox memang memiliki opsi konfigurasi untuk mendukung -ppergantian Busyboxnetstat . Lihat opsi CONFIG_FEATURE_NETSTAT_PRG, yang dipilih di menboxen busybox melalui Utilitas Jaringan → netstat → Aktifkan PID / Output nama program .

Craig McQueen
sumber
0

Jika Anda memiliki atau dapat ssmenggunakan perangkat Anda, PID tersebut juga dapat menunjukkan kepada Anda:

ss -ltp # for TCP
ss -lup # for UDP
krupan
sumber