나는 프로세스를 수신하고 있습니다 IP:port
. 실제로 그것은 소켓에 연결된 스파크 스트림입니다. 문제는 한 포트에서 Spark에 연결하고 다른 포트에서 데이터를 스트리밍하는 서버를 어떻게든 만들고 싶다는 것입니다.
예를 들어 Spark 스트리밍 예제에서는 netcat 유틸리티(예: nc -lk 5005
)를 사용합니다. 그러나 들어오는 메시지를 수신한 다음 내보내는 또 다른 서비스가 있습니다. 따라서 서비스 A의 메시지를 수신하고 이를 Spark에 전달할 수 있는 일종의 서버가 필요합니다.
내 서비스 A는 소켓에 따라 다릅니다. 내 Spark 소비자는 소켓을 사용합니다.
포트에서 포트로 전달하기 위해 지금까지 수행한 작업은 다음과 같습니다. 그러나 작동하지 않는 것 같습니다.
nc -X 4 -x 127.0.0.1:5005 localhost 5006
아이디어는 서비스 A:5005
-> 소켓 -> 5006
-> 스파크 입니다.
이 작업을 수행하는 올바른 방법을 찾을 수 없는 것 같습니다.
일부 답변은 다음을 제안했습니다.
socat tcp-l:5005,fork,reuseaddr tcp:127.0.0.1:5006
내 스파크 소켓 수신기가 연결되지 않거나 연결할 수 없는 것 같습니다. 오류가 발생합니다.Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused
답변1
또는 모드 없이 nc
전달 트래픽만 사용할 수 없습니다 .nc
keep-alive
fork
대신 다른 도구를 사용해야 합니다 nc
(예: socat
또는 ) .ncat
이 명령은 포트에서 수신 대기 5050
하고 모든 것을 포트로 전달합니다.2020
socat tcp-l:5050,fork,reuseaddr tcp:127.0.0.1:2020
ncat
더 읽어보세요
Ncat은 명령줄에서 네트워크를 통해 데이터를 읽고 쓸 수 있는 기능이 풍부한 네트워크 유틸리티입니다. Ncat은 Nmap 프로젝트용으로 작성되었으며 유서 깊은 Netcat을 훨씬 개선하여 재구현한 것입니다. 그것
ncat -l localhost 8080 --sh-exec "ncat example.org 80"
사용할 수 있는 다른 도구는 다음과 같습니다.
- 프록시 서버: (다운로드소스 코드 또는 bin 파일)
포트 1234에서 수신 대기하고 주소 "1.1.1.1"의 포트 4567로 전달합니다.
./proxy tcp -p ":1234" -T tcp -P "1.1.1.1:4567"
- 고스트(다운로드소스 코드 그리고 쓰레기통)영어 읽어보기 파일
포트 1234에서 수신 대기하고 주소 "1.1.1.1"의 포트 4567로 전달합니다.원천
./gost -L tcp://:1234/1.1.1.1:4567
답변2
비슷한 사용 사례가 있습니다. 내 목적은 외부 포트에서 수신 대기하고 역방향 SSH 터널을 가리키는 내부 포트로 전달하는 것입니다.
외부 포트: 8001
내부 포트: 18820
nc -l -k -p 8001 -c "nc 127.0.0.1 18820"
인용하다:
답변3
net cat을 통한 포트 전달의 경우 파이프를 사용할 수 있습니다.
mkfifo pip
nc -l -p port_to_listen < pip | nc target_ip port_to_be_forwarded > pip
또는:
nc target_ip port_to_be_forwarded < pip | nc -l -p port_to_listen > pip