유닉스 도메인 소켓을 이동하면 socat이 트래픽을 모니터링하는 방법은 무엇입니까?


12

socat 유닉스 도메인 소켓에서 트래픽을 모니터링하는 데 사용할 수 있습니다 :

sudo mv /path/to/sock /path/to/sock.original
sudo socat -t100 -x -v UNIX-LISTEN:/path/to/sock,mode=777,reuseaddr,fork UNIX-CONNECT:/path/to/sock.original

누군가이 메커니즘을 조금 설명 할 수 있기를 바랍니다. 특히, 프로세스가 이미 청취중인 경우 소켓 파일 이동은 어떻게 작동합니까? 또한 이동 후 : 결과 lsof /path/to/sock/path/to/sock.original반환 하지 않습니다 .

답변:


11

모니터링하려는 서버가 현재 수신 대기중인 경우 해당 명령을 실행해야합니다 /path/to/sock. 그런 다음 이름을 바꾸면 /path/to/sock서버에 영향을 미치지 않습니다.

socat명령은 중간자 (man-in-the-middle)를 삽입합니다. 그것은에서 수신 /path/to/socks및 전달 클라이언트의 모든 트래픽을에 /path/to/socks.original(그 과정과 그것을 기록 -v).

즉에만 작동 스트림 (사용 소켓의 종류 UNIX-RECVFROM/ UNIX-RECV대한 데이터 그램 소켓) 만 고객의 경우 단지에 read/write/send/recv해당 소켓에,하지 sendmsg()보조 데이터와 다른 멋진 것들로.

lsof청취 프로세스 ( socat및 청취 및 승인 된 소켓의 서버) 만보고합니다. 일반적으로 클라이언트 의 연결된 소켓을 소켓 경로에 연결할 수 없습니다 .

당신이 그렇게한다면 전에 서버를 시작, 서버와 같은 것을하지 않습니다 일을하려고합니다 듣기/path/to/socks하고 실패 socat이미에 듣고 있습니다. 또는 서버가 /path/to/sock.original대신 청취하도록 지시해야합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.