无法使用IP地址访问从主机vm上运行的meteor mongodb

时间:2013-12-16 18:23:33

标签: mongodb meteor

我在带有Windows主机的ubuntu vm上运行meteor app。从Windows机器我试图连接到pymongo python客户端的meteor数据库,但连接失败,因为目标机器主动拒绝它。

我使用ubuntu机器的ip地址来访问数据库

pymongo.Connection(host='192.168.1.118',port=3002)

但是我可以使用ubuntu ip地址从windows机器访问流星应用程序,如

http://192.168.1.118:3000

这完全没问题。 meteor mongo db是否有任何东西拒绝除本地主机之外的所有连接。

1 个答案:

答案 0 :(得分:1)

在meteor中,mongo数据库本地绑定到ip地址127.0.0.1,因此192.168.1.118将无效。至少这是我观察到的行为。

您必须通过SSH(socks)代理连接,或者允许数据库在任何地方访问。 Putty也许可以做到这一点,但我有点不确定如何在Windows上做到这一点。在* nix上,-D param在连接到它时用于创建代理。

如果为端口3002创建iptables规则并禁用selinux,有时它可以工作但我不确定这会有用。

由于它被硬编码到流星中,因此没有太多方法。见https://github.com/meteor/meteor/blob/8de5ebfc6fda4865a13b6dbc3367a761ed98baed/tools/mongo_runner.js#L204

你必须分叉流星并改变该行以绑定到0.0.0.0(所有ips)以允许从外部访问

另一种选择是使用您自己的配置运行您自己的mongodb,允许所有IP连接到它并在您将项目运行到该mongo实例时将MONGO_URL设置为环境变量,而不是让meteor产生它自己的。

相关问题