惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
aimingoo的专栏
aimingoo的专栏
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
Engineering at Meta
Engineering at Meta
IT之家
IT之家
V
Visual Studio Blog
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
A
About on SuperTechFans
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
N
News and Events Feed by Topic
A
Arctic Wolf
WordPress大学
WordPress大学
小众软件
小众软件
C
CERT Recently Published Vulnerability Notes
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Darknet – Hacking Tools, Hacker News & Cyber Security
F
Fortinet All Blogs
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Y
Y Combinator Blog
T
Threat Research - Cisco Blogs
Latest news
Latest news
Simon Willison's Weblog
Simon Willison's Weblog
Cyberwarzone
Cyberwarzone
S
Schneier on Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
Lohrmann on Cybersecurity
Stack Overflow Blog
Stack Overflow Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy International News Feed
J
Java Code Geeks
Spread Privacy
Spread Privacy
宝玉的分享
宝玉的分享
I
Intezer
L
LangChain Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
G
GRAHAM CLULEY
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
AWS News Blog
AWS News Blog
Attack and Defense Labs
Attack and Defense Labs
Security Archives - TechRepublic
Security Archives - TechRepublic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

IPFS

ipfs 中文社区 - V2EX ipfs 盘更新日志 2025-07-28 - V2EX ipfs 盘更新日志 2025-07-21 - V2EX 一个分享文件可以赚钱的 ipfs 网盘 - V2EX 能否动态替换网关 - V2EX ipfs 和传统的 p2p bt(pt) 有什么本质上的不同吗?运营商也是可以清楚可见的吧? 是否更私密? - V2EX Fleek 也推出了一个公共 Gateway - V2EX 上传到 V2EX 图库的图片,同时也会获得一个 CIDv0 - V2EX 高可靠度、低成本的 ipfs、oss(b2、s3)混合图床 - V2EX plebbit - V2EX 一个新的 ENS/IPFS 网关 eth.sucks - V2EX 如何根据 ipfs 的 cid 校验本地文件? - V2EX 如何为 IPFS 提供存储空间? - V2EX 做了一个 ipfs 图床 - V2EX 有哪些可用的 ipfs 应用? - V2EX 有没有人试过用 OrbitDB 做个 BBS? - V2EX 去中心化存储的完整性问题是否可以通过定期合约解决 即卖家抵押一部分财产 约定在 X 日内存储某些数据 到买家下载完成两次(校验+真正下载)后自动失效删除 这样既解决节点下线问题 也提升了可用性 - V2EX 蹭热度, IPFS 日用优化指南 - V2EX 最近 ipfs 的 cloudflare 挂了 - V2EX 打开 ipfs 后间歇地网络不可用 - V2EX 发现一个国内家宽搭博客的解决方案 - V2EX IPFS 技术有人了解吗? - V2EX go-ipfs 的 experimental features 里有很多有意思的宝藏 - V2EX 分享几首自己很喜欢的吉他曲 - V2EX Brave 浏览器可以直接打开 ipfs 协议 - V2EX 有谁在挖 Filecoin 吗? - V2EX 我用 IPFS 传了个 2.56G 的视频,不知道你们能不能播 - V2EX 大陆家庭带宽搭建的 IPFS,上传文件无法同步其它节点吧? - V2EX IPFS 官方中文 Wikipedia 使用指南 - V2EX IPFS 版的中文维基百科上线了! - V2EX 一个在浏览器里运行 IPFS 节点的 Demo - V2EX 一个基于分布式数据库 OrbitDB 的 Todo Demo - V2EX Brave 浏览器增加对 IPFS 的原生支持 - V2EX Brave 原生支持了 IPFS - V2EX 最近在琢磨 IPFS(星际文件系统)。但仍然有些概念和逻辑问题求解 - V2EX 将你的文章发布到 IPFS 网络并永久储存! - V2EX ipfs 是做什么的 ipfs 是挖矿的吗 - V2EX [寻人启事] 购买过星系节点矿机的请进 - V2EX 又一个 flarum 做的社区 IPFS 中文社区 - V2EX IPFS:下一代互联网?下一代共享 CDN? - V2EX IPFS 网络内的文件如何搜索?除了 hash 还能显示文件名吗? - V2EX ipfs 上有没有类似 webarchive 的存档应用? - V2EX 将博客部署到星际文件系统(IPFS) 为什么我上传到 IPFS 的文件打不开? - V2EX IPFS 去中心化论坛(传阅板) - V2EX 超级明星项目—IPFS 的正确打开方式 - V2EX IPFS 挖矿收益如何? - V2EX 折腾 Centos6 IPFS 搭建 - V2EX
搭建一个国内高可用的 IPFS 网关节点,打造去中心化无限存储节点(理论) - V2EX
kiduu · 2022-10-07 · via IPFS

