如何快速地把檔案傳到另外一台電腦上(不用經過雲端硬碟)

其實只要一行指令就解決了

如何快速地把檔案傳到另外一台電腦?

隨身碟

這大概是最直覺的作法,不過你必須先找得到你的隨身碟。

如果你很順利地找到你的隨身碟,接下來還要把隨身碟插到電腦 -> 把檔案複製出來 -> 卸載隨身碟 -> 再把隨身碟插到另一台電腦 -> 終於拿到檔案,而且這還不考慮 USB 平均要插 3 次才會成功。

所以除非是要傳非常大的檔案,否則我覺得還是太麻煩了。而且手邊不見得會有 USB 3.0 以上的隨身碟和孔可以用,如果退回到 USB 2.0 的速度的話只有 480Mbps 以下(通常是有 200Mbps 就偷笑了)。

usb 3 times

AirDrop

不得不說 AirDrop 是真的非常好用,不過限制也很明顯,那就是傳送和接收端兩邊必須都要是 Apple 的裝置才可以。

雖然也有像是 ShareDrop 這種類似 AirDrop 的服務,不過這類的服務大多是建立在區域網路或是 Wifi 直連上,也就是說,這類方式的另一個限制,就是傳送和接收端兩邊必須要在同一個地方或是在同一個網域內才行。

Apple devices

雲端硬碟 / 通訊軟體 / Email

這幾個服務我覺得比較類似就擺在一起討論了

基本上這些方式都需要登入,甚至要下載特定的軟體,有些也有檔案大小的上限,而且他們本來就不是被設計來傳輸檔案的,所以用起來都會有些彆扭的地方。另外這類服務大多數都會把檔案留在他們的伺服器上,如果你是要傳一些比較敏感的資料(比如說證件、文件翻拍),你有辦法安心的使用嗎?

One man group

Send Anywhere

其實 Send Anywhere 是蠻好用的服務,你只要選擇好你要傳的檔案後,你就會得到一串數字(登入才能使用連結),然後在另一台電腦上一樣到 Send Anywhere 上輸入剛剛得到的那串數字之後,你就能在另外一台電腦接收到檔案。

不過 Send Anywhere 還是有缺點,就是還是必須要打開瀏覽器才能使用,有些進階功能還需要登入甚至收費。另外其實 Firefox 也曾經提供類似的服務,不過後來爲了防止被用來傳送有害的內容就結束服務了。或許 Send Anywhere 有一天也有可能步上 Firefox Send 的後塵,那麼到時候我們就必須再尋找下一個替代方案了。

Send Anywhere screenshot

SCP / FTP

假如你傳送或接收端的其中一邊是只能使用文字界面的伺服器的話,那你的選擇大概就只有這兩個了。

使用 SCP 的話你需要先在伺服器上設定好 SSH Server,這問題不大,麻煩的是每次要傳東西的時候你都必須要打很長的指令,而且其中還包括像是 IP 和路徑這種超級容易打錯的東西,所以我每次用 SCP 的時候都至少要試兩、三次才會成功。

scp -i ~/.ssh/private_key localfile remote_host:/path/remote_file

至於 FTP 的話,架 FTP Server 相比上面的方法都還要麻煩很多,除非是需要讓很多人一起存取檔案的情況,否則 FTP 完全不會是一個好的方法。

救世主 - Croc

廢話不多說,直接上圖

croc-result

圖片裡面的左邊是我的本機,右邊是我的一台 VPS(伺服器)。我從我的本機傳送了一整個資料夾的內容到 VPS 上只需要各打一行指令就完成了!(雖然只有一個檔案)

發送端在確定發送之後會得到由一個數字和三個英文單字組成的通關密語,在接收端上輸入那段通關密語之後就能接收到檔案,就是這麼簡單!

How it works?

Croc 使用的是中繼的伺服器來傳輸檔案,也就是你需要一台伺服器來負責轉發傳輸的檔案,不過 Croc 預設就是使用官方提供的伺服器,所以你不用擔心需要自己架一台中繼伺服器啦!你可能會擔心官方的伺服器會不會有一天突然掛掉或是有資安的疑慮,其實架設 Croc 的中繼伺服器也很簡單,這部分 小惡魔 - AppleBOY 已經寫過一篇文章 說明得很清楚了,建議大家可以去他那邊參考。

優點

  • 不需要自己架設任何伺服器也不需要 port 轉發
  • 使用非常容易
  • 使用 PAKE 點對點加密
  • 支援跨平台(Windows, Linux, MacOS)
  • 支援一次傳送多個檔案
  • 意外中斷後可以接續傳輸
  • 優先使用 IPv6
  • 可以使用代理伺服器
  • Android 上有 第三方 App

限制

  • 傳輸和接收端必須都能正常連接網路
  • 傳輸速度受外網速度限制

不過這兩點都是可以透過自己架 Croc 的中繼伺服器就解決的,我自己是想不太到有其它的缺點了啦。

安裝

官方其實已經有現成的腳本了,你只需要一行指令就能安裝:

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

如果你是用的是 MacOS 的話也可以透過 Homebrew 來安裝:

brew install croc

而我現在用的是 Manjaro(基於 Arch Linux),Croc 已經收錄在 Pacman 裡了:

sudo pacman -S croc

如果是在 Android 的話我會推薦使用這個 第三方 App

使用方法

使用方法非常簡單,首先你要在兩邊都安裝好 Croc,接著你只需要在要傳送檔案的那台電腦上輸入 croc ,然後後面接上你要傳送的檔案或者是資料夾,接著他會問你是不是要把這個檔案傳出去,這裡我們直接 Enter 就可以確認,然後你就會得到一個由一個數字和三個英文單字組成的通關密語,就像這樣:

$ croc testfile
Did you mean to send 'testfile'? (Y/n)
Sending 'testfile' (0 B)
Code is: 1704-tiger-ticket-report
On the other computer run

croc 1704-tiger-ticket-report

然後到要接收檔案的那台電腦上輸入 croc,然後後面接上剛剛在另一台電腦得到的通關密語,接著他會問你是不是要接收這些檔案,一樣直接 Enter 確認,就能成功接收到檔案了:

$ croc 1704-tiger-ticket-report
Accept 'testfile' (0 B)? (Y/n)

Receiving (<-118.169.227.146:44682)
 100% |████████████████████| ( 0/ 1B, )

你可能會覺得那串通關密語還是太長太難打了,別擔心,這個通關密語是可以自己設定的,只要在傳送的時候加一些參數就可以設定,像是這樣:

$ croc send --code jnyiunn testfile
Sending 'testfile' (0 B)
Code is: giveanornot
On the other computer run

croc giveanornot

不過通關密語至少要六個字母或數字,太短的話會直接被拒絕:

$ croc send --code 12345 testfile
2021/09/25 14:08:48 code is too short

參考資料

以上就是 Croc 的安裝和使用的方法,其實 Croc 還有更多的進階用法,不過我從來都沒有使用過,有需要的話也可以到下面這幾個地方參考:

  1. https://github.com/schollz/croc
  2. https://schollz.com/blog/croc6/
  3. https://blog.wu-boy.com/2021/02/share-files-between-two-computer-using-croc-tool/

圖片來源

  1. https://imgflip.com/memegenerator
  2. https://unsplash.com/photos/HONJP8DyiSM
  3. https://www.xiaoyao.tw/2018/09/LINE-alone-Group.html

相關內容


有任何問題都歡迎在底下留言問我!如果我的文章有幫助到你的話,請你考慮幫我免費多按幾個讚喲 *(*´∀`*)☆

JN
JN

資工系畢業,但其實沒有很會寫程式的小廢物