403禁止从bitcoind -server在docker上运行

我正在使用新的Docker-for-Mac来运行守护进程,如下所示:

$docker run -d --name bitcoind -e BITCOIN_DATA=/data \ -v ${PWD}/bitcoind:/data -p 8332:8332 seegno/bitcoind:latest \ -server -rpcuser=test -rpcpassword=nopass -rpcallowip=192.168.1.67 \ -printtoconsole -debug=rpc 

我允许的IP地址是我的默认值:

 $ ifconfig |grep inet |grep -v inet6 inet 127.0.0.1 nitmask 0xff000000 inet 192.168.1.67 netmask 0xffffff00 broadcast 192.168.1.255 

然后我运行我的应用程序:

 var BTC = require('bitcoin-core'); var opts = { host: 'localhost', port: 8332, username: 'test', password: 'nopass' }; btc = new BTC(opts); btc.getNewAddress().then(function(s) { console.log(s); }); 

并得到:

未处理的拒绝RpcError:403在Client.rpc处(/Users/ekkis/D​​evelopment/Test/www/node_modules/bitcoin-core/dist/src/parser.js:34:11)禁止(/ Users / ekkis / Development / Test / www / node_modules / bitcoin-core / dist / src / parser.js:81:14)在Request.self.callback(/Users/ekkis/D​​evelopment/Test/www/node_modules/request/request.js:200: 22)在Request.emit(events.js:172:7)在emitTwo(events.js:87:13)。 (/Users/ekkis/D​​evelopment/Test/www/node_modules/request/request.js:1067:10)在发送消息(events.js:82:20)上的Request.emit(events.js:169:7) 。 (/Users/ekkis/D​​evelopment/Test/www/node_modules/request/request.js:988:12)从上一个事件:at / Users / ekkis / Development / Test / www / node_modules / bitcoin-core / dist / src / index.js:163:21从上一个事件:在Client.command(/Users/ekkis/D​​evelopment/Test/www/node_modules/bitcoin-core/dist/src/index.js:152:34)at apply(/ Users /eclipse/development/Test/www/node_modules/lodash/lodash.js:409:27) :16)在对象。 (module.js:432:10)在Module._compile(module.js:425:26)上的(/ Users / ekkis / Development / Test / www / t:12:5)启动时在Function.Module.runMain(module.js:457:10)处的Function.Module._load(module.js:311:12)处的Module.load(module.js:356:32)(node.js:136 :18)在node.js:972:3

虽然我似乎能够连接到服务器:

 $ telnet localhost 8332 Trying ::1... Connected to localhost. Escape character is '^]'. 

它不会挂断我的连接错误…我错过了什么?

*编辑我*

好吧…如果我用-logips运行守护进程,并使我的尝试,我看到:

2016-07-09 18:32:26收到172.17.0.1:50262的POST请求

而不是我所期望的IP地址。 我收集它是Docker运行的VM的IP地址,以某种方式被路由到容器。 所以现在的问题是:如何从我的节点应用程序中发现IP地址,以便将其列入白名单?

和…(drumroll)的答案似乎是,我可以从docker inspect NetworkSettings.Gateway钥匙。 但是…实际上,我可以将它烤到CLI中,因为对于这个映像,网关总是一样的

Interesting Posts