에서 실행 스크립트는이 같은 터널을 실행하고 있습니다 :Socat : 양방향 터널
socat TCP-LISTEN:9090,fork TCP:192.168.1.3:9090
나는 터널을 통과하는 문자열 코드를 실행하는 스크립트를 실행하고 싶습니다.
스크립트는 문자열을 변경하지 않고 문자열 만 독립적으로 처리하지만 양 끝 간에는 변경하지 않고 통과를 허용합니다.
이것이 가능합니까?
에서 실행 스크립트는이 같은 터널을 실행하고 있습니다 :Socat : 양방향 터널
socat TCP-LISTEN:9090,fork TCP:192.168.1.3:9090
나는 터널을 통과하는 문자열 코드를 실행하는 스크립트를 실행하고 싶습니다.
스크립트는 문자열을 변경하지 않고 문자열 만 독립적으로 처리하지만 양 끝 간에는 변경하지 않고 통과를 허용합니다.
이것이 가능합니까?
당신도이 방법을 사용하여 통신을 변경 할 수 있어야한다 :
각 연결에 대해 실행됩니다 도우미 스크립트 helper.sh
준비 :
#!/bin/bash
./inFilter.sh | socat - TCP:192.168.1.3:9090 | ./outFilter.sh
을 그리고 사용하여 음악을 감상 :
socat TCP-LISTEN:9090,fork EXEC:"./helper.sh"
을
inFilter.sh
및 outFilter.sh
스크립트는 클라이언트의 클라이언트와 서버 부분을 처리합니다. mmunication.
예 inFilter.sh
:
#!/bin/bash
while read -r l ; do echo "IN(${l})" ; done
예 outFilter.sh
:
#!/bin/bash
while read -r l ; do echo "OUT(${l})" ; done
이 방법은 온라인 기반의 텍스트 통신을 위해 작동합니다 (거의 모든 line-buffered입니다).
stdbuf -i0 -o0
으로 모든 프로세스를 래핑하는 바이너리 프로토콜로 작동하게하려면이 경우에는 쉘 제거가 도움이 될 수 있습니다 (예 : here 참조).
행운을 빈다.