로컬 소켓에 연결된 PID를 지속적으로 모니터링하는 방법은 무엇입니까?

로컬 소켓에 연결된 PID를 지속적으로 모니터링하는 방법은 무엇입니까?

일부로컬 프로세스포트 1234에서 127.0.0.1에 연결 및 연결 해제 중입니다.

이 포트(또는 서버 프로세스)에 대한 모든 연결을 기록하고 싶습니다.

난 노력 했어

 ss -tpn | grep 1234 

목록이 표시되지만 중지됩니다. 새로운 연결을 계속 기록하지 않으므로 소유자의 소켓이나 PID를 잡을 수 없습니다.

연결 및 연결 해제 소켓의 PID를 검색하는 데 어떤 도구를 사용할 수 있습니까?

답변1

이를 수행하는 "감시" 도구가 있습니다. 또는
while true; do sleep 2; clear; ss -tulnp | grep 1234 ; done
파일에 코드를 추가하고 추적할 수 있습니다. 아마도 CPU 사용량이 발생하지만 원하는 것을 찾는 데 도움이 될 수 있습니다.
리눅스 감시 명령

답변2

connectLinux에서 TCP 이벤트를 모니터링하는 데 사용할 수 있는 두 가지 도구가 있습니다 .

둘 사이의 차이점은 전자는 출력을 사용자 정의하기 위한 옵션(예: PID 또는 포트 번호로 필터링)을 제공하는 반면 후자는 더 단순한 도구이며 멋진 옵션을 제공하지 않는다는 것입니다.

귀하의 사용 사례에서 가장 간단한 옵션은 bcc를 설치하고 다음을 실행하는 것입니다.

tcpconnect.py -P 1234

배포판의 패키지 관리자를 사용하여 이러한 도구를 설치하는 경우 일부 배포판은 대신 다른 곳에 배치 tcpconnect하지 않는다는 점을 명심하십시오 . 따라서 해당 파일을 찾을 수 없는 경우 배포판에서 이러한 파일을 저장하는 위치를 확인하세요./usr/bin/usr/share

답변3

소켓 통계만 덤프 하고 연속 덤프( 또는 루프 포함)를 ss시뮬레이션해야 하지만 연속 모드( )가 있습니다.watchwhilenetstat-c

netstat -ntcp | grep '  127.0.0.1:1234'

클라이언트 PID만 캡처해야 하는 경우 127... 앞의 두 공백은 오타가 아닙니다.
샘플 출력:

$ netstat -ntcp | grep '  127.0.0.1:1234'
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:50146         127.0.0.1:1234          ESTABLISHED 21274/nc            
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:50146         127.0.0.1:1234          ESTABLISHED 21274/nc            
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:50146         127.0.0.1:1234          ESTABLISHED 21274/nc            
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:35720         127.0.0.1:1234          ESTABLISHED 22655/nc            
tcp        0      0 127.0.0.1:50146         127.0.0.1:1234          ESTABLISHED 21274/nc            
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:35720         127.0.0.1:1234          ESTABLISHED 22655/nc            
tcp        0      0 127.0.0.1:50146         127.0.0.1:1234          ESTABLISHED 21274/nc

답변4

watch -n 1 -d 'lsof -n -itcp:1234'

로깅이 아닌 하이라이트로 실시간으로 강력한 모니터링을…

$ man watch

  • -n 1 - 1초마다
  • -d - 차이점 강조

$ man lsof

  • -n - 도메인에 대한 IP를 확인하지 않습니다.
  • -itcp:1234 - 모두 tcp 포트 1234와 상호 작용합니다.

관련 정보