关于 xinetd 做 mongodb 端口映射遇到的问题

2017-06-29 10:51:48 +08:00
 chenqh

现在的情况是这样的
我在腾讯云上买了一个 mongodb 数据库 M 和一个云服务器 E,两个组成一个私有网络 ,
在云服务器 E 上使用 mongo 客户端连接,是能够连上 mongodb 数据库的。
现在有个问题,我想在本地访问 mongodb 数据库,也就是外网访问云私有网络中的 mongodb 数据库。
所以我的做法是

  1. 在云服务器 E 的安全组添加 一个 TCP:9001 端口允许的规则。
  2. 在去服务器 E 上安装 xinetd,配置如下
service mongo-portmap {
    id = 100
    disable = no
    type = UNLISTED
    socket_type = stream
    protocol = tcp
    wait = no
    redirect =10.0.0.17  27017
    bind = 0.0.0.0
    port = 9001
    user = cqh
    group = cqh
    flags = NODELAY KEEPALIVE NOLIBWRAP IPv4
    log_type = FILE /data/log/xinetd/mongo-portmap.log
    cps = 100 30
}

  1. 在本地使用 mongo shell 进行连接,命令如下 :
    mongo 云服务器 IP:9001/admin -u 用户名 -p 密码 -verbose
    但是却显示有错误,错误结果如下
MongoDB shell version: 2.4.9
Thu Jun 29 10:26:57.684 versionArrayTest passed
connecting to: 服务器 IP:9001/admin
Thu Jun 29 10:26:57.707 creating new connection to:服务器 IP:9001
Thu Jun 29 10:26:57.707 BackgroundJob starting: ConnectBG
Thu Jun 29 10:26:57.741 connected connection!
Thu Jun 29 10:26:57.890 User Assertion: 18:{ ok: 0.0, errmsg: "auth failed", code: 18 }
Thu Jun 29 10:26:57.891 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:228
Thu Jun 29 10:26:57.891 User Assertion: 12514:login failed
Thu Jun 29 10:26:57.891 freeing 1 uncollected N5mongo20DBClientWithCommandsE objects
exception: login failed

当然我能确保,用户名和密码是对的,我是直接复制过来的
,现在的问题是我怎么知道哪里错了呢,我连 xinetd 的日志都没有看到,我是 ubuntu16.04 apt-get install 安装 的 xinetd

3400 次点击
所在节点    MongoDB
5 条回复
tempdban
2017-06-29 11:02:07 +08:00
跑个题,iptables
chenqh
2017-06-29 12:03:59 +08:00
@tempdban 好的 我试下
tempdban
2017-06-29 12:09:31 +08:00
iptables 搞端口映射 要两条规则 SNAT DNAT
chenqh
2017-06-29 12:19:54 +08:00
@tempdban 好的我先看看春 iptables 先
chenqh
2017-06-29 20:43:24 +08:00
@tempdban 大神能给个例子吗,弄了一整天了,还是不行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/371859

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX