如何使用 IPFS-JS 获取 public IP 地址

How to get a public IP address with IPFS-JS

当我 运行 使用 IPFS JS 时:

const ipfsNode = await IPFS.create();
const addresses = await ipfsNode.swarm.localAddrs();
console.log(addresses);

我明白了:

Swarm listening on /ip4/127.0.0.1/tcp/4002/p2p/PeeridFooBar
Swarm listening on /ip4/192.168.0.113/tcp/4002/p2p/PeeridFooBar
Swarm listening on /ip4/127.0.0.1/tcp/4003/ws/p2p/PeeridFooBar

但所有这些都是 local/LAN 地址。我如何获得 public ID,以便我可以从另一个节点通过互联网连接到该节点,如下所示:jsipfs swarm connect PUBLIC ADDRESS HERE?

您可以通过 libp2p config 配置您的 public IP。

通过 js-ipfs,您可以查看 example 如何为 libp2p 提供自定义配置。

此处的目标是将您的 public IP 添加到 libp2p 的 announce 地址,以便其他节点知道如何到达您节点的 public 地址。在此之后,您将 nginx 设置为从 public IP 转发到节点的内部私有 IP。