前言
因为最近在看eh网站下载的时候总是缺GP,Credit,HATH等资源,不然就只能下载重压缩版本,是真的糊,有时候字体稍微小一点就根本看不清楚了。于是就把整个网站翻了一次,结果找到了Hentai@Home这个项目,作为类 PCDN 项目,可以让部署的用户为广大使用者提供带宽的同时也能当作画廊下载器使用。
Tips:目前需要上下行>80Mbps的网络环境和公网IPv4地址才能申请客户端(硬需求),不过你在对应宽带服务商请求个临时提速,或者用其他网络环境测速,测完速再掉回去也可以的,毕竟日常运行只需要上行>2500kb/s即可。
如果你不想看软件运行原理,可以点我直接跳转到部署。
Hentai@Home介绍&原理
地区划分
首先我们得知道Hentai@Home (下面我们简称为H@H) 到底是什么,上面简单的一句话带过了但是还有很多的内容没有说。
这个项目本质是一个官方服务器分流器,所有加入H@H项目的客户端都被分配了一个地区,详情请见官方的网站:

在2023年10月的更新中,菠萝把中国大陆区域独立了出来作为一个单独的地区,现在总共有四个大区,总体是根据地理位置和网络环境划分的。这样可以最大程度确保用户的请求由最近的H@H客户端响应。
分流细节
在划分好地区后,接下来就是让访问网站的请求划分到对应的H@H客户端。EH的服务器主要充当了Load Balancer,将不同地区的热门资源缓存发放给对应地区的H@H的客户端,从而缓解官方服务器大部分的流量
地理位置分流:
EH服务器会检测网站用户的 IP 地址。比如一个加拿大的用户正在看某本热门漫画,中央服务器会优先寻找位于北美和南美地区的、且刚好缓存了这本漫画的H@H客户端来给他发图。
客户端测速评级:
EH服务器会定期对所有在线的 H@H 节点进行盲测(用其他位于同一地区的H@H客户端探测你的带宽、延迟、丢包率),并给你的节点打分。带宽大、响应快、在线质量稳定的节点会被分配到更多的缓存。
动态请求分配:
EH服务器内部记录着“哪一个节点存了哪些缓存内容”。当用户请求某些资源时时,服务器直接去索引里拉出拥有该资源缓存且离该用户最近的在线节点列表,然后把请求重定向给这些节点。
降级策略:
如果你的请求地点附近没有H@H节点,或者存有这张图的节点全都离线了,或者节点的带宽被占满了,无法及时响应请求,中央服务器就会把请求降级,转由官方服务器响应,这也是为什么有时候加载不出来刷新一下又可以响应的原因。
缓存分配
每个地区会有一定量的缓存块,每个运行在该地区的客户端就是在分这些缓存块,你带宽更大,更加稳定,分配的缓存也就越多,分配的缓存越多,给的资源也就越多。
官方服务器会根据你的磁盘空间和上传速度分配缓存,每一组缓存需要512MB的磁盘空间(这些磁盘空间不可以被占用)

官方是根据地区的不同分配不同的缓存块,所以在你的机器转区以后大部分需要清空缓存,否则会导致缓存问题或者地区标红,这些情况下收益会被腰斩和停止分配新的缓存。
总体来说,分配主要呈现下面的趋势:
- 区域:不用多说,建议把机器放在热门地区以获得最大的缓存块增加速度。
- 上传速度:在其他条件不变的情况下,速度越快获取到缓存的速度也就更快。
- 端口:443 端口获取缓存块的速度会比其他端口的速度快,因此对于不需要使用 443 端口的 VPS 来说,尽量让 H@H 占用 443 端口是最优解。当然家庭宽带环境不要用443和80,国内的家庭宽带大概率阻断和检测这两个端口。
部署H@H
需求
| 要求 | 说明 |
|---|---|
| Java运行时 | 版本必须为8-11,JDK也可,嫌麻烦直接上docker即可 |
| speedtest测速上下行80Mbps | 申请需要,后续运行只需要至少2500kB/s上行 |
| 10GB以上的硬盘空间 | 缓存存储需要 |
| 一个开放的TCP端口 | 推荐使用443,家庭宽带不要用,建议1024-65534之间选一个 |
| 公网IPv4地址 | 外部访问必须 |
| 正常运行时间 | 6个月至少75%-80%的在线时间 |
| 至少500G/月的流量 | 客户端最低限制500G/月 |
满足以上需求后即可在官网申请,预先填写你可以分配给H@H客户端的带宽,后续可调;预先填写你可以分配给H@H的磁盘空间大小,后续可调;然后贴上你speedtest测速的结果网址即可。

