청취 모드에서 원격으로 netcat을 시작하려고 할 때 예상치 못한 동작이 많이 관찰되었습니다.
1. 다음 명령을 사용하는 경우:
ssh [email protected] 'nc -l -k 80 &'
클라이언트에서 이 리스너로의 첫 번째 TCP 연결이 실패하는 것을 확인했습니다. 연결을 설정하려고 하면 수신기는 FIN 패킷을 내보내고 연결을 닫습니다. 그러나 다시 연결을 시도하면 연결이 설정됩니다. 파일 설명자와 -d 옵션을 사용하여 netcat을 시작할 때 몇 가지 문제를 발견했습니다.
ssh [email protected] 'nc -d -l -k 80 &'
, 이 문제는 해결되었습니다. 하지만 이 문제의 원인이 정확히 무엇인지 이해할 수 없습니다. 내 질문은 SSH를 사용하여 원격으로 실행할 때 netcat이 다르게 동작하는 이유입니다.
제가 알아차린 또 다른 문제는 음성 모드가 작동하지 않는다는 것입니다.
SSH[이메일 보호됨]'nc -l -v -k 80 &'
-v를 사용하면 netcat이 시작되지도 않습니다.
답변1
명령을 &로 끝내지 말고 -f
ssh에 플래그를 제공하십시오. Netcat이 출력을 쓰고 sshd가 사라지면 SIGPIPE로 인해 종료됩니다. 또는 ssh를 통해 출력을 다시 보내지 않으려면 netcat의 출력을 파일로 리디렉션한 다음 백그라운드에 넣을 수 있습니다 ... > /tmp/nc.log &
.