如何解決公網無法訪問阿里雲ECS搭建的MongoDB服務

smallbone發表於2018-08-28

最近為了學習後端購買了一臺阿里雲ECS雲伺服器(專用網路) 環境如下: OS:Ubuntu16.04, MongoDB:v4.0.1

嘗試著安裝了MongoDB並進行了相應的配置,搜尋了一些資料發現關鍵在於三點:

  1. MongoDB的bindIp配置: MongoDB預設的配置檔案中,bindIp選項預設是localhost,也就是說預設只有安裝了MongoDB的主機自己能夠訪問。所以如果需要外網的主機能夠訪問MongoDB服務,首先需要更改bindIp選項,將其設定為指定的IP地址(x.x.x.x, ...)者繫結所有的IP地址(0.0.0.0 )。MongoDB 3.6之後的版本新增了bindIpAll選項,true代表繫結所有IP地址。 配置檔案如下:
# mongod.conf

# 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: 27017
  bindIpAll: true
  
# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:
複製程式碼
  1. Linux防火牆iptables的配置: 在bash中輸入sudo iptables -A INPUT -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT 開放MongoDB的埠。 接著輸入iptables-saveiptables-restore儲存iptables的配置資訊以免主機重啟後需要重新配置。

  2. ECS主機的安全組規則配置:

如何解決公網無法訪問阿里雲ECS搭建的MongoDB服務

經過以上的配置後,就能夠遠端連線阿里雲ECS上搭建的MongoDB服務了。

相關文章