[洽特] 在樹莓派上跑 [email protected]

作者: takahashikag (那來自某島的蘇州軍部長)   2017-10-06 10:28:24
好讀版本
https://takahashi65.blogspot.tw/2017/09/raspberry-pi-3-raspbian-hentaihome.html
前前後後間斷的弄了一個月,確定可以穩定運作至少兩週了,所以來發個技術文
基本上這是一種在本地端跑 [email protected] 最廉價的方案,兩千不到的樹莓派,幾百塊的硬碟外接盒,再加上一個小容量的固態硬碟,五千塊以內打死,而且樹莓派還可以同時作其他事情,如果你不喜歡租 VPS 在遙遠又看不到的機房跑這種東西的話,是可以這樣玩
我省略了一些的東西,像是設定 DHCP 保留,將樹莓派的內部網路位址固定,以及設定 DHCP/NAT 的傳輸埠指定,將特定的傳輸埠開放到網路( WAN )上、並轉發給內部網路( LAN )的指定網路位址,這個各家無線網路分享器的實作介面都不一樣,請自己去查
申請 [email protected] 客戶端、網頁上設定客戶端的部分,請參閱版上其他文章
======
或許很多人會想樹莓派跟一般電腦的架構完全不一樣( ARM 架構的 Broadcom BCM2837 之於一般電腦的 x86-64 處理器)怎麼可能跑這些東西,但其實只要是使用跨平台的方式去撰寫,比如用 Python 或是 Qt 模式去撰寫的軟體通常都可以在各種平台上運行,而 [email protected] 這種運行在 Java 架構上的軟體更不是問題
首先來講一下要運行 [email protected],在樹莓派所運行的 Raspbian 上需要安裝的軟體與設定
https://farm5.staticflickr.com/4397/36634099774_d9eb0e45f1_b.jpg
終端機登入樹莓派
https://farm5.staticflickr.com/4344/37296234096_6cf746d683_b.jpg
再來跑個 sudo apt-get update 跟 sudo apt-get upgrade
https://farm5.staticflickr.com/4420/37086925220_d60f211dd0_b.jpg
使用 speedtest.py 腳本測速一下,確定樹莓派可以連線並跑出最大速度
https://farm5.staticflickr.com/4445/37343184071_4737dd0dcc_b.jpg
sudo apt-get install trickle 安裝限速模組,抓個想要讓 [email protected] 跑的速度
https://farm5.staticflickr.com/4350/23491969508_76345d5876_b.jpg
大概抓個 2 Mbps 然後輸出測試結果,然後去填寫客戶端申請
https://farm5.staticflickr.com/4506/37511013941_60d27d717c_b.jpg
sudo apt-get install default-jre 跟 sudo apt-get install default-jdk
之後 java -version 會像是這樣
其實一開始我也在想不安裝 Oracle Java SE 真的沒問題嗎,畢竟參閱不少資料都說需要 Oracle Java 套件,但跑起來確實是沒問題就是了
接著講一下硬體的部分,樹莓派是使用 MicroSD 記憶卡當作系統硬碟來運作,即使用大容量的記憶卡,但考慮到頻繁的讀寫還是建議使用外接硬碟,畢竟跑 [email protected] 就是要越大的檔案快取空間( Files Served / Maximum Disk Cache Size )越好,弄顆有一定容量的外接硬碟是最佳解,剛好手上有一顆小容量的固態硬碟,可以在讀取速度跟耗電量上取得不錯的平衡,畢竟樹莓派的 USB 埠最大輸出電流量只能到 1200mAh
https://farm5.staticflickr.com/4454/36841884643_b5d18382dd_b.jpg
左邊是樹莓派跟它的風扇,右邊是中華電信光世代的數據機
https://farm5.staticflickr.com/4485/37252604930_07d28cb409_b.jpg
固態硬碟跟外接盒用 3M 魔鬼氈固定在櫃子頂部
接下來要把外接的固態硬碟掛載到樹莓派的系統,並能被運行的 Raspbian 系統存取使用
也就是要把外接硬碟資料清空、建立新的 GPT 分割表與一個 Ext4 格式分割區
因此請確定這顆硬碟裡面沒有你需要的資料
而 Linux 的硬碟管理邏輯跟 Windows 不太一樣,因此可能很多人不能理解把硬碟掛載到資料夾這個概念,沒關係,照作就好(欸?
https://farm5.staticflickr.com/4457/36841893783_d45bf430b3_b.jpg
使用 df -h 指令顯示系統上的磁碟區跟可用空間
https://farm5.staticflickr.com/4507/37479893892_b94f9d8cb8_b.jpg
lsblk 指令顯示硬碟分割狀態跟分割區
https://farm5.staticflickr.com/4484/37479893692_37ae2f09e5_b.jpg
接上外接硬碟並重新開機後可以看到硬碟 sda 與磁碟區 sda1
https://farm5.staticflickr.com/4477/36841893773_184c7fa83d_b.jpg
https://farm5.staticflickr.com/4490/36841893143_314d855d30_b.jpg
使用 fdisk -l 來檢視硬碟與磁碟區的詳細資料,最下面的 /dev/sda 就是外接硬碟
https://farm5.staticflickr.com/4493/37479893592_86963519e9_b.jpg
使用 sudo fdisk /dev/sda 來編輯外接硬碟,先 d 後 w 來刪除硬碟上的分割表與磁碟區
https://farm5.staticflickr.com/4462/36841892713_f43cde6029_b.jpg
再一次 sudo fdisk /dev/sda 建立磁碟區,先 n 後 p、1、按兩次輸入,最後 w 儲存
https://farm5.staticflickr.com/4506/36841892373_ca3c676519_b.jpg
使用 sudo mkfs.ext4 /dev/sda1 來將分割區格式化成 Ext4
https://farm5.staticflickr.com/4473/36841892043_430b8ea047_b.jpg
結果是這樣,將 /dev/sda1 格式化成Ext4
https://farm5.staticflickr.com/4511/36841891553_8e9aec9a45_b.jpg
使用 sudo mkdir /media/hd 來建立一個資料夾,之後外接硬碟會掛載在這裡
並用 sudi chmod 777 /media/hd 的指令給予它權限
https://farm5.staticflickr.com/4485/36841891833_b5da92f554_b.jpg
s -lh /dev/disk/by-uuid 可以看到硬碟與分割區的 UUID
sudo blkid /dev/sda1 列出外接硬碟分割區的 UUID
https://farm5.staticflickr.com/4469/36841891353_9b9a2fbb8b_b.jpg
記住剛剛的 UUID,編輯 fstab 來達成開機自動掛載外接硬碟
https://farm5.staticflickr.com/4489/36841891053_9c2c27bbc0_b.jpg
在最下面加入剛剛的 UUID,並指向 /media/hd
https://farm5.staticflickr.com/4465/36841890793_af75c85c6e_b.jpg
重新開機後外接硬碟就會掛載到 /media/hd 下
https://farm5.staticflickr.com/4462/36841890473_320874c31d_b.jpg
再輸入一次 sudo chmod 777 /media/hd 給予它權限
再來就跟正常安裝一樣,在 /media/hd 建立一個 hath 資料夾
把 HentaiAtHome.jar 丟進 /media/hd/hath,並設定 sudo chmod +x HentaiAtHome.jar
建議安裝一下 screen 這個套件來有效管理 [email protected],畢竟 SSH 終端機登出就會關掉程序這點還蠻討厭的,請參考下面這篇文章
https://goo.gl/jirXb2
再來就是在開啟的 shell 中啟動 HentaiAtHomeGUI.jar,在啟動指令中設定資料夾指向,填入客戶端編號與金鑰就可以完成
https://farm5.staticflickr.com/4499/37511016191_e1a3892fc3_b.jpg
設定 /etc/motd 後可以在登入終端機時看到一些自訂提示
https://farm5.staticflickr.com/4509/37511016381_2cd7685429_b.jpg
使用 df -h 指令就可以看到資料都儲存在外接硬碟
https://farm5.staticflickr.com/4505/37252604300_0dbeeafed2_b.jpg
在 E-hentai 可以看到樹莓派上的客戶端已經連線
兩個客戶端 6000 KBps 大約是亞洲區的百分之二運算力
通常樹莓派都是以 Headless computer (沒有外接螢幕與鍵盤滑鼠)的方式運作,因此可以用一些自動化腳本來監控並在發生異常時提醒你去處理,當然樹莓派內建的硬體看門狗也是必須的
詳細請參考 https://goo.gl/5qomS2
而我也額外寫了一些基於 Python 的小程式來監控,並使用 Crontab 來達成自動化運作
並在異常時通知我,我把撰寫好的程式放在 GitHub 上,可以自由取用
https://github.com/Suzhou65/RaspberryPi-Automatically-Report
https://farm5.staticflickr.com/4474/37252604030_5472a9382b_b.jpg
使用 Crontab 來來達成自動化運作,回報處理器溫度與 [email protected] 異常運作
https://farm5.staticflickr.com/4449/36841884903_e4e06bda78_b.jpg
定時回報處理器溫度與在 [email protected] 異常時回報
作者: himekami (╯°□°)╯︵ ┴━┴)   2017-10-06 10:36:00
快推以為我看得懂
作者: crystal0345 (昴)   2017-10-06 10:40:00
誠實地表示自己看不懂
作者: hl01125 (karikari)   2017-10-06 10:40:00
快推以免別人以為我看不懂
作者: okitasoshi (八極李書文)   2017-10-06 10:43:00
推就好了
作者: xAngelx   2017-10-06 10:49:00
寫得很詳細 幫推
作者: WLshadow (Facebrook)   2017-10-06 10:54:00
看不懂 先推
作者: gsock (急煞客)   2017-10-06 10:56:00
是技術取向的朋友呢 好厲害
作者: Wunyang (射命丸)   2017-10-06 10:58:00
在實驗室碰pi這麼久,還沒想過,慚愧推
作者: dqIpb (dqipb)   2017-10-06 11:03:00
萬神殿新業務
作者: jimmy90946 (Laver_offscum)   2017-10-06 11:16:00
看不懂 幫推
作者: garfunkel (聯盟德魯伊尋25人團公會)   2017-10-06 11:25:00
看不懂 我比較熟高金素梅
作者: h54889 (崩壞的豆芽菜)   2017-10-06 11:35:00
我拿來當作音樂訊源的樹莓派3昨天死亡了XD
作者: js850604 (jack0604)   2017-10-06 11:37:00
誠實的表示完全看不懂
作者: ihateants (Naruhodoh)   2017-10-06 11:40:00
話說我八月申請到[email protected]的帳號ID通過了 到現在還是沒有啟用(就是啟動客戶端還有那個網路流量啥的,總之就是一個ID沒用擺著) 不知道會怎麼樣??
作者: e04su3no (鋼鐵毛毛蟲)   2017-10-06 11:42:00
第一次看到網路數據機裝風扇
作者: Minegun (Minegun 麥肛)   2017-10-06 11:52:00
趕快推不然別人以為我看不懂XD
作者: fmatt (馬宅)   2017-10-06 11:58:00
恩恩 跟我想的一樣
作者: amam1111 (thousand)   2017-10-06 12:13:00
看不懂先推
作者: Akagikaini   2017-10-06 12:19:00
一般紳士還是買個金星領每日bonus比較省事XD
作者: AkikaCat (阿喵)   2017-10-06 12:49:00
真巧,我也覺得可以這樣搞
作者: Davinais (水靈流喵)   2017-10-06 12:54:00
沒想過可以這樣搞www
作者: emptie ([ ])   2017-10-06 12:55:00
這是…破產版本的nas嗎…缺點是很多東西要自己寫,好處也是什麼東西都可以自己寫
作者: NicoNeco ((゚д゚≡゚д゚))   2017-10-06 13:01:00
完全看不懂 有哪位小僧可以開導這個用途是?
作者: chi12345678 (to Terabithia)   2017-10-06 13:43:00
諾貝爾獎就給你了
作者: art159201 ((*.*))   2017-10-06 14:02:00
有心要玩的用rpi根本跑不了啥 hathrate基本上永遠過不了10bottleneck在rpi上 usb+ethernet轉接ic上至於6000kb那不過是自慰罷了 那只是max burst speed實際上傳力看hitrate或者[email protected] score才有參考力
作者: GP02A   2017-10-06 14:14:00
科技來自於人性
作者: zjes40604 (癡漢衝衝衝)   2017-10-06 14:21:00
嗯嗯嗯跟我想的差不多
作者: gino9955 (臨江)   2017-10-06 16:24:00
果然是萬神殿
作者: blanka (Like Heart Break)   2017-10-06 16:46:00
很有研究精神給推!自己也玩過 但是IO Performance太低買NAS只要一萬多搞定收工..
作者: evo2001 (空)   2017-10-06 17:17:00
推,這東西應該只要擔心運算能力跟零件不要掉件做著玩我覺得還不錯
作者: CP64 (( ̄▽ ̄#)﹏﹏)   2017-10-06 17:49:00
推 雖然各種懶....
作者: harry886901 (風嵐)   2017-10-06 17:52:00
看不懂 還是推
作者: PLEASE974853 (PLEASE974853)   2017-10-06 17:55:00
快推不然別人以為我不懂
作者: nns327 (nns)   2017-10-06 18:06:00
vps共用回線搞這個...
作者: xx456654tw (xx456654tw)   2017-10-06 18:07:00
快推別讓人覺得我看不懂
作者: valkytie (轟)   2017-10-06 18:37:00
要當個紳士真不容易
作者: potter1529 (宋代才女唱元曲)   2017-10-06 20:08:00
最近才買了兩個樹梅派來玩要做自動化 你拿來做這種事
作者: season7155 (神來一筆)   2017-10-06 21:02:00
看不懂
作者: kigipaul (KiGiPaul)   2017-10-06 21:21:00
有用PI跑過 但效果沒很好 就還是交給外面VPS的機器跑
作者: chu630 (洨豬豬)   2017-10-06 23:38:00
所以這可以幹嘛? XD
作者: enjoytbook (en)   2017-10-07 00:24:00
非理工人表示連用途都不知道xdd
作者: Soarwind (獨孤)   2017-10-07 07:14:00
想知道hathchecker是怎麼寫的,GitHub 上好像沒有
作者: takahashikag (那來自某島的蘇州軍部長)   2017-10-07 08:50:00
就是 HentaiAtHomeDetector.py 啊
作者: WindSucker (抽風者)   2017-10-07 12:12:00
可以發布印象檔 隨裝及用
作者: Soarwind (獨孤)   2017-10-07 12:26:00
喔喔乾蝦,我還以為有指令可以查Hathrate
作者: Kaiji (Crazy Kai)   2017-10-11 10:34:00
神猛推 科技始終來自於人性
作者: peter0627 (biscuit)   2017-10-12 13:58:00
萬神殿果然真的神

Links booklink

Contact Us: admin [ a t ] ucptt.com