A fork of croc with a custom relay server.
Option 1: One-command install (recommended)
- Press
Win + X, then click "Windows PowerShell" or "Terminal" - Copy and paste this command, then press Enter:
irm https://raw.githubusercontent.com/yusufgurdogan/mroc/main/install.ps1 | iex- Restart your terminal. Done!
Option 2: Manual download
- Go to the releases page
- Download the
mroc_vX.X.X_Windows-64bit.zipfile - Extract the zip file
- Move
mroc.exeto a folder in your PATH (or just use it from the extracted folder)
curl -sL https://raw.githubusercontent.com/yusufgurdogan/mroc/main/install.sh | bashgo install github.com/yusufgurdogan/mroc@latestOr clone and build:
git clone https://github.com/yusufgurdogan/mroc.git
cd mroc
go build -o mrocmroc is a tool that allows any two computers to simply and securely transfer files and folders.
- Allows any two computers to transfer data (using a relay)
- Provides end-to-end encryption (using PAKE)
- Enables easy cross-platform transfers (Windows, Linux, Mac)
- Allows multiple file transfers
- Allows resuming transfers that are interrupted
- No need for local server or port-forwarding
- IPv6-first with IPv4 fallback
- Can use a proxy, like Tor
To send a file:
mroc send [file(s)-or-folder]To receive:
mroc [code-phrase]The code phrase is used to establish password-authenticated key agreement (PAKE) which generates a secret key for the sender and recipient to use for end-to-end encryption.
On Linux and macOS, the sending and receiving process is slightly different to avoid leaking the secret via the process name. You will need to run mroc with the secret as an environment variable:
MROC_SECRET=*** mrocFor single-user systems, the default behavior can be permanently enabled by running:
mroc --classicYou can send with your own code phrase (must be more than 6 characters):
mroc send --code [code-phrase] [file(s)-or-folder]mroc send --text "hello world"mroc send [file1] [file2] [file3] [folder1]mroc send --qr [file(s)-or-folder]cat [filename] | mroc sendmroc --yes [code-phrase] > outmroc --socks5 "127.0.0.1:9050" send SOMEFILEYou can run your own relay:
mroc relayBy default, it uses TCP ports 9009-9013. You can customize the ports:
mroc relay --ports 1111,1112To send files using your relay:
mroc --relay "myrelay.example.com:9009" send [filename]docker run -d -p 9009-9013:9009-9013 -e MROC_PASS='YOURPASSWORD' yusufgurdogan/mrocsudo cp mroc.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable mroc
sudo systemctl start mroc| Variable | Description |
|---|---|
MROC_RELAY |
Address of the relay server |
MROC_RELAY6 |
IPv6 address of the relay server |
MROC_PASS |
Password for the relay |
MROC_SECRET |
Code phrase for sending/receiving |
MROC_CONFIG_DIR |
Custom config directory |
This is a fork of croc by @schollz. All credit for the original implementation goes to them.
MIT