4

Я хочу найти некоторые процессы, которые работают на указанном порту, например, 80

Я побежал

fuser 80/tcp

и ничего не получил

а потом

netstat -tulpn|grep "80\|PID"

и получил

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

PID -

так что - значит? Спасибо!

1 ответ1

3

Краткий ответ: вам нужно быть пользователем root , чтобы увидеть все привязки.

Немного больше:

Man-страница netstat дает подсказку, которая не обязательна во всех случаях:

PID/ Имя программы Разделенная косой чертой пара идентификатора процесса (PID) и имени процесса, которому принадлежит сокет. --program вызывает включение этого столбца. Вам также понадобятся привилегии суперпользователя, чтобы увидеть эту информацию на сокетах, которыми вы не владеете.

Поэтому, как обычный пользователь, вы видите, какой процесс прослушивает порт, если вы им владеете:

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

Вы видите "ваш" процесс netcat, но не тот, кто слушает, например, порт 22.

У меня такое ощущение, что причина в том, что вы не можете получить доступ к /proc/[PID]/fd для не принадлежащих вам процессов. Там вы найдете процесс дескрипторов файлов [PID] который в настоящее время открыт, и в Un * x (почти) все является файлом ... и сокеты.

В моем примере sshd , pid 3934, слушает порт 22 (сюрприз-сюрприз):

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

(Второй сокет связан с адресом IPv6, который я пропустил в выводе netstat.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .