45136/tcp와 37208/udp라는 2개의 포트에서 수신 대기하는 프로세스가 있습니다(실제로는 동일한 프로세스라고 생각합니다). 그러나 netstat는 어떤 PID도 반환하지 않습니다.
netstat -antlp | grep 45136
tcp 0 0 0.0.0.0:45136 0.0.0.0:* LISTEN -
"grep 37208"과 동일한 결과입니다.
나는 또한 lsof를 시도했다:
lsof -i TCP:45136
하지만 아무것도 반환하지 않습니다. 이것은 Extrusion을 새로 설치하는 것이므로 프로세스가 어떻게 될지 잘 모르겠습니다. 어떤 아이디어가 있나요?
답변 귀하의 의견에 감사드립니다. 그것이 무엇인지 압니다. nfs-server nfs-common을 제거했는데(dkpg --get-selections | grep nfs로 검색한 후) 알 수 없는 프로세스가 사라졌습니다. 이상하게도 커널 프로세스는 어떤 방식으로도 표시되지 않습니다.
두 분 모두에게 다시 한번 감사드립니다. ;)
답변1
네트워크 통계
거기에는 프로세스가 있는데, 귀하의 사용자 ID가 무엇인지 명확하지 않습니다. 이것은 lsof
당신이 이것을 보지 못하도록 방지 하는 보호 계층입니다 . 명령을 다시 실행하되 해당 sudo
명령을 접두사로 사용하십시오.
$ sudo netstat -antlp | grep 45136
lsof
상단 출력에는 이에 대한 경고도 있습니다.
(모든 프로세스가 인식되는 것은 아니며, 소유하지 않은 프로세스 정보는 표시되지 않습니다. 모든 프로세스를 보려면 루트 권한이 있어야 합니다.)
예
$ netstat -antlp | grep 0:111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
$ sudo netstat -antlp | grep 0:111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1248/rpcbind
봄 여름 시즌
운이 좋지 않다면 그럴 netstat
수도 ss
있습니다. 여전히 을 사용해야 하며 sudo
출력이 더 비밀스러워질 수 있습니다.
예
$ ss -apn|grep :111
LISTEN 0 128 :::111 :::*
LISTEN 0 128 *:111 *:*
$ sudo ss -apn|grep :111
LISTEN 0 128 :::111 :::* users:(("rpcbind",1248,11))
LISTEN 0 128 *:111 *:* users:(("rpcbind",1248,8))
프로세스 ID가 아직 표시되지 않습니까?
어떤 경우에는 사용 중인 TCP 포트와 연결된 PID가 전혀 없습니다. NFS에 대한 내용은 다음에서 읽을 수 있습니다.@derobert의 답변, 이것은 그중 하나입니다. 아직 더 많은 것을 얻었습니다. 어떤 경우에는 SSH 터널링을 IMAP과 같은 서비스로 다시 사용합니다. 또한 프로세스 ID가 표시되지 않습니다.
어떤 경우든 더 자세한 형식을 사용할 수 있으며 netstat
이는 궁극적으로 TCP 포트를 사용하는 프로세스를 더욱 명확하게 할 수 있습니다.
$ netstat --program --numeric-hosts --numeric-ports --extend
예
$ netstat --program --numeric-hosts --numeric-ports --extend |grep -- '-' | head -10
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 192.168.1.103:936 192.168.1.3:60526 ESTABLISHED root 160024310 -
tcp 0 0 192.168.1.1:2049 192.168.1.3:841 ESTABLISHED sam 159941218 -
tcp 0 0 127.0.0.1:143 127.0.0.1:57443 ESTABLISHED dovecot 152567794 13093/imap-login
tcp 0 0 192.168.1.103:739 192.168.1.3:2049 ESTABLISHED root 160023970 -
tcp 0 0 192.168.1.103:34013 192.168.1.3:111 TIME_WAIT root 0 -
tcp 0 0 127.0.0.1:46110 127.0.0.1:783 TIME_WAIT root 0 -
tcp 0 0 192.168.1.102:54891 107.14.166.17:110 TIME_WAIT root 0 -
tcp 0 0 127.0.0.1:25 127.0.0.1:36565 TIME_WAIT root 0 -
tcp 0 0 192.168.1.1:2049 192.168.1.6:798 ESTABLISHED tammy 152555007 -
출력에 INODES가 포함되어 있는 것을 확인하면 이 정보를 사용하여 프로세스로 역추적할 수 있습니다.
$ find -inum 152555007
그러면 해당 프로세스로 안내할 수 있는 파일이 표시됩니다.
인용하다
답변2
또 다른 옵션은 소켓이 프로세스에 속하지 않고 커널에 속한다는 것입니다. 일반적인 예는 NFS입니다.
Watt:~# netstat -ltp | egrep -- '-[[:space:]]*$'
tcp 0 0 *:nfs *:* LISTEN -
tcp 0 0 *:48131 *:* LISTEN -
tcp6 0 0 [::]:55607 [::]:* LISTEN -
tcp6 0 0 [::]:nfs [::]:* LISTEN -
일반적으로 이러한 항목을 식별하는 좋은 방법이 확실하지 않습니다. NFS의 특별한 경우에는 rpcinfo
다음과 같은 정보를 얻을 수 있습니다.
anthony@Watt:~$ rpcinfo -p | grep 48131
100021 1 tcp 48131 nlockmgr
100021 3 tcp 48131 nlockmgr
100021 4 tcp 48131 nlockmgr
불행히도 이것은 IPv4에서만 작동합니다. v6를 얻으려면 포기해야 합니다 -p
. 그러면 포트 번호가 어리석은 방식으로 표시됩니다. 즉, IP 주소의 두 개의 추가 옥텟으로 표시됩니다. 따라서 포트 55607은 다음과 같습니다.217.55(왜냐하면217 × 256 + 55 =55607):
anthony@Watt:~$ rpcinfo | grep -i 217.55
100021 1 tcp6 ::.217.55 nlockmgr superuser
100021 3 tcp6 ::.217.55 nlockmgr superuser
100021 4 tcp6 ::.217.55 nlockmgr superuser