首页 文章

`ipfs swarm connect:`connect failure:拨号尝试失败:超出了上下文截止时间

提问于
浏览
7

我正在使用IPFS version 0.4.4.

我的目标是连接两个对等体,以防止IPFS对等体在从共享对等体读取IPFS哈希时停止 . 为了实现它,我使用 ipfs swarm connect 将peer-A连接到peer-B,其中peer-B可以访问peer-A上的ipfs-file .

我的问题与:

ipfs swarm connect /ip4/x.x.x.x/tcp/4003/ipfs/QmXXXXXXXXXXXXXXXXXXX

当我尝试将笔记本电脑连接到另一个IPFS-peer时,我面临以下错误:

connect failure: dial attempt failed: context deadline exceeded.

但是当我尝试在所有端口都打开的亚马逊AWS上运行时,因此群集连接成功结束 .

[Q] 为了使 ipfs swarm connect 工作,应该打开API和网关端口吗?或者我应该做别的事情?

例如:端口5001和8080无论如何都是开放的?

.ipfs/config 档案:

"API": "/ip4/127.0.0.1/tcp/5001",
"Gateway": "/ip4/127.0.0.1/tcp/8080",

1 回答

  • 1

    我相信你不必打开 APIGateway 端口就可以连接到你的同伴 . 相反,只需尝试从外部检查您的连接:

    telnet x.x.x.x yyyy 
    
    #Trying x.x.x.x...
    #Connected to x.x.x.x.
    #Escape character is '^]'.
    #/multistream/1.0.0
    

    你可以在IPFS配置的 Addresses 部分看到端口,在我的例子中它是 4001

    "Addresses": {
        "Swarm": [
          "/ip4/0.0.0.0/tcp/4001",
          "/ip6/::/tcp/4001"
        ],
    

    但由于主机位于NAT之后,IPFS守护程序无法检测到可以访问它的实际IP,所以我不得不把它放到 Announce 部分,就像

    "Announce": ["/ip4/z.z.z.z/tcp/4001"],
    

    找到合适的IP和端口后,我能够连接:

    ipfs swarm connect /ip4/z.z.z.z/tcp/4001/ipfs/QmXXX_my_peer_id_XXX
    #connect QmXXX_my_peer_id_XXX success
    

相关问题