Busybox, netstat, não -p

10

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

a1337q
fonte
Isso faz parte dessa versão do busybox?
Zoredache
Infelizmente não.
precisa saber é o seguinte

Respostas:

15

Você pode encontrar as informações equivalentes na forma um pouco mais feia (também conhecida como hexadecimal) em /proc/net/tcp. Lá, você pode encontrar o inode da conexão, no qual você pode procurar /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 -eopção também fornece essas 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 -popção, obviamente, mas funciona em um vínculo. Pode ser com script, se necessário.

Peter Eisentraut
fonte
Parece legal, mas meu netstat não funciona como deveria, não produz nada adicional com a opção -e . Eu tenho 6 colunas também com -e : Proto, Recv-Q, Send-Q, Endereço local, Endereço estrangeiro, Estado. Existe uma maneira com as portas? Eu posso ver a porta ..
a1337q
Você está certo, eu devo ter estragado meus testes. Eu editei para fornecer uma solução funcional.
Peter Eisentraut
1
Como você encontra o número "2560" digitado no seu segundo comando? Essa é a questão.
ygoe 22/03/19
@ygoe você tem que usá 6115-lo e usá-lo desta forma: #: 277find /proc/ -type l | grep /fd/ | xargs ls -la 2>/dev/null | grep 6115
Sam
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 possui uma opção de configuração para dar suporte ao -pswitch do Busyboxnetstat . Consulte a opção CONFIG_FEATURE_NETSTAT_PRGselecionada no menu busybox através de Utilitários de rede → netstat → Ativar saída do nome do programa / PID .

Craig McQueen
fonte
0

Se você possui ou pode acessar ssseu dispositivo, ele também pode mostrar o PID:

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