一般来说你申请冷门地区的客户端(主要看你speedtest的测速服务器,建议选择就近测速)会很快通过申请,如果你申请北美欧盟那边的服务器那估计通过的概率不大,因为客户端已经接近饱和。具体饱和与否请看最上面的地区划分图,又或者是查看官网的实时内容。
本地部署
在申请通过以后,在官网查看的申请通过的H@H客户端,点击进行首次配置,最重要的是你的监听端口、最大磁盘缓存大小和最大上传带宽。
设置完成以后下面勾选重置客户端Key来生成一个客户端Key,点击最下面的应用设置以后就会生成一个客户端Key,配合你的客户端ID即可部署你的H@H客户端。
由于网上部署的教程已经非常多了,而且我也不想折腾java环境,我就用一个通用方法,docker来部署了,一键启动,环境隔离。请参考这个项目:H-at-H-docker,一键部署,还带软关闭java,非常实用。Windows部署的话更简单,找网站下载一个Java8-11,然后下载软件包程序运行即可。
部署以后
接下来就是长期运行和奖励方面的东西了。
客户端评分
你会在官网看到你客户端的两个评分:信任和质量。
信任
信任反映了其他客户端对你的客户端的评价。
- 信任上限为+1000,如果客户端行为正常,即使没有提供文件,信任上限也会每分钟逐渐增加1-4。
- 信任为负通常是由不当关机、连接不良或者是缓存未命中引起的。
质量
质量衡量客户端的长期的稳定性和可靠性(最大值为10000),方法是将客户的平均故障率与其平均命中率进行比较,从而得出结果。它优先考虑客户端的缓存请求(以及原始速度和接近度因素),并确定与该区域的平均性能相比,每天可以分配多少静态范围。
- 如果客户的平均故障率与区域平均水平相同,则质量指标将为 9000。要达到最高质量(即 10000),客户的故障率需要比平均水平低一半。
- 如果质量低于 2000,客户端将停止接收流量,直到质量恢复为止。
- 流量较少的新客户可能会经历一些价值波动,但随着时间的推移,这种情况会趋于稳定。
- 由于该地区的特殊性,位于中国本土(即中国大陆)的客户不使用质量指标。用户端的输出值被锁定为 10000。
奖励
专门去运行H@H客户端,总不可能大家都为爱发电吧,当然是有奖励的啦。
每天获得一定量的GP。用户在客户端每次点击都会获得1 GP。 用于归档下载(Archive download)以及刷新浏览值(默认上限5000,每分钟恢复3点)。
你在官网归档下载平均一个 7MiB的本子消耗数量为300GP,不足时会从Credit转换。
当运行H@H的客户满足最低要求用户收到HATH。
每日获得的Hath收益按以下公式计算:
1 | Hathrate/day = 1 + 0.15 * max(hits_per_minute, KB_served_per_minute / 420) + 0.025 * active_rangecount + 0.05 * hicap_rangecount |
Hath的用途有两个主要方面:
- 购买Credit然后转换成其他货币,
- 用于购买Hath Perks,也就是网站增强功能,例如屏蔽广告,一页显示多张图片,增加Thumbs上限等等。
- 每周获得一定量的免费归档下载流量。也就是平时你需要花费GP或者Credit下载的本子,现在可以在一定容量内免费下载。
健康的客户端,如果当前或之前的会话持续时间至少达到 24 小时,则每天可获得 1000 MB 的免费存档下载额度。此外,每次调整后的平均点击量可额外获得 10 MB/天的下载额度。
该配额是在7天的滑动窗口内计算的。
重新创建的档案不符合条件。
额外客户不会获得额外的 1,000 MB 流量。
- H@H Downloader,你部署H@H客户端有下载功能,可以通过eh点击下面的选项将本子直接下载到部署H@H客户端的Download文件夹里面。
