2026년인 지금도 우리는 컴퓨터 간에 파일을 주고받아야 할 일이 많습니다. 클라우드 스토리지 서비스가 plenty하게 있지만, 가끔은 빠르고 안전하며 가입 없이 쓸 수 있는 P2P 전송 방식이 필요할 때가 있죠. 바로 여기서 croc이 빛을 발합니다.

Croc란?

croc는 Rust로 작성된 명령줄 도구로, 아무 컴퓨터 두 대 사이에서 파일과 폴더를 간편하고 안전하게 전송할 수 있게 해줍니다. 다른 파일 전송 도구와 비교했을 때 croc는 다음과 같은 독특한 장점을 갖고 있습니다:

  • 종단간 암호화: 모든 전송은 PAKE(Password Authenticated Key Exchange, 비밀번호 인증 키 교환) 프로토콜로 암호화됩니다
  • 중계 서버 지원 전송: 공개 중계 서버를 통해 연결을 수립해 NAT와 방화벽을 우회합니다
  • 재전송 지원: 중단된 전송을 이어서 할 수 있어 대용량 파일도 안심입니다
  • 크로스플랫폼: Windows, macOS, Linux, BSD를 모두 지원합니다
  • 포트 개방 불필요: 방화벽 설정이나 포트 포워딩이 필요 없습니다

Croc 설치하기

Linux 시스템

Fedora/RHEL/CentOS:

BASH
sudo dnf install croc

Debian/Ubuntu:

BASH
curl https://getcroc.schollz.com | bash

Arch Linux:

BASH
yay -S croc

macOS

Homebrew로 설치:

BASH
brew install croc

Windows

Chocolatey로 설치:

BASH
choco install croc

아니면 GitHub Releases에서 미리 컴파일된 바이너리를 다운로드해도 됩니다.

기본 사용법

croc 사용은 정말 간단합니다. 파일을 보내려면 두 단계면 충분하죠. 보내는 쪽에서 코드를 생성하고, 받는 쪽에서 그 코드를 입력하면 됩니다.

파일 보내기

보내는 컴퓨터에서:

BASH
croc send /path/to/file.txt

폴더 전체를 보내려면:

BASH
croc send /path/to/folder/

그러면 croc가 이런 식으로 코드를 생성해 줍니다:

Sending 'file.txt' (2.5 MB)
Code is: 1234-abcd-efgh-5678

파일 받기

받는 컴퓨터에서 그냥 이렇게 입력하면 끝:

BASH
croc 1234-abcd-efgh-5678

파일이 현재 디렉토리로 전송되기 시작합니다.

고급 사용 팁

커스텀 암호 설정

croc가 자동으로 생성해주는 대신 직접 암호를 설정하고 싶다면:

BASH
# 보내는 쪽
croc send --pass mysecretpassword file.txt

# 받는 쪽
croc --pass mysecretpassword 1234-abcd-efgh-5678

커스텀 중계 서버 사용하기

croc는 기본적으로 공개 중계 서버를 쓰지만, 직접 구축할 수도 있습니다:

BASH
# 보내는 쪽
croc --relay myrelay.example.com send file.txt

# 받는 쪽
croc --relay myrelay.example.com 1234-abcd-efgh-5678

여러 파일 전송하기

BASH
croc send file1.txt file2.txt file3.txt

와일드카드로도 가능합니다:

BASH
croc send *.pdf

표준 입력으로 전송하기

BASH
# 보내는 쪽
cat secret.txt | croc send

# 받는 쪽
croc > received.txt

보안 기능 자세히 알아보기

PAKE 암호화 프로토콜

croc는 SPAKE2+ 프로토콜을 사용해 비밀번호 인증 키 교환을 수행합니다. 이게 무슨 뜻이냐면:

  1. 비밀번호 자체가 전송되지 않음: 암호화된 증명만 교환됩니다
  2. MITM(중간자) 공격 방지: 중계 서버가 해킹당해도 공격자가 파일을 복호화할 수 없습니다
  3. Forward Secrecy(전방 비밀성): 매 전송마다 다른 세션 키를 사용합니다

종단간 암호화 흐름

