[洽特] 在树莓派上跑 [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