IPFS 的性能及优化

如果你之前曾经尝试过去用 IPFS 发布一些东西给别人访问,那么你很可能已经体会过这个技术的慢。比如 ipfs.io 上的各种超时。

因为这个技术的底层是 DHT,也就是类似 BitTorrent 和电驴下载的那种 P2P 技术。如果你曾经用过 BitTorrent 的 DHT 下载,你肯定也经历过刚开始下载的时候,漫长的找节点的过程。及就算是找到了节点之后,各种连不上或者没速度。作为使用同样基础技术的 IPFS,这些问题也同样存在于 IPFS。

所以,如果使用场景场景是发布一些东西,然后让用户去浏览器中通过 ipfs.io 这样的 Public Gateway 去加载,那么很有可能就卡在那里直接卡超时了。Web 2.0 时代的 HTTP 已经被优化到了极致,但是 Public Gateway 的架构决定了那些优化到了 P2P 网络上并不完全适用。

但是,当你在用本地电脑作为 IPFS 节点时,依然是可以有一些技术手段对发布性能进行优化的。

端口转发

你可以把你的公网 IP 的 4001 端口转发到你运行 Planet 的本地电脑上。

IPv6 的入流量

如果你的运营商提供 IPv6 并且你知道怎么设置 IPv6 防火墙,那么你可以在防火墙上打开外部对 4001 端口的访问。

UPnP

如果你的路由器支持 UPnP,那么打开 UPnP 支持可以允许 IPFS 节点更好地进行 P2P 通讯。


4001 端口是 IPFS 的 peer 流量端口,上面的所有操作是只读的。在公网上打开这个端口不会造成安全问题。但是部分入侵检测系统可能会抱怨,比如 UniFi Network 的 IDS 系统就会报告这个端口上有异常。