家庭伺服器如何搭建下載機

下載機是家庭伺服器的一個基本功能。我之前寫過相關文章,現在來看之前的內容覺得非常囉嗦,於是刪繁就簡為大家帶來一個最實用的下載機解決方案。首先放3個結論:

1.無論是Windows系統還是Linux系統都可以搭建下載機;

2.Motrix基於aira2,我最推薦新手選擇的下載機軟體方案;

3.我最喜歡的下載軟體是aria2;

首先確保你的手機外網也可以訪問家庭伺服器:要麼有有公網IP,要麼用zerotier之類的軟體搭建了虛擬區域網。zerotier搭建虛擬區域網的方法參考我之前的系列文章:

如何搭建個人的家庭伺服器

介紹一下Motrix:Motrix基於aria2,下載功能和aria2一樣。但Motrix有GUI介面且無需配置,所以對新手友好。同時Motrix可以自動更新tracker,BT下載更加簡單。

去官網或者開源地址下載安裝包,Motrix支援多個平臺。安裝Motrix後還只是一個下載軟體,搭建下載機還需要開啟Motrix的RPC功能:在設定裡填寫RPC金鑰,然後服務端設定完畢,就這麼簡單。

接下來手機接入下載伺服器。我推薦一個APP:Aria2APP,可以通過F-droid下載。Aria2APP是安卓上的aria2客戶端,同理也支援Motrix。

Aria2APP新建伺服器,填入IP地址和埠,motrix的預設埠是:16800,aria2的預設埠是:6900。

Aria2APP強大之處在於可以在安卓手機上開啟aria2服務,而且支援添同時加多個下載伺服器,是一個移動端必備的下載軟體。

在驗證裡填入認證的金鑰後,即可通過手機在伺服器建立下載任務,而aira2支援多種型別的下載任務。最後設定Motrix開機自啟動,下載機搭建就完成了。

接下來我要介紹一下aria2。為什麼我更偏愛沒有GUI操作介面的aria2,因為作為服務端沒有介面反而更優雅。講aria2的文章,開篇都會比較複雜地講解aria2的設定。我針對新手做一個簡化介紹,以Ubuntu系統為例:

#安卓aria2 sudo apt install aria2 #建立aria2配置資料夾 sudo mkdir /etc/aria2

如果只想開啟遠端下載功能,拷貝下面幾行程式碼就可以了,token是自行設定的金鑰:

#配置aira2 sudo vim /etc/aria2/aria2c.conf enable-rpc=true rpc-allow-origin-all=true rpc-listen-all=true rpc-secret=token

讓aria2的配置生效,並執行aria2:

aria2c --conf-path=/etc/aria2/aria2c.conf -D

在Ubuntu的自啟動管理裡,把上面這條命令設定自啟動,這樣aria2就可以開機自啟動了。繼續使用Aira2App連線你的aria2下載伺服器即可,而且通過Aria2APP是可以直接配置aria2的。

更詳細的aria2設定檔案參考官方的配置介紹(實際上你不懂這些設定也可以使用):

