Busybox, netstat, no -p

10

Mam bardzo stary (nie pytaj dlaczego) BusyBox (BusyBox v1.01 (2008.12.19-21: 31 + 0000) Wbudowana powłoka (jesion) na moim DreamBox. Chciałbym dowiedzieć się, który proces otworzył połączenie przy użyciu netstat. Ale dowiedziałem się, że netstat BusyBox nie zawiera opcji -p . Jakie inne możliwości muszę sprawdzić, który proces otworzył (i używa) odpowiednie gniazdo?

a1337q
źródło
Czy lsof jest częścią tej wersji busyboksa?
Zoredache,
Niestety nie.
a1337q,

Odpowiedzi:

15

Można znaleźć równoważne informacje w nieco brzydszej formie (inaczej szesnastkowej) w /proc/net/tcp. Tam znajdziesz i-węzeł połączenia, pod którym możesz sprawdzić /proc/$pid/fd/.

Na przykład:

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

(W zwykłym netstacie, ale nie w busystat netstat, ta -eopcja zapewnia również dodatkowe informacje).

i

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

Potrzebujesz dostępu do konta root na drugim etapie.

-pOczywiście nie tak wygodna jak opcja, ale działa w powiązaniu. W razie potrzeby może być skryptowany.

Peter Eisentraut
źródło
Brzmi fajnie, ale mój netstat nie działa tak, jak powinien, nie wypisuje nic więcej z opcją -e . Mam 6 kolumn również z -e : Proto, Recv-Q, Send-Q, adres lokalny, adres obcy, stan. Czy istnieje sposób na porty? Widzę port ..
a1337q
Masz rację, musiałem popsuć moje testy. Zredagowałem go, aby dać ci działające rozwiązanie.
Peter Eisentraut,
2
Jak znaleźć liczbę „2560”, którą wpisujesz w drugim poleceniu? Oto jest pytanie.
ygoe
1
@ygoe musisz używać 6115i używać go w następujący sposób:find /proc/ -type l | grep /fd/ | xargs ls -la 2>/dev/null | grep 6115
Sam
3

Może to nie pomóc, jeśli nie masz możliwości odbudowania Busybox, ale na wypadek, gdyby to pomogło każdemu ...

Busybox ma opcję konfiguracji do obsługi -pprzełączania Busyboxnetstat . Zobacz opcję CONFIG_FEATURE_NETSTAT_PRGwybraną w menu busybox za pomocą Networking Utilities → netstat → Włącz wyjście PID / Nazwa programu .

Craig McQueen
źródło
0

Jeśli masz lub możesz dostać się ssna swoje urządzenie, może również wyświetlić PID:

ss -ltp # for TCP
ss -lup # for UDP
krupan
źródło