[server] netstat는 pid가없는 수신 포트를 표시하지만 lsof는 표시하지 않습니다

이 질문은 네트워크 포트가 열려 있지만 프로세스가 연결되어 있지 않습니까?

거기에서 모든 것을 시도하고 로그 등을 검토했지만 아무것도 찾을 수 없습니다.

내 netstat는 TCP 수신 포트와 pid가없는 UDP 포트를 보여줍니다. 해당 포트를 lsof를 검색하면 아무것도 나타나지 않습니다.

netstat -lntup
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:44231           0.0.0.0:*               LISTEN      -
udp        0      0 0.0.0.0:55234           0.0.0.0:*                           -

다음 명령은 아무것도 표시하지 않습니다.

lsof | grep 44231
lsof | greo 55234
fuser -n tcp 44231
fuser -n udp 55234

재부팅 후 새 포트 번호를 제외하고는 “동일한”두 개의 연결이 있습니다.

netstat -lntup
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:45082           0.0.0.0:*               LISTEN      -
udp        0      0 0.0.0.0:37398           0.0.0.0:*                           -

그리고 다시 한 번 lsof 및 fuser 명령은 아무 것도 표시하지 않습니다.

그들이 어떤 아이디어입니까? 그들에 대해 걱정해야합니까?



답변

제공 한 데이터에서 NFS 마운트 또는 RPC를 사용하는 것과 관련이 있다고 말하고 싶습니다.

당신은 확인 할 수 rpcinfo -pRPC 관련 서비스의 일부에 의해 사용될 수있는 포트.

내 시스템에서 어떻게 보이는지

# netstat -nlp | awk '{if ($NF == "-")print $0}'
tcp        0      0 0.0.0.0:55349           0.0.0.0:*               LISTEN      -
udp        0      0 0.0.0.0:18049           0.0.0.0:*                           -

# rpcinfo -p
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  10249  status
    100024    1   tcp  10249  status
    100021    1   udp  18049  nlockmgr
    100021    3   udp  18049  nlockmgr
    100021    4   udp  18049  nlockmgr
    100021    1   tcp  55349  nlockmgr
    100021    3   tcp  55349  nlockmgr
    100021    4   tcp  55349  nlockmgr


답변

일부 프로세스 / pid는 루트에서만 사용할 수 있습니다. 시험

sudo netstat -antlp

TIME_WAIT 상태가 아닌 모든 열린 포트의 pid를 반환해야합니다.


답변

@ user202173 및 기타의 힌트를 기반으로 -netstat에 나열된 경우에도 포트를 소유하는 프로세스를 추적하기 위해 다음을 사용할 수있었습니다 .

여기 내 출발 상황이 있었다. sudo netstatPID / Program of의 포트를 보여줍니다 -. lsof -i아무것도 보여주지 않습니다.

$ sudo netstat -ltpna | awk 'NR==2 || /:8785/'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::8785                 :::*                    LISTEN      -
tcp6       1      0 ::1:8785                ::1:45518               CLOSE_WAIT  -
$ sudo lsof -i :8785
$

이제 낚시하러 가자 먼저 호출 에 추가하여 inode를 가져 오 -e겠습니다 netstat.

$ sudo netstat -ltpnae | awk 'NR==2 || /:8785/'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp6       0      0 :::8785                 :::*                    LISTEN      199179     212698803   -
tcp6       1      0 ::1:8785                ::1:45518               CLOSE_WAIT  0          0           -

다음으로 lsof프로세스를 해당 inode에 연결하십시오.

$ sudo lsof | awk 'NR==1 || /212698803/'
COMMAND      PID    TID                USER   FD      TYPE             DEVICE   SIZE/OFF       NODE NAME
envelope_ 145661 145766               drees   15u     IPv6          212698803        0t0        TCP *:8785 (LISTEN)

이제 프로세스 ID를 알고 있으므로 프로세스를 볼 수 있습니다. 불행히도 그것은 소멸 된 과정입니다. 그리고 PPID가 1이므로 부모도 죽일 수 없습니다 ( 부모가 init 인 프로세스를 어떻게 죽일 수 있습니까? 참조 ). 이론적으로 init는 결국 정리할 수 있지만 기다렸다가 재부팅하는 데 지쳤습니다.

$ ps -lf -p 145661
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 Z drees    145661      1  2  80   0 -     0 exit   May01 ?        00:40:10 [envelope] <defunct>


답변

나는 이것이 무엇인지 구체적으로 알지 못하지만 커널 모듈 (예 : NFS)에는 이러한 소켓과 관련된 PID가 없습니다. lsmod에서 의심스러운 것을 찾으십시오.


답변

이것이 유용 할 수 있는지 모르겠습니다. 나는 같은 문제가 있었고 내가 한 일은 다음과 같습니다. 첫째, -a (all) 및 -e (extended) 옵션을 사용하여 netstat를 호출했습니다. 후자의 옵션을 사용하면 사용 된 포트와 관련된 Inode를 볼 수 있습니다. 그런 다음, 얻은 inode 번호로 lsof | grep을 호출하고 해당 inode와 연관된 프로세스의 PID를 얻었습니다. 그것은 제 경우에 효과가있었습니다.


답변

이 포트에서 들어 오거나 나가는 트래픽이 있습니까? tcpdump -vv -x s 1500 port 37398 -w trace.out파일 추적에 캡처 저장을 사용하여 확인한 다음 wireshark로 열거 나 tcpdump -vv port 37398직접 진행되는 작업을 볼 수 있습니다.

해당 포트에 telnet을 시도하면 udp 소켓에 netcat을 사용하여 도움이되는 배너를 얻을 수 있습니다.

rkhunter를 받고 시스템에 백도어가 있는지 확인하십시오.

업데이트되지 않은 파일을 가정하고 lsof / netstat의 md5 해시를 설치 미디어의 md5 해시와 비교하십시오.


답변