Como encontrar o programa responsável por um soquete TCP específico (linux)

2
joe@server:~$ sudo lsof -i :36168
COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    23059 activemq   15u  IPv6 109382      0t0  TCP *:36168 (LISTEN)

Da saída acima, eu quero desabilitar a porta 36168, mas não sei onde. Como posso encontrar exatamente o arquivo de configuração dessa porta para modificá-lo?

grep por isso não dá resultado. E eu não quero usar um firewall.

    
por Joe Nazz 20.07.2011 / 16:19

4 respostas

1

Da sua saída lsof , você tem o número PID do processo que tem a porta aberta. Do ps -AH para ver uma lista hierárquica de processos e procurar por esse% específico PID . Esse processo será recuado 'abaixo' de outros processos, varrer a árvore até encontrar o processo pai (se você atingir init você foi longe demais, volte um nível abaixo).

Depois de identificar o processo pai, você poderá interromper esse processo usando os scripts init da sua distribuição.

    
por 20.07.2011 / 16:24
1

Eu sempre achei o fusor mais fácil

fuser 80/tcp

Listará todos os pids em execução na porta 80 usando tcp

    
por 20.07.2011 / 16:39
1
netstat -putan | grep 80 | grep LISTEN

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1682/apache2 

Como você pode ver, o apache2 com PID = 1682 é o processo de escuta na porta 80 neste exemplo.

    
por 20.07.2011 / 16:41
0

As portas conhecidas estão em / etc / services. A porta mencionada parece ser usada pelo ativemq, talvez não seja padronizada. Por favor, veja a configuração do activemq, ou os webapps implementados, se estiverem sendo executados no contêiner da web. Você pode proteger a instalação se fizer ligação no endereço local (127.0.0.1 ou :: 1). Se você não precisa do ativemq, simplesmente pare o aplicativo.

    
por 20.07.2011 / 16:23