首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过mongoose和ssh通道连接

问如何通过mongoose和ssh通道连接
EN

Stack Overflow用户
提问于 2016-03-16 17:26:10
回答 2查看 3.7K关注 0票数 2

我已经设置了我的mongod.conf,如下所示,所以它只允许本地主机连接。

代码语言:javascript
复制
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

net:
  port: 27017
  bindIp: 127.0.0.1

然后,我希望我的站点ssh到mongodb中,这样端口就必须转换为localhost。

但是,我如何将其与mongoose的连接函数集成?

代码语言:javascript
复制
mongoose.connect(configDB.url, function(err){
  if (err){
    console.log('Error connecting to mongodb: ' + err)
  }
});

我找到了以下命令,但我不确定这是否是我需要的:

代码语言:javascript
复制
ssh -L 4321:localhost:27017 -i ~/.ssh/ssh_key user@ip-adress

这应该会通过端口4321将我ssh到localhost,对吗?所以我想在nodejs mongoose的connect函数中需要类似这样的东西。我试着阅读了mongodb安全教程,但我根本无法将它们的说明与nodejs联系起来。谁有这方面的经验?

EN

回答 2

Stack Overflow用户

发布于 2016-03-25 22:23:25

你就快到了。设置独立于节点的通道:

代码语言:javascript
复制
ssh -Nf -p [db_server_ssh_port] [mongo_user]@[mongo_domain] -L \
[local_db_port]:localhost:[remote_db_port]

然后在节点内,使用local_db_port连接到mongo

代码语言:javascript
复制
mongoose.connect(
  "mongodb://localhost:[local_db_port]/[db_name]",
  {"pass":"[db_pwd]"}
)

发送到web服务器上的local_db_port的所有流量都将通过隧道发送到mongo_domain上的端口remote_db_port。下面的帖子提供了更多信息。它连接到一个MySQL数据库,但原理是相同的。

Connect to MySQL using SSH Tunneling in node-mysql

票数 6
EN

Stack Overflow用户

发布于 2017-01-05 14:52:40

设置独立于节点的通道:

代码语言:javascript
复制
ssh -L [your given port]:localhost:27017 [username of ssh]@[ip address of ssh matchine] -f -N

在此之后,您已经为mongo数据库包含了给定的端口。在nodejs中,您必须像这样设置mongoose连接

代码语言:javascript
复制
'mongodb://localhost:[your given port number]/[database name]'

尽情享受吧

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36031435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档