You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

js-ipfs是否提供只读网关服务?为何默认网关无法访问?

问题原因与解决方法

核心原因

ipfs daemon启动时默认会加载并启动所有IPFS核心附加服务(包括HTTP只读网关),但Node.js环境下调用ipfs.create()时,HTTP网关服务默认是禁用状态——哪怕配置里写了网关端口,不手动开启的话,服务根本不会启动,自然会出现连接拒绝、端口未被占用的情况。

解决步骤

需要在ipfs.create()的配置项中显式开启网关服务,并指定端口:

const IPFS = require('ipfs')

async function startIPFS() {
  const node = await IPFS.create({
    config: {
      Addresses: {
        // 指定网关监听地址和端口
        Gateway: '/ip4/127.0.0.1/tcp/9090'
      },
      Gateway: {
        Enabled: true, // 关键:开启网关服务
        Writable: false, // 设置为只读模式,和ipfs daemon默认行为一致
        HTTPHeaders: {
          // 可选:配置允许跨域等请求头
          'Access-Control-Allow-Origin': ['*']
        }
      }
    }
  })
  console.log('IPFS节点启动完成,网关已开启')
}

startIPFS()

验证方式

启动Node.js应用后,控制台会输出类似Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/9090的日志,此时再访问127.0.0.1:9090/ipfs/[你的CID]就能正常读取IPFS文件了。


内容的提问来源于stack exchange,提问作者Timotei Oros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 13:01:19