佑桑的數位家庭 - FreeNAS & rTorrent

補充
第一篇:「佑桑的數位家庭 - FreeNAS & MLDonkey
第二篇:「佑桑的數位家庭 - FreeNAS & rTorrent
第三篇:「佑桑的數位家庭 - 全網路化的音樂播放環境

補上一張目前的網路架構圖(20090706)


緣起

  請參考前一篇文章「佑桑的數位家庭 - FreeNAS & MLDonkey

  有了 MLDonkey 之後, 發現這個程式還是正如其名, 用在 donkey 上頭剛好, BT 的效能就有點讓人無言。接著發現原來新版的 FreeNAS 0.69b2 已經內建了cTorrent。可是試用了幾次, 卻完全無從下手, 怎麼用就是不順, 只好開始尋找別的解決方案。

  參拜過大神之後, 有一個比較受好評的選擇, 就是本篇文章所說的 rTorrent。雖然到目前還沒有搞定 WebUI, 但也足夠使用, 因此在這篇文章中做個記錄, 也與 m01 上的同好做個分享。

事前準備

  1.這裡的所有操作皆在 FreeNAS 0.69b2 的環境中完成, 其餘版本不確定是否可行
  2.截至文章完成, 我的 System 磁區總計用了 1.8GB, 因此建議的磁區最小值能有 8GB 比較好
  3.我的記憶體有 2GB, 現在使用率大約都在 93%~98% 中間遊走, 所以請估計好 SWAP 空間
  4.同我前一篇文章所提, 請準備好 FreeBSD 6.3 release ISO 檔並解開備用

艱難的安裝過程

  因為 rTorrent 要從 0.8.x 之後才開始支援 DHT (Distributed Hash Table), 可以讓使用者在沒有 Tracker 的情形下依然能夠下載(?? 不很確定這個說法是不是正確, 有誤請告知)。所以我們以安裝 rtorrent-devel-0.8.2 為例, 說明整個安裝過程

  利用 FreeBSD FTP4 的連結來安裝 rtorrent-devel

     # pkg_add -r ...rtorrent-devel...

     # rtorrent
     /libexec/ld-elf.so.1: Shared object "libstdc++.so.6" not found, required by "rtorrent"

  少了一個檔案, FreeBSD 中也找不到, 看檔名猜一下套件名稱, 補上!

     # pkg_add -r ...libstdc++_stldoc...

     # rtorrent
     /libexec/ld-elf.so.1: Shared object "libstdc++.so.6" not found, required by "rtorrent"

  怪怪, 套件裝完了還是找不到! 到 Google 去拜一下大神, 再裝另外一個套件

     # pkg_add -r ...compat4x-i386...

     # rtorrent
     /libexec/ld-elf.so.1: Shared object "libstdc++.so.6" not found, required by "rtorrent"

  怎麼回事? 還是找不到所需要的檔案, 再去求求大神, 從某篇文章得到一個靈感, 看看有沒有 libstdc++.so.*

     # find / | grep -i libstdc++.so
     /usr/lib/libstdc++.so.5

     居然有一個 libstdc++.so.5 那就試試看直接拿來用好了

     # cd /usr/lib/

     走一下小偏門, 做個 link 把 x.6 連結到 x.5
     # ln libstdc++.so.5 libstdc++.so.6

     再執行一次看看

     # rtorrent
     /libexec/ld-elf.so.1: Shared object "libgcc_s.so.1" not found, required by "rtorrent"

  咦! 好消息是錯誤訊息變了, 壞消息是依然不能執行! 而且 FreeBSD ISO 檔中依然找不到這個檔案,果然不能沒有「大神」。看來這個檔案是包在 gcc 的套件中(這次決定不裝套件, 走點偏門試試看, 直接到 FreeBSD TW FTP 去抓)

     # wget ...gcc-4.4.0...

     用 7-ZIP 把檔案解開來, 找到 libgcc_s.so.1 並拷貝到 FreeNAS 中再試試看

     #cp /somewhere/libgcc_s.so.1 /usr/lib/libgcc_s.so.1

     # rtorrent

  耶! 可以了! 出現主畫面, 畫面下方的文字說明找不到 /root/.rtorrent.rc 這個設定檔, 但是已經可以正常執行。按下 Ctrl+Q 退出 rTorrent, 準備進入下一步

  備註:
  1.文章中第一個缺的檔案 libstdc++.so.6 或許也可以直解下載解開 libstdc++ 套件包中的 libstdc++.so.5,然後更名後放到正確目錄中試試看
  2.備用的 FreeBSD ISO 檔案, 在我的安裝流程中沒用到, 不過留著以備不時之需

