Proyek ini didukung oleh sponsor GitHub.
croc
adalah alat yang memungkinkan dua komputer untuk mentransfer file dan folder dengan sederhana dan aman. AFAIK, Croc adalah satu-satunya alat transfer file CLI yang melakukan semua hal berikut:
memungkinkan dua komputer untuk mentransfer data (menggunakan relai)
Memberikan enkripsi ujung ke ujung (menggunakan Pake)
Mengaktifkan transfer cross-platform yang mudah (Windows, Linux, Mac)
memungkinkan beberapa transfer file
memungkinkan transfer transfer yang terputus
server lokal atau port-forwarding tidak diperlukan
IPv6-pertama dengan Fallback IPv4
dapat menggunakan proxy , seperti tor
Untuk informasi lebih lanjut tentang croc
, lihat posting blog saya atau baca wawancara baru -baru ini.
Unduh rilis terbaru untuk sistem Anda, atau instal rilis dari baris perintah:
curl https://getcroc.schollz.com | bash
Di macOS Anda dapat menginstal rilis terbaru dengan Homebrew:
brew install croc
Di macOS Anda juga dapat menginstal rilis terbaru dengan MacPorts:
sudo port selfupdate sudo port install croc
Di Windows Anda dapat menginstal rilis terbaru dengan scoop, chocolatey, atau winget:
scoop install croc
choco install croc
winget install schollz.croc
Di UNIX Anda dapat menginstal rilis terbaru dengan NIX:
nix-env -i croc
Di Alpine Linux Anda harus menginstal dependensi terlebih dahulu:
apk add bash coreutils wget -qO- https://getcroc.schollz.com | bash
Di Arch Linux Anda dapat menginstal rilis terbaru dengan pacman
:
pacman -S croc
Di fedora Anda dapat menginstal dengan dnf
:
dnf install croc
Di Gentoo Anda dapat menginstal dengan portage
:
emerge net-misc/croc
Di Termux Anda dapat menginstal dengan pkg
:
pkg install croc
Di freeBSD Anda dapat menginstal dengan pkg
:
pkg install croc
Di Linux, MacOS, dan Windows yang dapat Anda instal dari Conda-Forge secara global dengan pixi
:
pixi global install croc
atau ke lingkungan tertentu dengan conda
:
conda install --channel conda-forge croc
Atau, Anda dapat menginstal Go dan Build dari Sumber (membutuhkan GO 1.17+):
go install github.com/schollz/croc/v10@latest
Di Android ada aplikasi F-Droid Pihak ke-3 yang tersedia untuk diunduh.
Untuk mengirim file, cukup lakukan:
$ croc send [file(s)-or-folder] Sending 'file-or-folder' (X MB) Code is: code-phrase
Kemudian untuk menerima file (atau folder) di komputer lain, Anda bisa melakukannya
croc code-phrase
Frasa kode digunakan untuk menetapkan perjanjian kunci yang di-authentikasi kata sandi (Pake) yang menghasilkan kunci rahasia untuk pengirim dan penerima untuk digunakan untuk enkripsi ujung ke ujung.
Ada sejumlah opsi yang dapat dikonfigurasi (lihat --help
). Satu set opsi (seperti relai kustom, port, dan frasa kode) dapat diatur menggunakan --remember
.
croc
di Linux atau Mac OS Di Linux dan Mac OS, pengiriman & penerima sedikit berbeda untuk menghindari bocor rahasia melalui nama proses. Pada sistem ini Anda perlu menjalankan croc
dengan rahasia sebagai variabel lingkungan. Misalnya, untuk menerima dengan Rahasia ***
:
CROC_SECRET=*** croc
Ini hanya akan menampilkan croc
dalam daftar proses sistem multi-pengguna dan tidak membocorkan rahasia.
Untuk sistem pengguna tunggal, perilaku default dapat diaktifkan secara permanen dengan berjalan
croc --classic
dan mengkonfirmasi. Jalankan perintah ini lagi untuk menonaktifkan mode klasik.
Anda dapat mengirim dengan frasa kode Anda sendiri (harus lebih dari 6 karakter).
croc send --code [code-phrase] [file(s)-or-folder]
Secara default, Croc akan meminta apakah akan menimpa file. Anda dapat secara otomatis menimpa file dengan menggunakan flag --overwrite
(hanya penerima). Misalnya, terima file untuk ditimpa secara otomatis:
croc --yes --overwrite <code>
Anda dapat menyalurkan ke croc
:
cat [filename] | croc send
Dalam hal ini croc
akan secara otomatis menggunakan data STDIN dan mengirim dan menetapkan nama file seperti "Croc-Stdin-123456789". Untuk menerima ke stdout
di Anda selalu dapat menggunakan --yes
akan secara otomatis menyetujui transfer dan menyalakannya ke stdout
.
croc --yes [code-phrase] > out
Semua teks lain yang dicetak ke konsol akan ke stderr
sehingga tidak akan mengganggu pesan yang akan stdout
.
Terkadang Anda ingin mengirim URL atau teks pendek. Selain perpipaan, Anda dapat dengan mudah mengirim teks dengan croc
:
croc send --text "hello world"
Ini akan secara otomatis memberi tahu penerima untuk menggunakan stdout
ketika mereka menerima teks sehingga akan ditampilkan.
Anda dapat menggunakan proxy sebagai koneksi Anda ke relai dengan menambahkan alamat proxy dengan --socks5
. Misalnya, Anda dapat mengirim melalui relay Tor:
croc --socks5 "127.0.0.1:9050" send SOMEFILE
Anda dapat memilih dari beberapa kurva elips yang berbeda untuk digunakan untuk enkripsi dengan menggunakan -bendera --curve
. Hanya penerima yang dapat memilih kurva. Misalnya, terima file menggunakan kurva P-521:
croc --curve p521 <codephrase>
Kurva yang tersedia adalah P-256, P-348, P-521 dan Siec. P-256 adalah kurva default.
Anda dapat memilih dari beberapa algoritma hash yang berbeda. Standarnya adalah algoritma xxhash
yang cepat dan menyeluruh. Jika Anda ingin mengoptimalkan kecepatan, Anda dapat menggunakan algoritma imohash
yang bahkan lebih cepat, tetapi karena sampel file (versus membaca seluruh file), ia dapat secara keliru menentukan bahwa file sama pada dua komputer yang ditransfer - meskipun ini hanya Masalah jika Anda menyinkronkan file versus mengirim file baru ke komputer.
croc send --hash imohash SOMEFILE
Relay diperlukan untuk menjepit koneksi paralel yang masuk dan keluar. Secara default, croc
menggunakan relay publik tetapi Anda juga dapat menjalankan relai Anda sendiri:
croc relay
Secara default menggunakan port TCP 9009-9013. Pastikan untuk membukanya. Anda dapat menyesuaikan port (misalnya croc relay --ports 1111,1112
), tetapi Anda harus memiliki minimal 2 port untuk relai. Port pertama adalah untuk komunikasi dan port berikutnya digunakan untuk transfer data multiplex.
Anda dapat mengirim file menggunakan relay Anda dengan memasukkan --relay
untuk mengubah relai yang Anda gunakan jika Anda ingin menjadi host kustom Anda sendiri.
croc --relay "myrelay.example.com:9009" send [filename]
Catatan, saat mengirim, Anda hanya perlu memasukkan port pertama (port komunikasi). Port berikutnya untuk transfer data akan dikirim kembali ke pengguna dari relai.
Jika lebih mudah, Anda juga dapat menjalankan relai dengan Docker:
docker run -d -p 9009-9013:9009-9013 -e CROC_PASS='YOURPASSWORD' schollz/croc
Pastikan untuk memasukkan kata sandi untuk relai jika tidak, permintaan apa pun akan ditolak.
croc --pass YOURPASSWORD --relay "myreal.example.com:9009" send [filename]
CATATAN: Saat memasukkan --pass YOURPASSWORD
Anda dapat meneruskan file dengan kata sandi, misalnya --pass FILEWITHPASSWORD
.
Mit
croc
telah melalui banyak iterasi, dan saya terpesona oleh semua kontribusi besar! Jika Anda ingin berkontribusi, dengan cara apa pun, dengan segala cara Anda dapat mengirim masalah, PR, atau mengajukan pertanyaan.
Terima kasih @warner untuk idenya, @tscholl2 untuk inti enkripsi, @skorokithakis untuk kode pada proksi dua koneksi. Akhirnya terima kasih telah membuat permintaan tarik @maximbaz, @meyermarcel, @girbons, @techtide, @heymatthew, @lunsford94, @lummie, @jesuiscamille, @treefjord, @marcosseGovia, @csleong98, @treefjord, @marcossegovia, @csleong98, @freefjord, @marcosseGovia, @csleong98, @freefjord, @marcosseGovia, @csleong98, @freefescu, @kallmever, @cjanjo, @anatolyyyyy, @goggle, @smileboywtu, @nicolashardy, @fbartels, @rkuprov, @hreese, @xenrox dan ipar!