Busybox, netstat, no -p


10

У мене надбудова (не запитайте, чому) BusyBox (BusyBox v1.01 (2008.12.19-21: 31 + 0000) Вбудована оболонка (зола)) на моєму DreamBox. Я хотів би дізнатися, який процес відкрив яке з'єднання за допомогою netstat. Але я з'ясував, що netstat BusyBox не містить опції -p . Які ще можливі можливості мені з’ясувати, який процес відкрив (і використовує) відповідний сокет?


Чи частина lsof цієї версії зайнятої?
Зоредаче

На жаль ні.
a1337q

Відповіді:


15

Ви можете знайти еквівалентну інформацію в трохи потворнішій формі (він же шістнадцятковий) у /proc/net/tcp. Там ви можете знайти вхід з'єднання, під яким ви можете подивитися /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, але не в netstat netstat, -eопція також дає вам додаткову інформацію.)

і

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

Вам потрібен кореневий доступ для другого кроку.

-pОчевидно, не так зручно, як варіант, але працює у палітурці. Може бути написано, якщо це необхідно.


Звучить круто, але мій netstat працює не так, як слід, він виводить нічого додаткового за допомогою опції -e . У мене також 6 стовпців з -e : Proto, Recv-Q, Send-Q, Локальна адреса, Іноземна адреса, Штат. Чи є спосіб з портами? Я можу побачити порт ..
a1337q

Ви маєте рацію, я, мабуть, зіпсував свої тести. Я відредагував це, щоб дати вам робоче рішення.
Пітер Ейзентравт

2
Як ви знайдете число "2560", яке ви вводите у своїй другій команді? Це питання.
ygoe

1
@ygoe, ви повинні використовувати 6115та використовувати його так:find /proc/ -type l | grep /fd/ | xargs ls -la 2>/dev/null | grep 6115
Сем

3

Це може не допомогти, якщо у вас немає можливості відновити Busybox, але, якщо це допоможе комусь ...

Busybox має опцію конфігурації для підтримки -pкомутатора Busyboxnetstat . Див. Опцію CONFIG_FEATURE_NETSTAT_PRG, вибрану в меню зайнятої конфігурації через утиліти мережі → netstat → Увімкнути вихід PID / програми .


0

Якщо ви маєте або можете придбати ssна своєму пристрої, він також може показати вам PID:

ss -ltp # for TCP
ss -lup # for UDP
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.