[server] netcat 또는 socat이있는 에코 서버

UDP 에코 서버가 패킷을 가져 와서 수신 한 내용에 정확하게 응답하기를 원합니다. 어떻게 간단하게 사용하여이 작업을 수행 할 수 있습니다 netcat또는 socat? 영원히 살아 있어야하며 여러 호스트에서 오는 패킷을 처리해야합니다.



답변

또 다른 netcat과 같은 도구는 nmap 버전입니다.이 도구는 이와 같은 ncat것을 단순화하기 위해 많은 내장 기능을 갖추고 있습니다. 이것은 작동합니다 :

ncat -e /bin/cat -k -u -l 1235

-e 수단이 빈 / 고양이 / 실행 (사용자가 입력 한 내용을 다시 반향)
-k 수단이 연결 유지, 그것은 각 연결 후 듣기 유지하는 것이
-u 수단 UDP
는 포트 1235에서 수신하는 -l 1235 개 수단


답변

내가 사용하는 socat -v PIPE udp-recvfrom:5553,fork서버와 실행하는 socat - udp:localhost:5553클라이언트를.
이것은 큰 도움 되었습니다!


답변

netcat을 사용하지 않고 socat을 에코 서버로 사용하고 netcat을 클라이언트로 사용할 수도 있습니다.

Socat 에코 서버 (TCP 포트 1234에 있음) :

socat -v tcp-l:1234,fork exec:'/bin/cat'

Netcat 클라이언트 (TCP 포트 1234의 serverip에 연결) :

nc serverip 1234


답변

포크 nc -u -l -p 4321 한 다음 dup (2) 를 사용하여 연결 하는 C 프로그램을 작성할 수 있습니다 .

  • 부모의 표준 출력을 가진 nc stdin
  • 부모의 stdin을 가진 nc stdout

그런 다음 무한 루프에서 부모는 stdin에서 읽고 부모가 읽는 모든 것을 stdout에 씁니다.


답변

Windows에서 실행 중이고 cygwin과 같은 환경과 같은 유닉스를 사용하는 경우 netcat migth는 -e 매개 변수를 제공하지 않습니다. 이것은 나를 위해 잘 작동했습니다.

http://bansky.net/echotool/


답변

netcat Ubunutu에 사전 설치된 솔루션

netcat사전 설치된 우분투 16.04에은에서 온다 netcat-openbsd, 더없는 -c옵션을하지만, 매뉴얼 솔루션을 제공합니다 :

sudo mknod -m 777 fifo p
cat fifo | netcat -l -k localhost 8000 > fifo

그런 다음 클라이언트 예 :

echo abc | netcat localhost 8000

TODO : 입력 문자열 값을 수정하는 방법? 다음은 응답을 반환하지 않습니다.

cat fifo | tr 'a' 'b' | netcat -l -k localhost 8000 > fifo

그러나 원격 쉘 예제는 작동합니다.

cat fifo | /bin/sh -i 2>&1 | netcat -l -k localhost 8000 > fifo

그러나 동시 요청을 간단하게 처리하는 방법을 모르겠습니다.


답변