encontra o processo que está escutando em uma porta específica

4

Eu quero encontrar alguns processos que estão sendo executados em uma porta especificada por exemplo 80

eu corri

fuser 80/tcp

e não tenho nada

e depois

netstat -tulpn|grep "80\|PID"

e obtivemos

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 :::80                       :::*                        LISTEN      -  

o PID é -

Então, o que significa - ? obrigado!

    
por misteryes 24.04.2013 / 16:27

1 resposta

3

A resposta curta é: Você precisa ser root para ver todas as ligações.

Um pouco mais:

A manpage do netstat dá uma dica que não é necessária em todos os casos:

PID/Program name Slash-separated pair of the process id (PID) and process name of the process that owns the socket. --program causes this column to be included. You will also need superuser privileges to see this information on sockets you don't own.

Então, como usuário normal, você só vê qual processo escuta uma porta, se você a possui:

$ netcat -l -p 1234 &
$ netstat -tulpn
[...]
tcp        0      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      8044/netcat     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -    
[...]

Você vê "seu" processo netcat, mas não quem está ouvindo, e. porta 22.

Tenho a sensação de que a razão para isso é que você não pode acessar /proc/[PID]/fd para processos que não são de propriedade. Lá você encontra o processo de descritores de arquivos [PID] está aberto no momento e em Un * x (quase) tudo é um arquivo ... assim como soquetes.

No meu exemplo sshd , pid 3934, ouve a porta 22 (surpresa-surpresa):

$ whoami
user
$ ls -l /proc/3934/fd
/bin/ls: cannot open directory /proc/3934/fd: Permission denied
$ sudo ls -l /proc/3934/fd
total 0
lrwx------ 1 root root 64 Apr 24 16:33 0 -> /dev/null
lrwx------ 1 root root 64 Apr 24 16:33 1 -> /dev/null
lrwx------ 1 root root 64 Apr 24 16:33 2 -> /dev/null
lrwx------ 1 root root 64 Apr 24 16:33 3 -> socket:[10481]
lrwx------ 1 root root 64 Apr 24 16:33 4 -> socket:[10483]

(O segundo socket é unido ao endereço do IPv6 que eu omiti em minha saída do netstat.)

    
por 24.04.2013 / 23:12