好读版本
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] 异常时回报