Netcat 을 사용한 파일 전송
이 단계에서는 netcat 을 사용하여 시스템 간에 파일을 전송하는 방법을 배웁니다. 이는 간단한 텍스트 통신을 넘어 netcat 의 다재다능함을 보여주는 실용적인 응용 프로그램입니다.
파일 전송을 위한 Netcat 이해하기
Netcat 은 다음을 통해 컴퓨터 간에 파일을 전송하는 데 사용할 수 있습니다.
- 보낸 쪽에서 파일의 입력을 리디렉션합니다.
- 받는 쪽에서 파일의 출력을 리디렉션합니다.
이 접근 방식은 FTP 또는 SCP 와 같은 추가 프로토콜이 필요하지 않으므로 해당 도구를 사용할 수 없는 시나리오에서 유용합니다.
수신자 설정
먼저 파일을 수락할 수신 측을 설정해 보겠습니다. 터미널을 열고 다음을 실행합니다.
nc -l -p 7000 > received_file.txt
이 명령은 다음을 수행합니다.
- 포트 7000 에서 리스닝 서버를 설정합니다.
- 수신된 모든 데이터를
received_file.txt라는 파일로 리디렉션합니다.
전송할 테스트 파일 생성
전송하기 전에 전송할 샘플 파일을 만들어 보겠습니다. 새 터미널에서 다음을 실행합니다.
echo "This is a test file that will be transferred using netcat." > original_file.txt
echo "Netcat can be used for simple file transfers between systems." >> original_file.txt
echo "This demonstrates a practical use case of the nc command." >> original_file.txt
## View the file contents to confirm
cat original_file.txt
터미널에 파일 내용이 표시되어야 합니다.
파일 전송
이제 파일을 수신자에게 보내 보겠습니다. 파일을 만든 동일한 터미널에서 다음을 실행합니다.
cat original_file.txt | nc localhost 7000
이 명령은 다음을 수행합니다.
cat을 사용하여 original_file.txt의 내용을 읽습니다.
- 이 내용을 netcat 으로 파이프 (
|) 합니다.
- Netcat 은 데이터를 포트 7000 의 localhost 로 보냅니다.
전송은 즉시 발생합니다. 전송이 완료되면 보낸 쪽의 netcat 프로세스가 자동으로 종료되지만 받는 쪽은 더 많은 데이터를 계속 기다립니다.
전송 확인
파일이 전송되면 수신자 터미널에서 Ctrl+C를 눌러 연결을 닫습니다. 이제 파일이 올바르게 전송되었는지 확인해 보겠습니다.
cat received_file.txt
원래 파일과 동일한 내용이 표시되어야 하며, 이는 성공적인 전송을 확인합니다.
파일 비교
전송이 완벽했는지 확인하려면 두 파일을 비교할 수 있습니다.
diff original_file.txt received_file.txt
출력이 없으면 파일이 동일하고 전송이 성공했음을 의미합니다.
이 파일 전송 방법은 로컬 머신뿐만 아니라 네트워크의 다른 컴퓨터 간에도 작동합니다. localhost를 원격 머신의 IP 주소 또는 호스트 이름으로 바꾸면 됩니다.
이 기술은 기존 파일 전송 도구를 사용할 수 없거나 제한된 환경에서 특히 유용할 수 있으며, netcat 을 시스템 관리자의 도구 상자에서 가치 있는 도구로 만듭니다.