열린 네트워크 포트에서 이상한 상황이 발생합니다. 내 주요 질문은 열린 TCP 포트와 관련된 프로그램이없는 이유입니다.
netstat -ln --program
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN -
필자의 경우 5666 포트에서 수신 대기하는 nrpe 데몬 (opsview 설치)이 있어야하지만 nrpe 데몬은 실행되고 있지 않습니다. 시작하려고하면 즉시 종료됩니다.
lsof -i :5666
출력도 표시하지 않습니다. 내 시스템에서 (x) inetd가 실행되고 있지 않습니다.
최신 정보
예, 해당 명령을 루트로 실행했습니다. 텔넷은 가능했지만 응답이 없었습니다.
추가 조사 후 커널 오류가 발견되었습니다 dmesg
. 이것은 이전 커널을 실행하는 EC2 인스턴스 (실제로는 그중 몇 개)였습니다 (2.6.16은 불안정합니다). 충돌을 막기위한 해결책은 커널 을 업그레이드하는 것이 었습니다 .
커널 충돌로 인해 프로세스가 중단되고 포트가 열린 상태 인 것처럼 보입니다.
답변
커널에 의해 열린 포트는 프로그램 이름과 함께 나타나지 않습니다. 일부 NFS 및 OCFS 항목이 떠 오릅니다. 어쩌면 그런 식일까요?
아니면 커널 버그 일 수 있습니다. 커널 로그에서 OOPS 및 BUG를 확인하십시오.
답변
netstat 및 lsof를 루트 또는 sudo로 실행 했습니까? 마지막 열에 주목하십시오 :
netstat -ln --program
tcp 0 0 192.168.21.1:53 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
sudo netstat -ln --program
tcp 0 0 192.168.21.1:53 0.0.0.0:* LISTEN 2566/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 2566/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3125/sshd
netstat 맨 페이지에서 :
소유하지 않은 소켓에서이 정보를 보려면 수퍼 유저 권한이 필요합니다.
달리고 있지 않다는 것을 어떻게 알 수 있습니까? 포트가 사용 중이면 ‘사용중인 소켓’오류와 함께 즉시 종료됩니다. 포트에 텔넷 연결하면 어떻게됩니까?
telnet localhost 5666
답변
‘netstat –tcp –udp –listening –program’을 루트 사용자로 실행하십시오 . 그렇지 않으면 PID / 프로그램 이름을 제공하지 않습니다
그런 다음 kill -9 PID 명령을 사용하십시오.
답변
나는 실제로 다음과 같은 질문에 답할 수 있도록 작은 쉘 스크립트를 작성했습니다.
#! /bin/bash
([ "$1" = "" ] || [ "$2" = "" ]) && echo "Usage: tracer <space> <port>" && exit 0
for i in `fuser -n $1 $2`
do
ps aux | grep $i | grep -v 'grep'
done
/ usr / local / bin / tracer로 저장하십시오. 산출:
root@mo-log:/usr/flows# tracer tcp 80
80/tcp:
root 27904 0.0 0.0 111668 3292 ? Ss Aug04 0:03 /usr/sbin/apache2 -k start
www-data 32324 0.0 0.0 335332 3560 ? Sl Aug05 0:00 /usr/sbin/apache2 -k start
www-data 32327 0.0 0.0 335324 3560 ? Sl Aug05 0:00 /usr/sbin/apache2 -k start
사용하려면 루트 권한이 필요합니다
답변
netstat를 통해 inode를 가져온 다음 lsof와 함께 inode를 사용하여 프로세스를 추적 할 수있었습니다. /server//a/847910/94376 에서 더 자세한 답변을 참조하십시오 .
답변
때때로 nfs 관련 프로그램이 프로그램 목록에 표시되지 않을 수 있습니다.
또한 LDAP pam 모듈 및 libnss_ldap는 ldap 서버에 대한 연결을 열지 만 연결을 연 상태로 유지하는 실제 프로세스는 없으므로 netstat -tnp는 프로세스없이 활성 연결을 표시합니다.