보내는 쪽                    중계 서버                    받는 쪽
  |                           |                           |
  |---- 암호화된 파일 내용 -->|                           |
  |                           |---- 암호화된 데이터转发 -->|
  |<--- 키 교환 확인 ---------|                           |
  |                           |<--- 키 교환 확인 ---------|
  |==== 직접 P2P 전송 연결됨 ==|==== 직접 P2P 전송 연결됨 ==|

연결이 수립되면 파일은 두 컴퓨터 간에 직접 전송되고, 중계 서버는 초기 핸드셰이크에만 관여합니다.

실제 사용 시나리오

시나리오 1: 대용량 파일 빠르게 공유

동료에게 2GB짜리 영상 파일을 보내야 하는데, 회사 이메일 첨부 제한이 25MB라면? croc를 쓰면 됩니다:

BASH
croc send presentation-video.mp4
# 메신저로 동료에게 코드 알려주기
# 동료가 코드 입력해서 받기

시나리오 2: 서로 다른 네트워크의 서버 간 전송

다른 데이터센터에 있는 두 서버 간에 로그 파일을 전송할 때:

BASH
# 서버 A
croc send /var/log/application.log

# 서버 B (SSH 통해)
croc [코드]

시나리오 3: 집 NAS에 백업하기

회사 컴퓨터에서 집 NAS로 민감한 파일을 암호화해서 전송:

BASH
croc --pass "strong-password" send confidential/

성능 비교

실제 테스트를 바탕으로, croc가 다양한 네트워크 환경에서 보여준 성능은 다음과 같습니다:

네트워크 환경 평균 속도 비고
로컬 네트워크 50-100 MB/s 직접 P2P 연결
동일 도시 광대역 10-30 MB/s 업로드 대역폭 제한 영향
국가 간 전송 2-8 MB/s 레이턴시가 핸드셰이크 속도에 영향

다른 도구와 비교

기능 croc scp rsync Magic Wormhole
종단간 암호화 ✅ ❌ ❌ ✅
NAT 통과 ✅ ❌ ❌ ✅
재전송 지원 ✅ ❌ ✅ ❌
사용 편의성 ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
크로스플랫폼 ✅ ⭐ ⭐ ✅

직접 중계 서버 구축하기

공개 중계 서버의 프라이버시가 걱정된다면 직접 구축할 수 있습니다:

BASH
# 설치
go install github.com/schollz/croc/v10/src/croc@latest

# 중계 서버 실행
croc relay

# 기본 리스닝 포트: 9009, 9010, 9011, 9012, 9013

Docker에서 돌리려면:

BASH
docker run -d \
  -p 9009:9009 -p 9010:9010 -p 9011:9011 \
  -p 9012:9012 -p 9013:9013 \
  --name croc-relay \
  schollz/croc:latest relay

자주 묻는 질문

Q: 전송이 중단되면 어떻게 하죠?

A: croc는 재전송을 지원합니다. 같은 명령을 다시 실행하면 중단된 지점부터 자동으로 이어집니다.

Q: 파일 무결성은 어떻게 확인하나요?

A: croc는 기본적으로 SHA-256 체크섬으로 파일 무결성을 검증합니다. 전송 완료 후 자동으로 체크합니다.

Q: 전송 속도를 제한할 수 있나요?

A: 네, --rate 파라미터를 사용하세요:

BASH
croc --rate 1mbps send file.txt

Q: 여러 명이 받을 수 있나요?

A: 네, 같은 코드를 여러 사람이 사용할 수 있고, 각자 완전한 파일 사본을 받게 됩니다.

정리

croc는 2026년 가장 추천할 만한 CLI 파일 전송 도구 중 하나입니다. 보안성, 사용 편의성, 기능을 완벽하게 조합했죠. 개발자든 시스템 관리자든 일반 사용자든 모두 혜택을 볼 수 있습니다.

주요 장점: - 🛡️ 엔터프라이즈급 암호화 보호 - 🚀 빠르고 간편한 사용 경험 - 🌐 네트워크 설정 없이도 인터넷을 가로질러 전송 - 📦 파일 크기와 폴더에 제한 없음

프로젝트 주소: - GitHub: https://github.com/schollz/croc - 공식 사이트: https://croc.schollz.com - 문서: https://github.com/schollz/croc/blob/main/README.md

다음에 빠르고 안전하게 파일을 전송해야 할 때, croc를 한번 써보세요!