나는 다음과 같이 터널을 운영하고 있습니다 :
socat TCP-LISTEN:9090,fork TCP:192.168.1.3:9090
터널을 통과하는 문자열로 코드를 실행하는 스크립트를 실행하고 싶습니다.
스크립트는 문자열을 변경하지 않고 문자열만 독립적으로 처리하지만 양쪽 끝 사이를 변경하지 않고 통과할 수 있습니다.
이것이 가능한가?
답변1
그것은지금은 가능socat v2를 사용합니다. socat v2는 다음과 같은 아이디어를 도입했습니다.주소 체인. EXEC
stdin/stdout(파일 설명자 0 및 1)이 수신 소켓에 연결되고 파일 설명자 3 및 4가 송신 소켓에 연결되는 위치를 사용하여 스크립트를 실행할 수 있습니다 .
socat - "TCP-LISTEN:localhost:8000 | EXEC:myscript.sh | TCP:myserver:80"
myscript.sh 예에서는 다음과 같습니다.
- stdin(fd 0) - 포트 8000에서 데이터를 읽습니다.
- stdout(fd 1) - 포트 8000에 데이터 쓰기
- fd 3 - myserver 포트 80에서 데이터를 읽습니다.
- fd 4 - myserver 포트 80에 데이터를 씁니다.