我正试图在我的家庭网络上建立一个IPFS服务器。我有一个CoreOS盒子,我想用它来起床和运行。由于CoreOS专注于Docker容器,这就是我所拥有的设置。
我有它工作,我可以启动运行守护进程的Docker容器:
docker run --name ipfs.service \
-p 8080:8080 -p 4001:4001 -p 5001:5001 \
ipfs/go-ipfs:v0.4.14
我已登录到正在运行的容器(docker exec -it ipfs.service sh
)并将“Addresses.Gateway”选项更新为“/ip4/0.0.0.0/tcp/8080”。
在启动时,日志确实显示:
API server listening on /ip4/0.0.0.0/tcp/5001
Gateway (readonly) server listening on /ip4/0.0.0.0/tcp/8080
Daemon is ready
现在,我希望能够从家庭网络上的另一个工作站浏览IPFS内容。但是,导航到http://192.168.0.100:8080/ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ/cat.jpg
(我的CoreOS本地IP地址为192.168.0.100
),我在Chrome中收到“连接被拒绝”错误。
使用SSH隧道我可以访问IPFS内容(将服务器8080端口转发到我的本地工作站),所以我知道IPFS服务器至少为外部CoreOS层提供服务。
但是如何进一步提升它?我不确定这是CoreOS配置错误还是IPFS守护程序配置错误。如何进一步排除此连接断开的位置?
可能是一个docker事情,因为在IPFS配置方面,一切看起来都很正常。
运行docker容器时,尝试使用docker run ... -p 0.0.0.0:8080:8080
而不仅仅是-p 8080:8080
运行它。我认为docker默认将8080:8080
绑定到127.0.0.1
而不是0.0.0.0
。
这个问题结果证明是IPFS版本的一个问题;更新到最新版本的IPFS导致问题消失。