更改端口后无法远程连接-Mongodb

问题描述 投票:1回答:1

我在GCP上运行了Ubuntu 18.04 VM,并且在更改Mongodb的默认端口后连接远程时出现问题

在Mongodb上安装后,我按照几个步骤在文件/etc/mongodb.conf中的默认端口上启用了远程访问,将bindIP更改为0.0.0.0,并在GCP防火墙上打开了默认端口,我能够连接到Mongodb。

但是我想将默认的Mongodb端口开关从27017更改为例如:38018我将/etc/mongodb.conf中的端口从27017更改为38018,我重新启动了mongo服务并在GCP防火墙上打开了新端口。

更改端口后,我可以使用以下命令从终端进行连接

mongo --port 38018 -u "user" -p "pass" --authenticationDatabase "admin"

但是当我尝试使用mongo罗盘在新端口上从外部进行连接时,连接被拒绝,我在这里缺少什么?

还检查过mongo是否在新端口上运行

sudo netstat -tulpn | grep 38018

我收到以下消息

tcp        0      0 0.0.0.0:38018           0.0.0.0:*               LISTEN      6644/mongod
  1. Ubuntu 18.04.4 LTS
  2. mongod --version数据库版本v4.2.7
  3. UFW无效

这是我的mongo配置文件

    # for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 38018
  bindIp: 0.0.0.0


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

security:
    authorization: enabled

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

我以@YasBES的名义执行以下命令

mongod -f your_config_file.conf

并且重新启动了mongo进程,该进程无法启动

检查日志后,我发现此错误无法在任何兼容版本下启动WiredTiger。

并且我找到了以下命令来纠正错误

sudo chown -R mongodb:mongodb /var/lib/mongodb/

接下来我删除了27017 .sock文件

sudo rm /tmp/mongodb-27017.sock

并为新创建的文件提供适当的所有权

sudo chown mongodb:mongodb mongodb-38018.sock

执行这些命令后,该过程成功启动当我查看mongod.log时,收到了这些消息

2020-05-28T17:13:06.807+0000 I  SHARDING [initandlisten] Marking collection local.startup_log as collection version: <unsharded>
2020-05-28T17:13:06.807+0000 I  FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongodb/diagnostic.data'
2020-05-28T17:13:06.811+0000 I  SHARDING [LogicalSessionCacheRefresh] Marking collection config.system.sessions as collection version: <unsharded>
2020-05-28T17:13:06.812+0000 I  SHARDING [LogicalSessionCacheReap] Marking collection config.transactions as collection version: <unsharded>
2020-05-28T17:13:06.812+0000 I  NETWORK  [listener] Listening on /tmp/mongodb-38018.sock
2020-05-28T17:13:06.812+0000 I  NETWORK  [listener] Listening on 0.0.0.0
2020-05-28T17:13:06.812+0000 I  NETWORK  [listener] waiting for connections on port 38018
2020-05-28T17:13:07.003+0000 I  SHARDING [ftdc] Marking collection local.oplog.rs as collection version: <unsharded>

现在进程开始,它说它正在监听38018,但仍然无法远程连接

2020-05-28T17:13:06.812+0000 I  NETWORK  [listener] Listening on 0.0.0.0
2020-05-28T17:13:06.812+0000 I  NETWORK  [listener] waiting for connections on port 38018
mongodb google-cloud-platform terminal ubuntu-18.04 remote-access
1个回答
0
投票
经过一段时间的研究,我决定决定在Azure云上使用相同的Mongo版本和GCP上的配置来测试相同的设置。

将默认的mongo端口从27017更改为38018之后,我使用新的38018端口在Azure上打开了防火墙,并建立了远程连接。

这是我发现GCP上的端口转发出问题的那一刻。

我正在使用GCP,并且为其他机器和其他服务做了很多转发,但这很奇怪。

我尝试了几种具有不同优先级IP范围的不同类型的转发,等等

有效的方法是登录,优先级为100,IP范围为0.0.0.0/0,协议和端口为38018 tcp / udp。

© www.soinside.com 2019 - 2024. All rights reserved.