gpt4 book ai didi

node.js - 如何通过 mongoose 和 ssh 隧道连接

转载 作者:可可西里 更新时间:2023-11-01 09:58:54 33 4
gpt4 key购买 nike

我已按如下方式设置我的 mongod.conf,因此它只允许本地主机连接。

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,因此必须将端口转换为本地主机。

但是我怎样才能将它与 mongoose 的连接功能集成呢?

mongoose.connect(configDB.url, function(err){
if (err){
console.log('Error connecting to mongodb: ' + err)
}
});

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

ssh -L 4321:localhost:27017 -i ~/.ssh/ssh_key user@ip-adress

这应该通过端口 4321 将我 SSH 到本地主机,对吗?所以我想我在 nodejs mongoose 的连接函数中需要这样的东西。我试图在 mongodb 安全教程上阅读此内容,但我根本无法将他们的说明链接到 nodejs。谁有这方面的经验?

最佳答案

你快到了。设置独立于 Node 的隧道:

ssh -Nf -p [db_server_ssh_port] [mongo_user]@[mongo_domain] -L \
[local_db_port]:localhost:[remote_db_port]

然后在 Node 内,使用 [local_db_port] 连接到 mongo:

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

关于node.js - 如何通过 mongoose 和 ssh 隧道连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36031435/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com