더 많은 제어권을 가지기 위해 "netcat" 릴레이를 올바르게 수행하려면 어떻게 해야 합니까?

더 많은 제어권을 가지기 위해 "netcat" 릴레이를 올바르게 수행하려면 어떻게 해야 합니까?

릴레이를 어떻게 사용하나요 netcat? 시도했지만 작동하지 않습니다.

cd /tmp
mknod backpipe p
nc -l -p 7007 0<backpipe | nc 192.168.1.101 9001 | tee backpipe
  1. 7007에서 데이터를 수신하려면 청취 모드에 있어야 합니다.
    $다른 응용 프로그램이 여기에 패킷을 넣고 있습니다.

  2. 7007에 무슨 일이 일어나고 있나요? 9001(수신 포트이기도 함)로 이동해야 합니다.

    $ telnet localhost 9001
    

    7007 패킷이 표시됩니까?

어떤 아이디어가 있나요?

선택 사항: 패킷에 추가 헤더를 넣을 수도 있나요? http 헤더를 이미지 콘텐츠 유형으로 에뮬레이션하시겠습니까?

답변1

이렇게 하면:

nc -l -p 7007 | nc -l -p 9001

포트 7007로 들어오는 모든 것은 두 번째 netcat으로 파이프되어 포트 9001의 텔넷 세션으로 중계됩니다.

헤더를 삽입하려면 기본 프로토콜을 이해하고 최소한 "메시지" 경계를 파악해야 하므로 이는 사소한 일이 아닙니다. 이를 수행하는 방법을 알고 있다면 두 파이프 사이에 코드를 삽입하여 이를 수행할 수 있습니다.

nc -l -p 7007 | ./my_filter | nc -l -p 9001

./my_filter입력이 수행 stdin되고 기록된 모든 내용이 stdout포트 9001에 표시됩니다.

관련 정보