搞定你的 rtorrent.rc

  新增並編輯以下這個檔案

     # nano /root/.rtorrent.rc

  檔案內容可以參考網路上找得到的說明或是參考一下我的設定檔

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# 每一個 torrent 最小/最大連接數
# Maximum and minimum number of peers to connect to per torrent.
min_peers = 10
max_peers = 200
# 每一個 torrent 最大上傳數量
# Maximum number of simultanious uploads per torrent.
max_uploads = 10
# 上傳和下載速度限制 0:無限制 (KB/s)
# Global upload and download rate in KiB. "0" for unlimited.
download_rate = 0
upload_rate = 60
# 下載檔案存放目錄
# Default directory to save the downloaded torrents.
directory = /somewhere/rtorrent/income
# 下載快取目錄
session = /somewhere/rtorrent/temp
# torrent 檔存放目錄, 並定時監控
schedule = watch_directory,5,5,load_start=/somewhere/rtorrent/torrents/*.torrent
# 監聽的 TCP port 範圍
port_range = 51001-51002
# 下載檔案名使用 UTF-8 編碼
encoding_list = UTF-8
# DHT 相關設定 (分佈式哈希表)(Distributed Hash Table)
dht = auto
dht_port = 51000
# 是否可以使用 UDP port 的 trackers
# Set whetever the client should try to connect to UDP trackers.
use_udp_trackers = yes
# Enable peer exchange (for torrents not marked private)
peer_exchange = yes
# 記錄檔存放路徑
execute_log = /var/log/rtorrent.log
# 定時檢查種子, 到達指定條件後停止做種
schedule = ratio,60,60,"stop_on_ratio=200,50M,300"
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

丟到背景去

  這時 rtorrent 應該可以正確執行了, 各位可以試著把種子丟到 rc 檔中所設定的 /somewhere/rtorrent/torrents/ 目錄中(可以用網芳、FTP、SFTP等任何方式), 應該可以自動啟動了, 至於 rTorrent 的操作方式, 可以參考這份文件

  按下 Ctrl+Q 可以退出程式, 只可惜所有下載中的程序也一併跟著停掉, 所以我們必需有一個方式, 可以在平常時將程式放在背景執行, 而在有需要時拿到前景來跑。

  要做到這點, screen 或是 dtach 就可以完成。可是我在 FreeNAS 中找不到 screen 程式, 也不知道該怎麼安裝(知道的網友請不吝告知), 所以這裡以 dtach 來做說明

     # pkg_add -r ...dtach-0.8...

     使用下頭的指令來執行 rTorrent
     # dtach -c /tmp/ABC rtorrent

     按下 Ctrl+\ 可以把 rTorrent 丟到背景去

     使用下頭的指令把丟到背景的 rTorrent 撿回來
     # dtach -a /tmp/ABC

  這裡有一點需要注意, dtach 似乎會影響上/下/左/右鍵的對應。遇到這種狀況時, 可以改用 Ctrl+上/下/左/右 來代替

  當然, 還是必需把 public IP 上的對應 port 轉到 FreeNAS 上頭, 不過這已經不是本文的範圍了
2008-08-17 18:02
阿佑桑 wrote:
緣起  請參考前一篇...(恕刪)



有個小建議 。
如果可以的話,用SCRENN 才算是最完美的把程式放在背景的方式吧。

qtairo wrote:
有個小建議 。
如果可以的話,用SCRENN 才算是最完美的把程式放在背景的方式吧。


我想你應該是指 screen...我也想知道怎麼在 FreeNAS 中弄出 screen
看來下一版的 FreeNAS 0.69b3 將會正式在 WebGUI 提供 BitTorrent 服務設定
並提供 WebGUI 的下載管理 (其實0.69b2就有支援BT了, 只是不支援 WebGUI 的設定)
這樣無疑又將把 FreeNAS 的應用, 往前跨了一大步


限制級
您即將進入之討論頁 需滿18歲 方可瀏覽。
根據「電腦網路內容分級處理辦法」修正條文第六條第三款規定,已於該限制級網頁,依台灣網站分級推廣基金會規定作標示。
評分
複製連結