新闻详情

新闻详情

首页 / 资讯中心 / 详情

Kubo 网关如何配置 Gateway.NoFetch 让公网网关只服务本节点已有内容?

发布时间:2026/9/14 16:37:15来源:尧图网络
Kubo 网关如何配置 Gateway.NoFetch 让公网网关只服务本节点已有内容?
Kubo 网关如何配置 Gateway.NoFetch 让公网网关只服务本节点已有内容【免费下载链接】kuboIPFS implementation in Go: a daemon that stores and serves content-addressed data, with a CLI, HTTP Gateway, and RPC API项目地址: https://gitcode.com/GitHub_Trending/ku/kubo你要做的事情是把一台 Kubo 节点的 HTTP 网关暴露到公网但不让访客触发任意内容下载——访客请求的内容如果本节点没有网关直接返回404 Not Found而不是替访客去网络上抓取。Kubo 通过Gateway.NoFetch配置项完成这件事设为true后网关只服务本地仓库repo里已有的内容不从其他节点拉取缺失文件。这是 Gateway 文档中推荐给大多数人的公网网关方案。为什么需要先决定 NoFetch在选 URL 风格subdomain / path / DNSLink之前Kubo 文档把「访客请求了本节点没有的内容时网关是去抓取还是直接回答 not found」列为第一个要决定的问题开放网关Gateway.NoFetchfalse默认值网关会查找并下载访客请求的任意内容。陌生用户可以借你的服务器和带宽拉取你从未见过的内容甚至是不法或滥用内容投诉和 takedown 请求会由你处理。只有确实要提供共享公共服务时才这样跑。Gateway.NoFetchtrue节点只共享它已有的内容从不为访客下载缺失内容本节点没有的内容一律404 Not Found且不触碰网络。这是把自有内容网站、数据集、文件放到公网网关上的最安全方式也是文档推荐给大多数人的配置。config 文档对Gateway.NoFetch的定义是When set to true, the gateway will only serve content already in the local repo and will not fetch files from the network.默认值false类型bool。config 文档的 Security 部分也把「Kubo 作为任何人都可用的公网网关时用Gateway.NoFetch阻止任意 CID 检索」列为安全建议。准备条件确保内容在本节点上NoFetchtrue之后网关能服务的范围等于本节点仓库里的内容。按 gateway.md 的说明网关只服务三类内容你用ipfs add添加过的内容你 pin 住的内容MFSMutable File System中的内容。必须做的一步pin 住你要对外服务的内容。$ ipfs pin add 你内容的CID原因垃圾回收GC会删除未 pin 的内容被删后该内容停止解析网关对其返回404。另外说明一个边界NoFetch不会阻止你的节点帮助其他 peer 发现他们的内容路由转发。如果你希望节点只当客户端、不帮别人路由需要另设Routing.Typeautoclient。同理如果内容已由其他节点公告、或你想让节点把资源花在服务而非公告上可以用Provide.Enabledfalse关闭持续的内容公告——这不影响网关工作因为网关通过 HTTP 服务内容不依赖向网络公告。这两项都是可选分支不是主路径必需。执行步骤配置 NoFetch1. 设置 NoFetch$ ipfs config --json Gateway.NoFetch true该命令把Gateway.NoFetch写入本地节点配置。2. 配置公网访问网关默认只监听本机默认情况下 Kubo 网关绑定在127.0.0.1和localhostpath 网关http://127.0.0.1:8080/、subdomain 网关http://localhost:8080/公网访客访问不到。要让公网用户通过你的域名访问需要在Gateway.PublicGateways中配置你的域名。以 path 网关为例示例域名path-gw.example.com需替换成你自己的域名$ ipfs config --json Gateway.PublicGateways { path-gw.example.com: { UseSubdomains: false, Paths: [/ipfs, /ips, /ipns] } }如果改用 subdomain 网关每个内容根有独立 Origin适合浏览网站把UseSubdomains设为true。URL 到内容的映射规则见 URL-style recipes它们与NoFetch是否设置无关、可以任意组合。注意Addresses.Gateway绑到0.0.0.0或公网 IP 时任何人都能访问该端口config 文档明确建议此时用Gateway.NoFetch限制并配合防火墙规则和Gateway.PublicGateways。验证本地内容 200远程内容 404配置完成后用两类请求核对网关行为请求本节点已有的内容请求http://网关主机/ipfs/你pin住的CID预期返回200并返回内容。请求本节点没有的内容请求一个只存在于其他节点上的 CID预期立即返回404 Not Found网关不会去网络上抓取。仓库自带的 CLI 测试 test/cli/gateway_test.go 正是按这个语义断言的配置Gateway.NoFetch true后请求本节点不存在的 CID 断言404、不存在的 IPNS 名称断言500请求本节点已 add 的 CID 和已发布的 IPNS 记录则断言200。你可以直接参照它的两种「present / not present」用例来核对线上行为。可选分支只服务单个 DNSLink 站点如果目标是让公网网关只服务一个 DNSLink 网站、其他内容一律不碰用 hardened DNSLink 配方禁用抓取和未知主机名上的 DNSLink再为这一个已在本节点上的站点开启 DNSLink且不暴露任何内容寻址Paths$ ipfs config --json Gateway.NoFetch true $ ipfs config --json Gateway.NoDNSLink true $ ipfs config --json Gateway.PublicGateways { dnslink-site.example.com: { NoDNSLink: false, Paths: [] } }部署注意反代必须转发 Host 头如果你的 Kubo 网关跑在 nginx 等反向代理后面公网部署的常见形态Gateway 文档要求原始Host头必须转发给 Kubo否则Gateway.PublicGateways无法匹配配置的主机名请求可能被错误处理。X-Forwarded-Proto未设置时HTTPS 重定向会使用错误协议。文档给出的最小 nginx 示例example.org替换为你的域名server { listen 80; listen [::]:80; # IMPORTANT: Include wildcard to match subdomain gateway requests. # The dot prefix matches both apex domain and all subdomains. server_name .example.org; location / { proxy_pass http://127.0.0.1:8080; # IMPORTANT: Forward the original Host header to Kubo. # Without this, PublicGateways configuration will not work. proxy_set_header Host $host; # IMPORTANT: X-Forwarded-Proto is required for correct behavior: # - Redirects will use https:// URLs when set to https # - DNSLink names will be inlined for subdomain gateways proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; } }文档同时列出了三个常见错误server_name缺通配符导致 subdomain 请求匹配不到proxy_set_header Host $proxy_host发的是后端地址而非原始 Host不写proxy_set_header Host时 nginx 默认用$proxy_host破坏网关路由。限制与后续404 语义NoFetchtrue时凡本节点没有的内容都返回404包括你还没同步进来的内容——这是设计行为不是故障。GC 风险未 pin 的内容可能被垃圾回收删除删除后同样变为404所以对外服务的内容必须 pin。路由不受 NoFetch 约束节点仍可能帮其他 peer 路由发现他们的内容只想当客户端时用Routing.Typeautoclient。如果你以后改主意要跑开放网关NoFetchfalse文档要求先配置 内容封锁denylist 命中的内容返回410 Gone并考虑Gateway.DeserializedResponsesfalse、Gateway.MaxRangeRequestFileSize、Gateway.MaxConcurrentRequests等防护项——这些属于另一个部署目标本文不展开。进一步的Gateway.*配置项超时、并发限制、响应格式等见 config 文档的 Gateway 章节生产环境超时与限流要点见 Running in Production。【免费下载链接】kuboIPFS implementation in Go: a daemon that stores and serves content-addressed data, with a CLI, HTTP Gateway, and RPC API项目地址: https://gitcode.com/GitHub_Trending/ku/kubo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