前言

首先介绍一下 IPFS (InterPlanetary File System)中文称为星际文件系统,是一个旨在实现文件的分布式存储、共享和持久化的网络传输协议。

IPFS 是 WEB 3.0 时代的基石之一,作为一个有着悠久历史的开源分布式存储系统,有着最为广泛的 web 3.0 的应用。我们可以通过 IPFS 的客户端或者 IPFS 网关来访问存在于该系统上的文件。也可以通过主动的分享自己的文件将文件分发至全世界。当你使用 IPFS 时你可以通过客户端利用 P2P 网络进行文件传输,如果有人不知道 IPFS 或者没有条件的情况下也可以采用传统的 HTTP 服务通过其他人公开提供的网关来获取你想要的内容。而这种模式就是我们今天要说的 IPFS gateway (网关)。

目前 IPFS 的网关大多数都是国外节点,国内用户使用极其困难。你可以通过公关网关查询网页查看当前可用的公开网关。

IPFS 公开网关查询: https://ipfs.github.io/public-gateway-checker/

你可以在其中挑选一个适合自己的网关进行使用。不过就我个人而言大部分网关的国内连接质量都令人捉急。所以今天我给大家带来如何在境内搭建一个自己的网关。

IPFS 官网:ipfs.tech|ipfs.io

简介

先简单说一下 IPFS 网关的工作原理,IPFS 本身是一个 P2P 的文件传输系统,网关则是其提供的通俗易用的一个功能,可以让人通过 http 访问 IPFS 系统上的内容。当我们使用网关访问一个 IPFS 上的数据时,服务器后台之中的 IPFS 节点服务首先会在本地搜索是否有该数据,如果没有就去给连接的其他 IPFS 节点发送该数据的 CID 数据,其他节点有的话就会先拉取到本地节点然后再通过网关来提供给用户。你可以将 IPFS 网关看成是 BT 客户端的提供的 Web 服务器。

简单了解 IPFS 网关的功能之后我们来自建一个试试看

IPFS 节点部署

你可以部署多个节点,每个节点数据可以不同也可以相同,看你需要什么效果。我这里用腾讯云的境内轻量服务器做演示。如果是面对境外服务其实可以直接用上面提到的公开的网关。境内因为带宽价格昂贵所以几乎不存在公开的网关。

服务器配置

由于 IPFS 存储时会把数据切分成 1MB 或者更小的数据块,每个数据块都会分配一个 CID (content identifier)。读写这些数据的时候还需要对数据进行处理所以服务器 CPU 不能太弱鸡,最起码也得是 2C 起步,内存不得低于 2GB 。我这里作为演示的机器为 2C4G 。至于硬盘大小的话就得看你自己需要存储的数据了。一般服务的话可以大致估算一下一个月内的常用数据有多少,比方说我是存图片,每个月大概 10GB 的新图还有 5 个 GB 的热门访问图片,那么我硬盘大小只要超过( 10+5 )/0.7=21.4GB 就差不多够用了。其他数据你可以继续放硬盘也可以定期存储到 filecoin 链上,只需要一点 FIL 作为交易的 gas 费即可(目前有很多免费提供存储提供商)。至于本地存储的数据如果超过我们给的限定就会删除掉部分冷门数据以腾出空间。

我准备的是 2C4G6M 的腾讯云轻量。

镜像选择的是宝塔。

