【问题标题】:unable to access meteor mongodb running on vm from the host using the ip address无法使用 ip 地址从主机访问在 vm 上运行的流星 mongodb
【发布时间】:2013-12-16 18:23:33
【问题描述】:

我在带有 Windows 主机的 ubuntu vm 上运行了流星应用程序。从windows机器我试图用pymongo python客户端连接到meteor db,但连接失败,因为目标机器主动拒绝它。

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

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

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

http://192.168.1.118:3000

这工作得很好。流星 mongo db 是否有任何东西拒绝本地主机以外的所有连接。

【问题讨论】:

    标签: mongodb meteor


    【解决方案1】:

    在meteor中,mongo数据库本地绑定到IP地址127.0.0.1,所以192.168.1.118将不起作用。至少这是我观察到的行为。

    您必须通过 SSH (socks) 代理连接或使数据库可以在任何地方访问。腻子可能能够做到这一点,但我有点不确定如何在 Windows 上做到这一点。在 *nix 上,-D 参数在连接到它以创建代理时使用。

    如果您为端口 3002 创建一个 iptables 规则并禁用 selinux,有时它可以工作,但我不确定这是否会有所帮助。

    没有什么办法可以绕过它,因为它是硬编码到流星中的。见https://github.com/meteor/meteor/blob/8de5ebfc6fda4865a13b6dbc3367a761ed98baed/tools/mongo_runner.js#L204

    您必须分叉流星并将该行更改为绑定到 0.0.0.0(所有 ip),以便从外部访问它

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

    【讨论】:

    • Akshat,我没有看到任何解决我的问题的方法,所以最终决定使用 MONGO_URL 连接到我的 Windows 机器上运行的 mongodb 服务器。现在我可以连接到 mongodb 并更新了。
    猜你喜欢
    • 1970-01-01
    • 2017-12-30
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 2021-08-03
    • 1970-01-01
    • 2017-09-23
    相关资源
    最近更新 更多