このプロジェクトは、Githubスポンサーによってサポートされています。
croc
は、2つのコンピューターがファイルとフォルダーを簡単かつ安全に転送できるようにするツールです。 AFAIK、 CROCは、次のすべてを実行する唯一のCLIファイル転移ツールです。
2つのコンピューターがデータを転送できるようにします(リレーを使用)
エンドツーエンドの暗号化を提供します(ペイクを使用)
簡単なクロスプラットフォーム転送(Windows、Linux、Mac)を有効にする
複数のファイル転送を許可します
中断される転送を再開できます
ローカルサーバーまたはポートフォードは必要ありません
IPv4フォールバックを使用したIPv6-First
Torのようなプロキシを使用できます
croc
の詳細については、私のブログ投稿を参照するか、最近のインタビューを読んでください。
システムの最新リリースをダウンロードするか、コマンドラインからリリースをインストールしてください。
curl https://getcroc.schollz.com | bash
MacOSでは、HomeBrewを使用して最新リリースをインストールできます。
brew install croc
MacOSでは、MacPortsを使用して最新リリースをインストールすることもできます。
sudo port selfupdate sudo port install croc
Windowsでは、Scoop、Chocolatey、またはWingetで最新リリースをインストールできます。
scoop install croc
choco install croc
winget install schollz.croc
UNIXでは、NIXを使用して最新リリースをインストールできます。
nix-env -i croc
Alpine Linuxでは、最初に依存関係をインストールする必要があります。
apk add bash coreutils wget -qO- https://getcroc.schollz.com | bash
Arch Linuxでは、 pacman
で最新リリースをインストールできます。
pacman -S croc
Fedoraでは、 dnf
でインストールできます。
dnf install croc
Gentooでは、 portage
でインストールできます:
emerge net-misc/croc
Termuxでは、 pkg
でインストールできます。
pkg install croc
FreeBSDでは、 pkg
でインストールできます。
pkg install croc
Linux、MacOS、およびWindowsで、 pixi
を使用してグローバルにコンドラフォージからインストールできます。
pixi global install croc
またはconda
のある特定の環境へ:
conda install --channel conda-forge croc
または、SourceからGoとBuildをインストールすることができます(1.17+を使用する必要があります):
go install github.com/schollz/croc/v10@latest
Androidには、ダウンロードできるサードパーティのFドロイドアプリがあります。
ファイルを送信するには、単に実行します。
$ croc send [file(s)-or-folder] Sending 'file-or-folder' (X MB) Code is: code-phrase
次に、別のコンピューターでファイル(またはフォルダー)を受信するには、
croc code-phrase
コードフレーズは、送信者と受信者がエンドツーエンドの暗号化に使用する秘密キーを生成するパスワード認証キー契約(PAKE)を確立するために使用されます。
構成可能なオプションが多数あります( --help
を参照)。 --remember
を使用して、一連のオプション(カスタムリレー、ポート、コードフレーズなど)を設定できます。
croc
使用しますLinuxとMac OSでは、プロセス名を介して秘密を漏らしないように、送信と受信はわずかに異なります。これらのシステムでは、秘密を環境変数としてcroc
実行する必要があります。たとえば、秘密で受信する***
:
CROC_SECRET=*** croc
これにより、マルチユーザーシステムのプロセスリストにcroc
のみが表示され、秘密を漏らしません。
シングルユーザーシステムの場合、デフォルトの動作を実行することで永続的に有効にすることができます
croc --classic
と確認。このコマンドをもう一度実行して、クラシックモードを無効にします。
独自のコードフレーズで送信できます(6文字以上である必要があります)。
croc send --code [code-phrase] [file(s)-or-folder]
デフォルトでは、CROCはファイルを上書きするかどうかを促します。 --overwrite
フラグ(受信者のみ)を使用して、ファイルを自動的に上書きすることができます。たとえば、自動的に上書きするファイルを受信します。
croc --yes --overwrite <code>
croc
にパイプできます:
cat [filename] | croc send
この場合、 croc
STDINデータを自動的に使用し、「CROC-STDIN-123456789」などのファイル名を送信して割り当てます。 stdout
に受信するには、 stdout
でも--yes
を使用することができます。
croc --yes [code-phrase] > out
コンソールに印刷された他のすべてのテキストはstderr
になりますので、 stdout
に行くメッセージが干渉しません。
時々、URLまたは短いテキストを送信したい場合があります。配管に加えて、 croc
でテキストを簡単に送信できます。
croc send --text "hello world"
これにより、テキストを受け取ったときにstdout
使用するように受信機に自動的に指示され、表示されます。
--socks5
を搭載したプロキシアドレスを追加することにより、リレーへの接続としてプロキシを使用できます。たとえば、TORリレーを介して送信できます。
croc --socks5 "127.0.0.1:9050" send SOMEFILE
--curve
フラグを使用して、暗号化に使用するいくつかの異なる楕円曲線から選択できます。受信者のみが曲線を選択できます。たとえば、P-521曲線を使用してファイルを受信します。
croc --curve p521 <codephrase>
利用可能な曲線は、P-256、P-348、P-521、およびSIECです。 P-256はデフォルトの曲線です。
いくつかの異なるハッシュアルゴリズムから選択できます。デフォルトはxxhash
アルゴリズムで、高速で徹底的です。速度を最適化したい場合は、さらに高速なimohash
アルゴリズムを使用できますが、ファイルをサンプリングします(ファイル全体を読み取るのに対して)、2つのコンピューターでファイルが同じであると誤って判断できますが、これはファイルを同期している場合と、新しいファイルをコンピューターに送信する場合の問題。
croc send --hash imohash SOMEFILE
リレーは、並列の着信と発信の接続を主食するために必要です。デフォルトでは、 croc
パブリックリレーを使用しますが、独自のリレーを実行することもできます。
croc relay
デフォルトでは、TCPポート9009-9013を使用します。必ずそれらを開くようにしてください。ポートをカスタマイズできます(例: croc relay --ports 1111,1112
)が、リレーには最低2つのポートが必要です。最初のポートは通信用であり、後続のポートは多重化されたデータ転送に使用されます。
リレーを使用してファイルを送信することができます。 --relay
入力して、使用しているリレーを変更します。
croc --relay "myrelay.example.com:9009" send [filename]
注意して、送信するときは、最初のポート(通信ポート)を含める必要があります。データ転送用の後続のポートは、リレーからユーザーに送信されます。
簡単な場合は、Dockerでリレーを実行することもできます。
docker run -d -p 9009-9013:9009-9013 -e CROC_PASS='YOURPASSWORD' schollz/croc
リレーのパスワードを必ず含めてください。そうしないと、リクエストが拒否されます。
croc --pass YOURPASSWORD --relay "myreal.example.com:9009" send [filename]
注: --pass YOURPASSWORD
を含める場合、代わりに--pass FILEWITHPASSWORD
を使用してファイルを渡すことができます。
mit
croc
多くの反復を経験しており、私はすべての大きな貢献にw敬の念を抱いています!何らかの形で、何らかの形で、問題、PRを送信したり、質問をしたりすることができると感じたい場合。
@Warnerのアイデア、 @TSCholl2暗号化要点については、2つの接続をプロキシのコードについて@Skorokithakisに感謝します。最後に、@Maximbaz、@MeyerMarcel、@Girbons、@Techtide、@HeyMatthew、 @Lunsford94、 @lummie、@threefjord、 @marcossegovia、 @csleong98、 @Anatolyyyyyy、@goggle、@smileboywtu、@nicolashardy、 @fbartels、 @rkuprov、@hreese、@xenrox、ipar!