购买完成之后我们需要开放一些 IPFS 需要用到的端口 8080 端口(默认网关端口) 4001 (节点通信端口) 5001 ( API 节点)

进入服务器控制台选择防火墙-添加规则

UDP 这几个端口可开可不开。如果经常连接其他节点和其他节点互通数据建议 UDP 协议也打开。

如果有大量数据存储需求可以买额外的云硬盘然后通过控制台挂载到服务器上后面 IPFS 初始化的时候要注意一下先设置环境变量。不然 IPFS 初始化之后会默认配置在系统盘。读写数据全放系统盘很容易占满。

IPFS 初始化

官方教程地址: https://docs.ipfs.tech/install/command-line/#official-distributions

1 、下载安装服务

1.1 、下载压缩包(选择合适的下载源)

wget https://dist.ipfs.tech/kubo/v0.15.0/kubo_v0.15.0_linux-amd64.tar.gz (官网)
wget https://github.com/ipfs/kubo/releases/download/v0.15.0/kubo_v0.15.0_linux-amd64.tar.gz ( GitHub )
wget https://ghproxy.com/https://github.com/ipfs/kubo/releases/download/v0.15.0/kubo_v0.15.0_linux-amd64.tar.gz ( GitHub 下载加速服务适合国内)

1.2 、解压

tar -xvzf kubo_v0.15.0_linux-amd64.tar.gz

1.3 、进入kubo文件夹并如下安装脚本

cd kubo
bash install.sh

1.4 、测试 IPFS 是否正确安装

ipfs --version

这样就是安装完成了。

2 、初始化配置

2.1 、设置环境变量并初始化

如果你直接初始化的话 IPFS 会直接在当前用户文件夹下生成一个./ipfs隐藏文件夹。

如果你想初始化在其他指定硬盘 /文件夹就需要先设置环境变量再初始化

假设我们要设置的目录为/root/ipfs

先创建文件夹

mkdir /root/ipfs

设置环境变量并初始化

export IPFS_PATH=/root/ipfs
ipfs init

这样就是初始化配置成功了。

3 、快速开始

3.1 、查看说明

ipfs cat /ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/readme

3.2 基础功能

3.2.1 添加文件 /文件夹

ipfs add filename (添加文件至 ipfs 节点)
ipfs add -r dir (添加文件夹至 ipfs 节点)

我一共添加了三个文件分别是 1.png 1.mp4 1.txt 图片、视频、文档都有,返回的 Qm 开头的就是文件的 CID ,我们后面用网关访问就需要用到 CID 了。

如图所示添加相同文件 CID 的不变,文件夹内每个文件都有单独的 CID ,文件夹本身也有个 CID 并保持了原有的结构。

root@VM-8-14-debian:~/testdata# ipfs add -r data
added QmZ8dHcccdqNBNgEHKnSMCVjAAhLc293tmhDZZcptfF5eD data/1.mp4
added Qmf7MKAKynNNt12EZyBNFWhvDn39y2P8pZ9tAaEtDRVZ1f data/1.png
added QmYWAifyw2V5dEq7c5GgdSPffeKoYXQZggnYzw5RbXpig4 data/1.txt
added Qme6r14w9pyGrjMU9UUzkNAuSmCY3d1svZtvNRfyyhNHFL data

3.2.2 读取数据

命令行下只能读取文本数据,我们以上面的 1.txt 为例

ipfs cat QmYWAifyw2V5dEq7c5GgdSPffeKoYXQZggnYzw5RbXpig4

3.2.3 长期保存某数据

根据 IPFS 的设置如果超过设置容量的阈值就会自动删除部分冷门数据,所以如果想长期保存某些数据还需要进行额外操作。

ipfs pin add CID ( pin 文件至本地存储)
ipfs pin ls [CID] (列出所有文件 /有 CID 参数时列出该文件状态)

3.2.4 、删除数据

ipfs pin rm CID

这个没啥好说的。

更多其他的命令可以自行探索

IPFS 网关部署

启动 IPFS

建议先安装 screen ,在 screen session 里执行,这个命令不能直接后台运行,这也算是比较蛋疼的一点。