# 檔案的儲存路徑 #dir=~/downloads # 啟用磁碟快取, 0為禁用快取, 需1.16以上版本, 預設:16M #disk-cache=32M # 檔案預分配方式, 能有效降低磁碟碎片, 預設:prealloc # 預分配所需時間: none < falloc ? trunc < prealloc # falloc和trunc則需要檔案系統和核心支援 # NTFS建議使用falloc, EXT3/4建議trunc, MAC 下需要註釋此項 #file-allocation=none # 斷點續傳 continue=true # 最大同時下載任務數, 執行時可修改, 預設:5 #max-concurrent-downloads=5 # 同一伺服器連線數, 新增時可指定, 預設:1 max-connection-per-server=4 # 最小檔案分片大小, 新增時可指定, 取值範圍1M -1024M, 預設:20M # 假定size=10M, 檔案為20MiB 則使用兩個來源下載; 檔案為15MiB 則使用一個來源下載 min-split-size=10M # 單個任務最大執行緒數, 新增時可指定, 預設:5 #split=5 # 整體下載速度限制, 執行時可修改, 預設:0 #max-overall-download-limit=0 # 單個任務下載速度限制, 預設:0 #max-download-limit=0 # 整體上傳速度限制, 執行時可修改, 預設:0 #max-overall-upload-limit=0 # 單個任務上傳速度限制, 預設:0 #max-upload-limit=0 # 禁用IPv6, 預設:false #disable-ipv6=true # 連線超時時間, 預設:60 #timeout=60 # 最大重試次數, 設定為0表示不限制重試次數, 預設:5 #max-tries=5 # 設定重試等待的秒數, 預設:0 #retry-wait=0 # 從會話檔案中讀取下載任務 #input-file=/etc/aria2/aria2.session # 在Aria2退出時儲存`錯誤/未完成`的下載任務到會話檔案 #save-session=/etc/aria2/aria2.session # 定時儲存會話, 0為退出時才儲存, 需1.16.1以上版本, 預設:0 #save-session-interval=60 # 啟用RPC, 預設:false enable-rpc=true # 允許所有來源, 預設:false rpc-allow-origin-all=true # 允許非外部訪問, 預設:false rpc-listen-all=true # 事件輪詢方式, 取值:[epoll, kqueue, port, poll, select], 不同系統預設值不同 #event-poll=select # RPC監聽埠, 埠被佔用時可以修改, 預設:6800 #rpc-listen-port=6800 # 設定的RPC授權令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 選項 rpc-secret=# 設定的RPC訪問使用者名稱, 此選項新版已廢棄, 建議改用 --rpc-secret 選項 #rpc-user=# 設定的RPC訪問密碼, 此選項新版已廢棄, 建議改用 --rpc-secret 選項 #rpc-passwd=# 是否啟用 RPC 服務的 SSL/TLS 加密, # 啟用加密後 RPC 服務需要使用 https 或者 wss 協議連線 #rpc-secure=true # 在 RPC 服務中啟用 SSL/TLS 加密時的證書檔案, # 使用 PEM 格式時,您必須通過 --rpc-private-key 指定私鑰 #rpc-certificate=/path/to/certificate.pem # 在 RPC 服務中啟用 SSL/TLS 加密時的私鑰檔案 #rpc-private-key=/path/to/certificate.key # 當下載的是一個種子(以.torrent結尾)時, 自動開始BT任務, 預設:true #follow-torrent=true # BT監聽埠, 當埠被遮蔽時使用, 預設:6881-6999 listen-port=51413 # 單個種子最大連線數, 預設:55 #bt-max-peers=55 # 開啟DHT功能, PT需要禁用, 預設:true enable-dht=false # 開啟IPv6 DHT功能, PT需要禁用 #enable-dht6=false # DHT網路監聽埠, 預設:6881-6999 #dht-listen-port=6881-6999 # 本地節點查詢, PT需要禁用, 預設:false #bt-enable-lpd=false # 種子交換, PT需要禁用, 預設:true enable-peer-exchange=false # 每個種子限速, 對少種的PT很有用, 預設:50K #bt-request-peer-speed-limit=50K # 客戶端偽裝, PT需要 peer-id-prefix=-TR2770- user-agent=Transmission/2.77 peer-agent=Transmission/2.77 # 當種子的分享率達到這個數時, 自動停止做種, 0為一直做種, 預設:1.0 seed-ratio=1 # 強制儲存會話, 即使任務已經完成, 預設:false # 較新的版本開啟後會在任務完成後依然保留.aria2檔案 #force-save=false # BT校驗相關, 預設:true #bt-hash-check-seed=true # 繼續之前的BT任務時, 無需再次校驗, 預設:false bt-seed-unverified=true # 儲存磁力連結後設資料為種子檔案(.torrent檔案), 預設:false bt-save-metadata=true

由於我基本不玩PT下載,這篇文章欠缺的內容是關於PT下載的內容,也歡迎搭建分享自己的經驗。

硬體上下載機需要長期開機,所以功耗低可以減少電費。同時下載機一般會通過開啟Samba功能作為家用NAS,分享下載的檔案。比如我小主機的N4100系列CPU雖然效能一般,但是確實挺省電的。配合jellyfin則可以搭建一個自己的家庭影音服務中心,這也是我後面需要介紹的內容。