2026 年の現在でも、コンピューター間でファイルをやり取りする機会はよくあります。クラウドストレージサービスはたくさんありますが、時に必要なのは、素早く安全で、登録不要なピアツーピア転送手段です。そこで croc の出番というわけです。
Croc とは?
croc は Rust で書かれたコマンドラインツールで、任意の 2 台のコンピューター間でファイルやフォルダをシンプルかつ安全に転送できます。他のファイル転送ツールとは違い、croc には次のような独自の利点があります:
- エンドツーエンド暗号化:すべての転送が PAKE(パスワード認証鍵交換)プロトコルで暗号化されます
- リレー補助転送:パブリックリレーサーバー経由で接続を確立し、NAT やファイアウォールをバイパスします
- レジューム対応:中断しても途中から再開可能。大きなファイルも安心です
- クロスプラットフォーム:Windows、macOS、Linux、BSD に対応
- ポート開放不要:ファイアウォールやポートフォワーディングの設定は不要です
Croc のインストール
Linux システム
Fedora/RHEL/CentOS:
sudo dnf install croc
Debian/Ubuntu:
curl https://getcroc.schollz.com | bash
Arch Linux:
yay -S croc
macOS
Homebrew を使用:
brew install croc
Windows
Chocolatey を使用:
choco install croc
または、GitHub Releases からコンパイル済みバイナリをダウンロードしてください。
基本的な使い方
croc の使い方はとてもシンプルです。ファイルの転送はわずか 2 ステップで完了します。送信側がコードを生成し、受信側がそのコードを入力するだけです。
ファイルの送信
送信側のコンピューターで:
croc send /path/to/file.txt
フォルダ全体を送信する場合:
croc send /path/to/folder/
すると、以下のようなコードが生成されます:
Sending 'file.txt' (2.5 MB)
Code is: 1234-abcd-efgh-5678
ファイルの受信
受信側のコンピューターで、コードを入力するだけ:
croc 1234-abcd-efgh-5678
ファイルがカレントディレクトリに転送されます。
高度な使いこなしテクニック
カスタムパスワードの設定
croc が自動生成するのではなく、自分でパスワードを設定したい場合:
# 送信側
croc send --pass mysecretpassword file.txt
# 受信側
croc --pass mysecretpassword 1234-abcd-efgh-5678
カスタムリレーサーバーの使用
croc はデフォルトでパブリックリレーサーバーを使いますが、自分でサーバーを立てることもできます:
# 送信側
croc --relay myrelay.example.com send file.txt
# 受信側
croc --relay myrelay.example.com 1234-abcd-efgh-5678
複数ファイルの転送
croc send file1.txt file2.txt file3.txt
またはワイルドカードを使用:
croc send *.pdf
標準入力からの転送
# 送信側
cat secret.txt | croc send
# 受信側
croc > received.txt
セキュリティ機能の詳細
PAKE 暗号化プロトコル
croc は SPAKE2+ プロトコルを使用して、パスワード認証と鍵交換を行います。つまり:
- パスワード自体は転送されない:交換されるのはパスワードの暗号的な証明のみです
- 中間者攻撃を防ぐ:リレーサーバーが侵害されても、攻撃者がファイルを復号することはできません
- 前方秘匿性:各転送ごとに異なるセッション鍵が使用されます
エンドツーエンド暗号化のフロー
送信方 リレーサーバー 受信方
| | |
|---- 暗号化ファイル内容 -->| |
| |---- 暗号化データ転送 --->|
|<--- 鍵交換確認 -----------| |
| |<--- 鍵交換確認 -----------|
|==== 直接 P2P 接続確立 =====|==== 直接 P2P 接続確立 =====|
接続が確立されると、ファイルは両コンピューター間で直接転送されます。リレーサーバーは初期ハンドシェイクにのみ使用されます。
実際の活用シーン
シーン 1:大きなファイルの素早い共有
同僚に 2GB の動画ファイルを送りたい。でも会社のメール添付制限は 25MB。croc を使えば:
croc send presentation-video.mp4
# メッセンジャーで同僚にコードを伝える
# 同僚がコードを入力して受信
シーン 2:ネットワークをまたいだサーバー間転送
異なるデータセンターにあるサーバー間でログファイルを転送:
# サーバー A
croc send /var/log/application.log
# サーバー B(SSH 経由)
croc [コード]
シーン 3:自宅 NAS へのバックアップ
職場のパソコンから自宅 NAS へ機密ファイルを暗号化して転送:
croc --pass "strong-password" send confidential/
パフォーマンス比較
実測テストに基づく、各ネットワーク環境での croc のパフォーマンス:
| ネットワーク環境 | 平均速度 | 備考 |
|---|---|---|
| LAN | 50〜100 MB/s | 直接 P2P 接続 |
| 同都市内ブロードバンド | 10〜30 MB/s | アップロード帯域の影響 |
| 国際転送 | 2〜8 MB/s | レイテンシがハンドシェイク速度に影響 |
他のツールとの比較
| 機能 | croc | scp | rsync | Magic Wormhole |
|---|---|---|---|---|
| エンドツーエンド暗号化 | ✅ | ❌ | ❌ | ✅ |
| NAT 穿透 | ✅ | ❌ | ❌ | ✅ |
| レジューム対応 | ✅ | ❌ | ✅ | ❌ |
| 使いやすさ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| クロスプラットフォーム | ✅ | ⭐ | ⭐ | ✅ |
自分でリレーサーバーを構築する
パブリックリレーサーバーのプライバシーが気になる方は、自分で立てることができます:
# インストール
go install github.com/schollz/croc/v10/src/croc@latest
# リレーサーバーを起動
croc relay
# デフォルトのリスニングポート:9009, 9010, 9011, 9012, 9013
Docker で実行する場合:
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 パラメータを使用してください:
croc --rate 1mbps send file.txt
Q: 複数人への同時送信は可能?
A: はい。同じコードを複数の人が使用でき、それぞれがファイルの完全なコピーを受信できます。
まとめ
croc は 2026 年において最も使い価値のあるコマンドラインファイル転送ツールの一つです。セキュリティ、使いやすさ、機能性を完璧に組み合わせ、開発者にもシステム管理者にも、そして一般ユーザーにも恩恵をもたらします。
主なメリット: - 🛡️ エンタープライズレベルの暗号化による保護 - 🚀 迅速でシンプルな操作性 - 🌐 ネットワーク設定不要でインターネット越しの転送が可能 - 📦 任意のサイズのファイルやフォルダに対応
プロジェクトリンク: - GitHub: https://github.com/schollz/croc - 公式サイト:https://croc.schollz.com - ドキュメント:https://github.com/schollz/croc/blob/main/README.md
次はファイルを素早く安全に転送する必要があるとき、croc を試してみてください!