1
, 나는, O/I를 않습니다 그래서 같은 과정 procA
가지고 : 호스트 B에netcat 및 fifo를 통해 2 개의 원격 프로세스를 함께 연결하는 방법은 무엇입니까? 호스트 A에
#!/bin/bash
while sleep 1 ; do
# Consume input *if available*
if read -t 0.5 x; then # a timed-read
# If input is available, output it.
echo "HostA Input: $x"
fi
# Produce some output.
echo "HostA Output: $(date)"
done
을, 나는 procB
이/입력을 태그 유일한 차이점과 매우 유사한 과정, procB
이 접두어 (접두어 HostA
대신)이있는 출력.
지금의 표준 입력 'procA
에 표준 출력의'난의 표준 입력 'procB
에의 표준 출력'procA
를 보낼 수있는 netcat을 프로그램 (/usr/bin/nc
)를 사용하려면, 그리고 procB
.
[HostB]$ nc -l 4000
[HostA]$ nc HostB 4000
:이 모든 나의 기대는 호스트 A의 출력이 호스트 B에 표시해야하고, 호스트 B의 출력이
정식 nc
예를 피어 - 투 - 피어 채팅 다음에 일어날만큼 ... 호스트 A에 표시해야한다는 것입니다 나는 다음과 같이 프로세스
procA
및
procB
와 두 호스트에서 인간을 대체하여
을 위의 정식 예제를 확장하려고 할 때
, 그것은 작동하지 않았다 :
호스트 B 에 :
$ mkfifo p
$ ./procB <p | nc -l 4000 >p
<WHY NO OUTPUT HERE??>
3,691,363,210하고, 호스트 A 에 :
$ mkfifo p
$ ./procA <p | nc HostB 4000 >p
<WHY NO OUTPUT HERE??>
참고 :
- I 포트 4000는 호스트 B에 열려 있음을 확인했습니다.
호스트 B에 :
$ mkfifo p
$ ./procB <p | nc -l 4000 >p
호스트 A 에 :
$ ./procA | nc HostB 4000
HostB Output: Wed Jan 11 13:53:37 IST 2012
HostB Output: Wed Jan 11 13:53:39 IST 2012
HostB Input: HostA Output: Wed Jan 11 13:55:02 IST 2012
HostB Output: Wed Jan 11 13:53:40 IST 2012
HostB Input: HostA Output: Wed Jan 11 13:55:04 IST 2012
HostB Output: Wed Jan 11 13:53:41 IST 2012
HostB Input: HostA Output: Wed Jan 11 13:55:05 IST 2012
HostB Output: Wed Jan 11 13:53:42 IST 2012
^C
이제 nc
에 nc
바이너리에서 활성화 된 경우 어떻게 든 사용할 수있는 INSECURE 옵션 -e
이 제공되지만 -e
옵션을 사용할 수 없다고 가정하면 nc
을 통해 서로 2 개의 원격 프로세스를 어떻게 연결할 수 있습니까? ? 기본적으로, 내가 잘못 가고있는 곳은 어디입니까? 위에 표시된 장소에 출력이없는 이유는 무엇입니까? 미리 감사드립니다.