[洽特] 在樹莓派上跑 Hentai@Home
看板AC_In (裏洽 18+動漫)作者takahashikag (アナタハソコニイマスカ)時間8年前 (2017/10/06 10:28)推噓43(43推 0噓 17→)留言60則, 49人參與討論串1/3 (看更多)
好讀版本
https://blog.takahashi65.info/2017/09/raspberry-pi-3-raspbian-hentaihome.html
前前後後間斷的弄了一個月,確定可以穩定運作至少兩週了,所以來發個技術文
基本上這是一種在本地端跑 H@H 最廉價的方案,兩千不到的樹莓派,幾百塊的硬碟外接盒,再加上一個小容量的固態硬碟,五千塊以內打死,而且樹莓派還可以同時作其他事情,如果你不喜歡租 VPS 在遙遠又看不到的機房跑這種東西的話,是可以這樣玩
我省略了一些的東西,像是設定 DHCP 保留,將樹莓派的內部網路位址固定,以及設定 DHCP/NAT 的傳輸埠指定,將特定的傳輸埠開放到網路( WAN )上、並轉發給內部網路( LAN )的指定網路位址,這個各家無線網路分享器的實作介面都不一樣,請自己去查
申請 Hentai@Home 客戶端、網頁上設定客戶端的部分,請參閱版上其他文章
======
或許很多人會想樹莓派跟一般電腦的架構完全不一樣( ARM 架構的 Broadcom BCM2837 之於一般電腦的 x86-64 處理器)怎麼可能跑這些東西,但其實只要是使用跨平台的方式去撰寫,比如用 Python 或是 Qt 模式去撰寫的軟體通常都可以在各種平台上運行,而 Hentai@Home 這種運行在 Java 架構上的軟體更不是問題
首先來講一下要運行 Hentai@Home,在樹莓派所運行的 Raspbian 上需要安裝的軟體與設定
這邊用 GitHub Gist 來演示,首先請用終端機登入樹莓派
https://gist.github.com/Suzhou65/3323c05432c0276487c6e21486e3ca80
Ⅰ 先確定可以 Ping 到 Google DNS
Ⅱ 然後測速,然後輸出測試結果去填寫客戶端申請
Ⅲ 接著安裝 Java ( default-jre 跟 default-jdk )
其實一開始我也在想不安裝 Oracle Java SE 真的沒問題嗎,畢竟參閱不少資料都說需要 Oracle Java 套件,但跑起來確實是沒問題就是了
接著講一下硬體的部分,樹莓派是使用 MicroSD 記憶卡當作系統硬碟來運作,即使用大容量的記憶卡,但考慮到頻繁的讀寫還是建議使用外接硬碟,畢竟跑 Hentai@Home 就是要越大的檔案快取空間( 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 不太一樣,因此可能很多人不能理解把硬碟掛載到資料夾這個概念,沒關係,照作就好(欸?
可以參照 GitHub Gist,或是分解動作
https://gist.github.com/Suzhou65/a68c44f343953fc245f6d4438cdbab77
1. 使用 df -h 指令顯示系統上的磁碟區跟可用空間
2. lsblk 指令顯示硬碟分割狀態跟分割區
接上外接硬碟並重新開機後可以看到硬碟 sda 與磁碟區 sda1
3. 使用 fdisk -l 來檢視硬碟與磁碟區的詳細資料,最下面的 /dev/sda 就是外接硬碟
4. 使用 sudo fdisk /dev/sda 來編輯外接硬碟,先 d 後 w 來刪除硬碟上的分割表與磁碟區
5. 再一次 sudo fdisk /dev/sda 建立磁碟區,先 n 後 p、1、按兩次輸入,最後 w 儲存
6. 使用 sudo mkfs.ext4 /dev/sda1 來將分割區格式化成 Ext4
然後再將 /dev/sda1 格式化成Ext4
7. 使用 sudo mkdir /media/hd 來建立一個資料夾,之後外接硬碟會掛載在這裡
並用 sudi chmod 777 /media/hd 的指令給予它權限
8. s -lh /dev/disk/by-uuid 可以看到硬碟與分割區的 UUID
sudo blkid /dev/sda1 列出外接硬碟分割區的 UUID
9. 記住剛剛的 UUID,編輯 fstab 來達成開機自動掛載外接硬碟
在最下面加入剛剛的 UUID,並指向 /media/hd
10.重新開機後外接硬碟就會掛載到 /media/hd 下
11.再輸入一次 sudo chmod 777 /media/hd 給予它權限
再來就跟正常安裝一樣,在 /media/hd 建立一個 hath 資料夾
https://gist.github.com/Suzhou65/8207e6c7487bf303cc7615ad94352e42
把 HentaiAtHome.jar 丟進 /media/hd/hath,並設定 sudo chmod +x HentaiAtHome.jar
建議安裝一下 screen 這個套件來有效管理 Hentai@Home,畢竟 SSH 終端機登出就會關掉程序這點還蠻討厭的,請參考下面這篇文章
https://goo.gl/jirXb2
再來就是在開啟的 shell 中啟動 HentaiAtHomeGUI.jar,在啟動指令中設定資料夾指向,填入客戶端編號與金鑰就可以完成
使用 df -h 指令就可以看到資料都儲存在外接硬碟
在 E-hentai 可以看到樹莓派上的客戶端已經連線,兩個客戶端 6000 KBps 大約是亞洲區的百分之二運算力
通常樹莓派都是以 Headless computer (沒有外接螢幕與鍵盤滑鼠)的方式運作,因此可以用一些自動化腳本來監控並在發生異常時提醒你去處理,當然樹莓派內建的硬體看門狗也是必須的
詳細請參考 https://goo.gl/5qomS2
而我也額外寫了一些基於 Python 的小程式來監控,並使用 Crontab 來達成自動化運作
並在異常時通知我,我把撰寫好的程式放在 GitHub 上,可以自由取用
https://github.com/Suzhou65/RaspberryPi-Automatically-Report
○ 使用 Crontab 來來達成自動化運作,回報處理器溫度與 Hentai@Home 異常運作
⊙ 定時回報處理器溫度與在 Hentai@Home 異常時回報
--
為什麼你會這麼熟練啊!你和指揮官親過多少次了啊!你到底要把我甩開多遠你才甘心啊
是我,是我先,明明都是我先來的…接吻也好,擁抱也好,還是喜歡上指揮官那傢伙也好
這個基地..已然 沒有我的容身之處了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.182.158
※ 文章網址: https://www.ptt.cc/bbs/AC_In/M.1507256931.A.17D.html
推
10/06 10:36,
8年前
, 1F
10/06 10:36, 1F
推
10/06 10:40,
8年前
, 2F
10/06 10:40, 2F
推
10/06 10:40,
8年前
, 3F
10/06 10:40, 3F
推
10/06 10:43,
8年前
, 4F
10/06 10:43, 4F
推
10/06 10:49,
8年前
, 5F
10/06 10:49, 5F
推
10/06 10:54,
8年前
, 6F
10/06 10:54, 6F
推
10/06 10:56,
8年前
, 7F
10/06 10:56, 7F
推
10/06 10:58,
8年前
, 8F
10/06 10:58, 8F
這板子可以惡搞的東西太多了,我還弄了個走 443 UDP 的 OpenVPN 去穿公眾無線網路
推
10/06 11:03,
8年前
, 9F
10/06 11:03, 9F
推
10/06 11:16,
8年前
, 10F
10/06 11:16, 10F
※ 編輯: takahashikag (223.136.182.158), 10/06/2017 11:19:26
→
10/06 11:25,
8年前
, 11F
10/06 11:25, 11F
推
10/06 11:35,
8年前
, 12F
10/06 11:35, 12F
推
10/06 11:37,
8年前
, 13F
10/06 11:37, 13F
推
10/06 11:40,
8年前
, 14F
10/06 11:40, 14F
→
10/06 11:40,
8年前
, 15F
10/06 11:40, 15F
→
10/06 11:40,
8年前
, 16F
10/06 11:40, 16F
推
10/06 11:42,
8年前
, 17F
10/06 11:42, 17F
推
10/06 11:52,
8年前
, 18F
10/06 11:52, 18F
推
10/06 11:58,
8年前
, 19F
10/06 11:58, 19F
推
10/06 12:13,
8年前
, 20F
10/06 12:13, 20F
推
10/06 12:19,
8年前
, 21F
10/06 12:19, 21F
推
10/06 12:49,
8年前
, 22F
10/06 12:49, 22F
推
10/06 12:54,
8年前
, 23F
10/06 12:54, 23F
推
10/06 12:55,
8年前
, 24F
10/06 12:55, 24F
→
10/06 12:55,
8年前
, 25F
10/06 12:55, 25F
→
10/06 13:01,
8年前
, 26F
10/06 13:01, 26F
推
10/06 13:43,
8年前
, 27F
10/06 13:43, 27F
→
10/06 14:02,
8年前
, 28F
10/06 14:02, 28F
→
10/06 14:02,
8年前
, 29F
10/06 14:02, 29F
→
10/06 14:03,
8年前
, 30F
10/06 14:03, 30F
→
10/06 14:04,
8年前
, 31F
10/06 14:04, 31F
→
10/06 14:05,
8年前
, 32F
10/06 14:05, 32F
推
10/06 14:14,
8年前
, 33F
10/06 14:14, 33F
推
10/06 14:21,
8年前
, 34F
10/06 14:21, 34F
推
10/06 16:24,
8年前
, 35F
10/06 16:24, 35F
推
10/06 16:46,
8年前
, 36F
10/06 16:46, 36F
→
10/06 16:46,
8年前
, 37F
10/06 16:46, 37F
推
10/06 17:17,
8年前
, 38F
10/06 17:17, 38F
→
10/06 17:17,
8年前
, 39F
10/06 17:17, 39F
推
10/06 17:49,
8年前
, 40F
10/06 17:49, 40F
推
10/06 17:52,
8年前
, 41F
10/06 17:52, 41F
推
10/06 17:55,
8年前
, 42F
10/06 17:55, 42F
→
10/06 18:06,
8年前
, 43F
10/06 18:06, 43F
推
10/06 18:07,
8年前
, 44F
10/06 18:07, 44F
推
10/06 18:37,
8年前
, 45F
10/06 18:37, 45F
→
10/06 20:08,
8年前
, 46F
10/06 20:08, 46F
推
10/06 21:02,
8年前
, 47F
10/06 21:02, 47F
推
10/06 21:21,
8年前
, 48F
10/06 21:21, 48F
推
10/06 23:38,
8年前
, 49F
10/06 23:38, 49F
推
10/07 00:24,
8年前
, 50F
10/07 00:24, 50F
推
10/07 07:14,
8年前
, 51F
10/07 07:14, 51F
→
10/07 08:50,
8年前
, 52F
10/07 08:50, 52F
推
10/07 12:12,
8年前
, 53F
10/07 12:12, 53F
→
10/07 12:26,
8年前
, 54F
10/07 12:26, 54F
推
10/11 10:34,
8年前
, 55F
10/11 10:34, 55F
推
10/12 13:58,
8年前
, 56F
10/12 13:58, 56F
推
08/16 14:41,
9年前
, 57F
08/16 14:41, 57F
→
08/16 14:41,
9年前
, 58F
08/16 14:41, 58F
推
09/03 00:11,
9年前
, 59F
09/03 00:11, 59F
※ 編輯: takahashikag (122.116.15.4 臺灣), 02/28/2021 17:33:55
推
02/28 20:19, , 60F
02/28 20:19, 60F
討論串 (同標題文章)
AC_In 近期熱門文章
28
41
PTT動漫區 即時熱門文章
10
29
49
63
18
20