web-dev-qa-db-ja.com

LinuxでMongoDBにリモート接続をリッスンさせる

MongoDBをWindowsに(ローカルマシンに)サービスとして正常にインストールしましたが、MongoDbを別のサーバーに移動したいと思います。そこで、tarballをネットワーク上の仮想サーバー(Linuxを実行)に抽出しました。

ローカルマシンからPuTTYを使用してサーバー(「testmongoserver」)に接続すると、mongodサーバーを起動し、デフォルトの28017ポートをリッスンしていることがわかりました。 mongoコンソールも機能しており、新しいデータベース(testdb)を作成してユーザーを追加できました。

しかし、リモートからサーバーにアクセスできませんでした。 testmongoserver:28017と入力しても、ローカルマシンのlocalhost:28017のようにHTTPコンソールは開きません。また、公式ドライバーを使用して接続文字列を提供することもできません。

LinuxにMongoDBをインストールするための必要な手順は何ですか。そのため、接続文字列を使用してリモートマシンからMongoDBにアクセスし、testmongoserver:28017経由でHTTPコンソールを使用できます。

ありがとう!

55
user315648
  1. Mongoサーバーでnetstat -aを実行し、ポートを確認します。
  2. DNS設定を確認し、Linuxサーバーが外部接続を許可していることを確認します。
  3. Mongodbが外部/リモート接続を受け入れることができることを確認します。

Mongoのデフォルトポートは27017です。28017-webstatsのポート。

http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Ports を参照してください

19

1.バインドIPオプション

バインドIPは、特定のIPへの接続を制限するMongoDBオプションです。

Mongod構成ファイルを見てください。ほとんどの場合bind_ipは、明らかなセキュリティ上の理由から127.0.0.1に設定されています。あなたはできる:

  1. コンマ区切りの値のリストを連結して、MongoDBを複数のIPアドレスにバインドして、目的のIPを追加します。
  2. #行を(bind_ip文字で)削除またはコメント化します。ただし、すべてのリモート接続がMongoDBサーバーに接続できることに注意してください!

bind_ip構成オプションの詳細: https://docs.mongodb.com/manual/reference/configuration-options/#net.bindIp

バインドIPはコマンド引数としても設定できます: http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--bind_ip

2.ファイアウォール

ファイアウォールの内側で実行していないことを確認してください

79
Yves M.

/etc/mongodb.confファイルには次の行があります。

bind_ip = 0.0.0.0

http://jitu-blog.blogspot.com.br/2013/06/allow-mongo-to-connect-from-remote-ip.html

33
victorkurauchi

この問題が発生し、修正されました。

編集/etc/mongod.conf with Sudo nano /etc/mongod.confネットセクションが次のようになっていることを確認します(デフォルトでは、localhostバインドではリモートアクセスが許可されません)。

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

上記の作業が完了したら、mongodを必ず再起動してください(systemd ubuntu 16.04+などを想定):

Sudo service mongod restart

明らかにセキュリティの観点から、もしあなたがあなたのネットワークにmongoを開放しようとするなら/世界はこれの意味を知っている(もしあれば)

8
John Culviner

別の問題は、mongodbポートが有効になっていないことです。別のホストから、サーバーで有効になっているポートを確認します。そのためには、次のコマンドを使用できます。

Sudo nmap -P0 your_server_ip

このような答えを得ることができます:

Host is up (0.052s latency).
Not shown: 997 filtered ports
PORT    STATE  SERVICE
22/tcp  open   ssh
80/tcp  open   http
443/tcp closed https

AWSとしてクラウドで仮想サーバーを使用する場合、mongodbポート(デフォルトでは27017)を追加する新しいルールを追加する必要があります。

重要:この構成では誰でもデータベースにアクセスできることに注意してください

enter image description here

3
J.C. Gras