# 安装 screen
apt install screen -y (ubuntu/debian)
yum install screen -y (centos)
# 用 screen 新建一个 session
screen -R ipfs
# 开启 ipfs
ipfs daemon

然后 Ctrl +A ,Ctrl +D 挂起 screen 即可

这样就是成功启动了。但是目前还不能直接通过 IP 访问,我们可以进行反代或者直接修改配置文件,由于服务器安全性问题,这里我建议直接反向代理,不要修改配置。

公网访问网关

1 、反向代理

反向代理也没啥好说的,解析域名到服务器 IP ,然后先申请 SSL 证书然后再开启反向代理,把网关地址 127.0.0.1:8080 反向代理即可。

然后直接访问域名 /ipfs/CID 即可

如我想访问上面添加的 data 文件夹,它的 CID 为:Qme6r14w9pyGrjMU9UUzkNAuSmCY3d1svZtvNRfyyhNHFL 。假设我的域名是 ipfs.2demo.top 则访问 https://ipfs.2demo.top/ipfs/Qme6r14w9pyGrjMU9UUzkNAuSmCY3d1svZtvNRfyyhNHFL

这样你就成功搭建了一个境内可用的 IPFS 网关了。

2 、修改配置

如果你只开放网关的话只要修改配置里的 Address.Gateway ,如果你要用图形界面( webui )还需要修改 Address.API 和 API.HTTPHeaders

一个修改为 0.0.0.0 ,一个修改为服务器内网 IP (没有内网 IP 就用公网 IP )就行

要用 webui 可以先进入 IP:5001/webui 会自动弹出来一个修改配置的命令,复制粘贴然后重启 ipfs 即可

复制 2 之中的命令到服务器运行一下然后重启 ipfs 之后就会显示已连接 IPFS 了

你可以查看 ipfs 节点状态,文件,节点连接情况等。不过还是不建议公开 webui ,没有鉴权很容易导致别人乱存东西。

安装到服务

创建文件 /etc/systemd/system/ipfs.service 写入

[Unit]
Description=IPFS Daemon
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/bin/ipfs daemon --enable-namesys-pubsub
User=milton
[Install]
WantedBy=multi-user.target

然后通过 systemctl 添加

systemctl daemon-reload
systemctl enable ipfs
systemctl start ipfs
systemctl status ipfs

修改存储空间限制

可以通过修改 Datastore.StorageMax 来限制 ipfs 占用的硬盘空间大小,默认是 10GB

无限存储

无限存储有点夸张了,但是有这个思路就行,我自己的话已经存了 2 个 TB 的数据到 filecoin 的存储提供商了,对于新手可以去 GitHub:lotus,研究一下怎么用这个,只想存数据可以直接看这个:store-data,每个月能领 30GB 的 datacap ,特别大的数据存储直接去申请就行,一般审核都不会太严。这里不对这方面多做叙述,只能把思路告诉大家。不然怕蝗虫过境。

结语

ipfs 作为一个分布式存储可以说是自一开始就很有话题性,我们可以轻松的通过一个节点连接到全球,获取全球的数据,或者分发数据。需要注意的是如果你的数据被其他节点保存之后,你再删除自己节点内的数据也是无效的,其他人仍然能够通过其他节点访问该数据。反之,如果一份数据所存在的节点全都下线了或者删除了该数据那么也无法访问到该数据了。

尽管国内很多宣传 ipfs 服务的都说存上去就是去中心化了就永久保存了。这都是屁话,重要数据建议多备份,私密数据可以先加密再上传。我之所以用 IPFS 是因为我可以白嫖 filecoin 那些存储,只要我定期存一次数据就能直接不受限于我的服务器硬盘了。相对而言如果访问量高的话会导致带宽占用过多,从其他节点获取数据会让 CPU 保持一个较高的负载。但是我用的轻量服务器,提供的服务也偏向于冷存储,上传带宽远小于下载带宽,本身也不是为了高并发去的,所以无所谓。要想体验好还是建议选个大点的硬盘,能够尽量存储更多的热门数据,部分低访问的数据存在其他节点即可。