Busybox, netstat, no -p

7

Eu tenho um ultra velho (não pergunte por que) BusyBox (BusyBox v1.01 (2008.12.19-21: 31 + 0000) Shell embutido (cinza)) no meu DreamBox . Eu gostaria de descobrir qual processo abriu a conexão usando o netstat. Mas descobri que o netstat do BusyBox não contém a opção -p . Que outras possibilidades eu tenho para descobrir qual processo abriu (e está usando) o soquete correspondente?

    
por a1337q 07.01.2011 / 21:23

2 respostas

9

Você pode encontrar as informações equivalentes em um formato ligeiramente mais feio (por exemplo, hexadecimal) em /proc/net/tcp . Lá, você pode encontrar o inode da conexão, que você pode procurar em /proc/$pid/fd/ .

Por exemplo:

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

(No netstat normal, mas não no busybox netstat, a opção -e também fornece informações extras.)

e

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

Você precisa de acesso root para o segundo passo.

Não é tão conveniente quanto a opção -p , obviamente, mas funciona em uma ligação. Poderia ser roteirizado, se necessário.

    
por 07.01.2011 / 21:55
3

Isso pode não ajudar se você não tiver a oportunidade de reconstruir o Busybox, mas no caso de ajudar alguém ...

O Busybox tem uma opção de configuração para suportar a opção -p de Busybox netstat . Veja a opção CONFIG_FEATURE_NETSTAT_PRG , selecionada em busyuc menuconfig via Utilitários de rede → netstat → Ativar saída de nome de programa / PID .

    
por 06.05.2013 / 04:22