为应对当前网盘分享环境中 恶意举报 盛行的问题,本文推荐了一种基于 IPFS[4] 的去中心化文件分享方法,并介绍了 IPFS 分享助手程序来简化操作流程。该程序集成了文件添加、CID 拉取、计算与转换、生成分享链接、固定到 Crust 等功能,可极大降低 IPFS 的使用门槛。文章还分享了一些 IPFS 资源分享的经验和技巧。通过具体使用案例,展示了程序在文件导入、链接生成、多文件聚合等方面的便利性。
本文旨在为资源分享提供一个更安全、更便捷的解决方案,欢迎大家对本程序提出建议和改进意见。
IPFS 辅助油猴脚本:https://github.com/cenglin123/ipfs-cid-copy-helper
v1.1.7 更新 [20250419]
- 修改按钮排布,使得结构更为合理
- 导入 CID 超时时长为 30s,超时视为出错,程序会提示哪些 CID 出错,并提供一键填写失败 CID 到主输入框的功能
- 导入 CID 时可以点击【下载网关测速】广播所有 CID 到公共网关,这样可以改善导入效率
- 下载链接生成器新增【获取更多网关】按钮,点击后,会自动获取当前 IPFS 节点的 gateway 端口(比如 8080),然后使用 http://k51qzi5uqu5djx3hvne57dwcotpc8h76o2ygrxh05kck11j6wnhvse8jrfzf2w.ipns.localhost:8080/ 通过本地网关访问网页
- 计算 CID 部分加入了 v0 v1 互转的功能
v1.1.5 更新 [20241114]
新增网关负载均衡功能
演示视频
20240826 IPFS下载和上传入门教程 简单版03
https://www.youtube.com/embed/Xof9kek1orU
如果看不了油管视频,可以在 备选线路 观看
随着国内网盘审查越来越严格,传统的分享方式都面临着被和谐的风险。同时,某些恶意团体通过脚本举报等手段打击正常的资源分享行为,使得分享环境日益恶化。在这样的背景下,探索更安全、更便捷的资源分享方式变得尤为重要。
IPFS (InterPlanetary File System) 作为一种去中心化的分布式文件系统,天然具有抗审查、异地保存等特性,为我们提供了一种新的资源分享思路。
某类团体的举报示例
示例
IPFS 分享的核心原理是将文件上传到 IPFS 网络,然后通过文件的哈希值(CID)来访问和下载。这种方式具有以下优势:
- 去中心化:文件存储在分布式网络中,不依赖于单一服务器,无法举报,自然也难以被删除或封禁。
- 内容寻址:通过内容哈希而非位置来定位文件,保证了文件的完整性。
- 矿工托管:IPFS 存储矿工存储文件可以获取收益,能够保证资源的可用性
- 网关下载:相比于同属去中心化的 BT ,IPFS 可以通过网关链接的方式让没有 IPFS 节点的普通下载者也能访问 IPFS 中的内容,并且以一个不低的速度进行下载(10-20MB/s)
当然,IPFS 也存在一些问题,如上传下载速度不稳定,使用相对复杂等。针对此问题,本文提供了一个可以极大简化 IPFS 分享流程的程序,IPFS 分享助手,旨在让IPFS分享变得更加简单易用。
本程序集成了 IPFS 本地文件添加、已上链 CID 拉取、计算本地文件 CID 及 CID 格式转换、生成分享链接等分享相关一站式功能。主要包括:
1. 把本地文件/文件夹添加到 IPFS:支持通过拖拽文件批量添加到本地的 IPFS 仓库
2. 由 CID 从 IPFS 网络拉取文件:可以把被多副本固定在 IPFS 网络中(行话叫"上链")的文件批量拉取到本地
3. 分享链接生成:根据网关+CID+文件名生成分享链接,进行网关测速,支持多种常见网关,可自定义网关。
4. IPFS 节点管理:内置 IPFS 节点,无需额外安装,也可连接外部节点。
5. WebUI 文件管理:可通过 WebUI 查看已上传文件列表,删除文件等,以及其他 IPFS desktop 的原生功能。
6. Crust 平台固定:可以设置 Crust 平台的账号及签名来远程固定 CID 到 Crust 网络,也可以使用公共账号(无法导出固定信息)
IPFS分享助手采用了直观的界面设计,主要分为以下几个部分:
- 主输入区:支持拖入文件/文件夹或者输入 CID 进行操作,可自定义文件名、设置导入目标位置等
- 配置选项区:可以设置本地 IPFS 仓库的地址,导入后是否固定、是否在关闭程序时自动最小化任务栏图标。
- CID 计算器:可以计算文件的 v0 、v1 格式的 CID ,把 v0 格式的 CID 转换为 v1 格式,或者计算文件在酸奶网盘中的 v1 格式的 CID ,在程序主界面上有简易计算器,支持计算完成后一键填入主输入区
- 下载链接生成器:可根据已选择的网关和当前主输入区中的内容生成下载链接并一键复制到剪贴板,可以在程序目录下的
modules/ipfs_gateway.txt中自定义网关。 - 任务栏右键菜单:勾选关闭时最小化到任务栏选项后,关闭程序时程序不会退出且会最小化到任务栏,任务栏图标右键菜单提供有【高级计算器及Crust Pinner】和【IPFS WebUI】这两个选项。
本程序具有和 IPFS desktop 类似的导入功能,支持拖入文件或文件夹添加到本地的 IPFS 仓库中
具体来说如下图所示
点击【WebUI】打开 IPFS WebUI 可见已导入成功
对于分享者来说,IPFS 下载链接的生成是一件比较麻烦的事情,IPFS 下载链接的格式为【网关+CID+文件名】,生成时除了网关需要选择,为了让文件名在网址链接中有效,也需要进行编码,显得很繁琐。
针对此问题,本程序支持根据当前输入框中的内容快速生成下载链接,并自动对文件名进行编码。
具体操作如下图:
本程序在程序同路径下的 modules/ipfs_gateway.txt 文件中内置了若干常见的网关供选择,如有需要也可以自行在文件中添加其他自定义网关,添加后点击【重置下载链接】即可重新加载网关。
由于 IPFS 网关的状态并不总是稳定,对于需要批量生成下载链接的情况,如果持续使用同一个网关生成大量链接,可能会导致该网关的响应时间变慢,甚至过载。通过启用网关负载均衡,可以将不同的 CID 分配到不同的网关上,优化访问速度和资源分配。
勾选右下角配置选项中的【启用下载链接生成器的网关负载均衡功能】,便可自动对网关进行分配。具体而言:
- 轮询负载均衡:当测速结果不足或未开启测速功能时,程序会依照用户当前选定的网关,并按顺序轮询可用的其他网关,将 CID 分配给不同的网关,以减少某个网关的负担。
未开启负载均衡:
开启负载均衡
- 网关测速结果:程序还在
modules/ipfs_gateway_side.txt中设置有 700 多个次选网关,每次加载网关时除了自选网关以外,也会随机抽取 50 个次选网关,和主网关一起进行网关测速。如果进行了网关测速,程序会记录每个 CID 的最佳网关(测速速度最快的网关)。当多次生成同一个 CID 的链接时,优先选择该最佳网关。
通过此方法,即便在大批量链接生成的情况下,也能提高链接的生成速度和稳定性,有效降低单一网关过载的风险。
由于 Crust1, 2 等 IPFS 平台等上传大于 1GB 的文件时效率较低,通常推荐采用多次分批上传,获取 CID 后分别导入到一个文件夹中,然后再在 Crust 等平台中采用下单或固定(PIN)文件夹整体 CID ,或者自己做种的方式让文件可以被网关访问。在这个操作中导入文件是很费时间的,在不使用命令行的情况下是一件非常繁琐的事情。
针对这个问题,本程序支持把 CID 批量输入到主输入框,然后指定文件名,设置导入路径,点击【导入】即可一键快速导入。
更进一步,确认文件全部上链(上传到 Crust 网络并被矿工固定产生副本)以后,可以直接通过 CID 简易计算器直接算出 CID 然后填写到主输入框中,快速导入。
点击【WebUI】打开 WebUI 可见已导入成功
酸奶网盘[3] 是一个国人团队开发的基于 Crust 矿工托管的 IPFS 网盘,相比于 Crust Files,酸奶网盘可以批量上传文件, 并辅助进行固定,以避免 Crust Files 网络阻塞造成的上传失败问题。
(2024.08.13 开始酸奶网盘已统一使用正式的 CID v1,移除此前的酸奶网盘格式 CID v1 转换功能)
在算出 CID 以后,可以直接根据 CID 生成下载链接立刻发布(即使文件仍在上传中),由此达成类似秒传的分享方式,增加效率。
虽然 IPFS 理论上支持任意大小的文件,但考虑到上传和传播效率,建议将大文件拆分为 1GB 左右的小文件(这也是 Crust Files 可上传的最大体积)。可以使用压缩软件进行分卷压缩,然后逐个上传,最后使用 5.4 节中的方法聚合 CID 到文件夹然后发布。发布时最好也同时把内容文件的 CID 一并给出,防止因为文件夹 CID 因为每人做种而丢失聚合。
为了提高下载成功率和速度,建议在分享时提供多个公共网关的链接,对于批量分享的分卷,建议启用网关负载均衡功能,把下载链接分摊给不同的网关。IPFS分享助手已内置了常用的网关,你也可以添加自己信任的网关。
虽然目前 IPFS 本身不会审查文件内容,但某些网关可能会(比如 eth.sucks 这个网关)。因此在上传时,可以考虑对文件名进行简单处理,如使用缩写等,必要时可以采用隐写文件。
此外如果处于极端环境下(即为了对抗恶意举报或网络攻击而使用 IPFS 的情况),则不建议使用带网关的下载链接,而是仅分享 CID 来防止可能的对于特定网关的举报或者攻击。
由于 IPFS 不能阻止知道 CID 的人访问文件,也不能保证彻底删除文件(这是其抗审查能力的体现),对于敏感度较高的文件,如果需要上传到 IPFS ,可以先进行加密再上传。这样即使文件被他人下载,没有密钥也无法查看内容。
目前的程序测试仍不充分,已解决的主要问题有:
- IPFS 本地端口被代理错误地转发到服务端的问题
- 在程序中集成 Crust 的 PIN 功能,可以在导入后在 Crust 中进行固定
- 增加网关测速功能,自动检查网关的可用性
- 增加网关负载均衡功能
今后的开发计划:
- 更新中...
IPFS 作为一种去中心化的文件分享方案,为我们应对恶意举报和网络攻击提供了新的思路。
本文介绍的 IPFS 分享助手程序通过简化操作流程,大大降低了 IPFS 的使用门槛,使更多人能便捷地使用这一技术。程序集成了文件添加、CID 操作、链接生成等多项功能,并通过具体案例展示了其在实际使用中的优势。目前程序仍存在一些待解决的问题,未来将继续迭代优化,如集成 Crust 的 PIN 功能、增加网关可用性检查等。关于此方面也欢迎大家多提意见。
随着操作难度的降低,IPFS 在资源分享领域有望有更广泛的应用,也欢迎更多人参与到 IPFS 生态的建设中来,共同探索更安全、更高效的分享方式。
[在此处列出最新的版本发布信息]
[1] [[技巧分享] [IPFS] 无法被举报的文件分享神器 CRUST IPFS 操作指南 PART.I](https://cangku.moe/archives/212812)
[2] [[技巧分享] [IPFS] 无法被举报的文件分享神器 CRUST IPFS 操作指南 PART.II](https://cangku.moe/archives/213010)
[3] [[技巧分享] [IPFS] 基于 CRUST IPFS 的防举报网盘](https://cangku.moe/archives/212970)
[4] [[技巧分享] IPFS 分享资源快速上手及其适用场景浅议 [资源防炸链解决方案]](https://cangku.moe/archives/212530)
[5] [[技巧分享] [IPFS] 图床教程:分享使用 IPFS 白嫖图床的办法](https://cangku.moe/archives/213012)
[6] [[工具分享] 隐写者:把资源嵌入 MP4 文件的隐写工具 [资源防炸链解决方案倡议&规避网盘审查技巧探讨]](https://cangku.moe/archives/211602)
[7] [[技巧分享] 如何应对资源倒卖者(倒狗)的举报 - 百度云篇 [资源防炸链解决方案倡议]](https://cangku.moe/archives/212735)
本程序仅用于学习和研究 IPFS 技术,请勿用于任何非法用途。请遵守所在地区的相关法律法规,如有违反后果自负。