数据库技术演进:从关系型到AI原生的关键突破 2026/9/14 17:13:20

数据库技术演进:从关系型到AI原生的关键突破

1. 数据库技术演进的三个关键阶段数据库技术在过去半个世纪经历了三次重大范式转移,每次变革都深刻改变了我们存储和处理数据的方式。作为从业15年的数据库架构师,我亲眼见证了这些技术浪潮如何重塑整个行业。1.1 关系型数据库的黄金时代1970年Edgar F. …

阅读更多 →
事件溯源实战:解决微服务数据一致性与业务逻辑难题 2026/9/14 17:13:20

事件溯源实战:解决微服务数据一致性与业务逻辑难题

这本书我从头啃到尾,做微服务架构设计的时候反复翻了很多次。第六章“使用事件溯源开发业务逻辑”乍看像是一门“新潮设计模式”的科普,实际上它戳中的是微服务架构里最让人头疼的问题:业务状态变了,怎么可靠地让下游知道&#xf…

阅读更多 →
JeecgBoot Nacos 快速上手:微服务注册发现与配置中心完整实践 2026/9/14 17:13:20

JeecgBoot Nacos 快速上手:微服务注册发现与配置中心完整实践

JeecgBoot Nacos 快速上手:微服务注册发现与配置中心完整实践 【免费下载链接】jeecg-boot 【低代码v2.0,一句话即可生成整个系统】企业级AI低代码平台,一键生成前后端代码甚至整个系统。 AI Skills 一句话画流程、设计表单、生成报表、大屏。…

阅读更多 →
Flipper Zero 计数插件 dolphin-counter 全解析:源码结构、GUI 渲染与 ufbt 部署指南 2026/9/14 17:13:20

Flipper Zero 计数插件 dolphin-counter 全解析:源码结构、GUI 渲染与 ufbt 部署指南

Flipper Zero 计数插件 dolphin-counter 全解析:源码结构、GUI 渲染与 ufbt 部署指南 【免费下载链接】Flipper Playground (and dump) of stuff I make or modify for the Flipper Zero 项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper 这是一篇…

阅读更多 →
Docs 如何构建不含 GPL 组件的 MIT 合规前端镜像(PUBLISH_AS_MIT) 2026/9/14 17:13:20

Docs 如何构建不含 GPL 组件的 MIT 合规前端镜像(PUBLISH_AS_MIT)

Docs 如何构建不含 GPL 组件的 MIT 合规前端镜像(PUBLISH_AS_MIT) 【免费下载链接】docs Docs is an open-source text editor: web-native, made for real-time collaboration, cleanly structured documents and sub-documents with full ownership of…

阅读更多 →
al-folio 主页(About 页)深度定制指南:从 profile 头像到新闻、精选论文与最新博文 2026/9/14 17:10:19

al-folio 主页(About 页)深度定制指南:从 profile 头像到新闻、精选论文与最新博文

al-folio 主页(About 页)深度定制指南:从 profile 头像到新闻、精选论文与最新博文 【免费下载链接】al-folio A beautiful, simple, clean, and responsive Jekyll theme for academics 项目地址: https://gitcode.com/GitHub_Trending/al…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