Получение MongoDB в Linux для прослушивания удаленных подключений - PullRequest
55 голосов
/ 23 августа 2011

Я успешно установил MongoDB в Windows (на локальном компьютере) в качестве службы, но теперь я хочу переместить MongoDb на отдельный сервер.Поэтому я распаковал tarball на виртуальный сервер в сети (под управлением linux).

Когда я подключился к серверу («testmongoserver») с помощью PuTTY с моей локальной машины, я запустил сервер mongod, и он сказал мне, чтоон слушал порт по умолчанию 28017.Консоль mongo также работает и позволила мне создать новую базу данных (testdb) и добавить в нее пользователей.

Однако я не смог получить доступ к серверу удаленно.Когда я набираю testmongoserver:28017, он не открывает консоль HTTP, как localhost:28017 на моей локальной машине.Я также не могу подключиться, используя официальные драйверы и предоставляя строку подключения.

Каковы необходимые шаги для установки MongoDB в Linux, чтобы я мог получить к нему доступ с удаленного компьютера с помощью строки подключения и использовать его консоль HTTP черезtestmongoserver:28017

Спасибо!

Ответы [ 5 ]

79 голосов
/ 12 сентября 2013

1. Вариант привязки IP

Bind IP - это опция MongoDB, которая ограничивает соединения конкретными IP-адресами.

Посмотрите на свой файл конфигурации mongod, в большинстве случаев bind_ip установлен на 127.0.0.1 по очевидным причинам безопасности. Вы можете:

  1. Добавьте желаемый IP-адрес, объединив список значений через запятую, чтобы связать MongoDB с несколькими IP-адресами.
  2. Удалить или прокомментировать (с # символом) строку bind_ip. Но учтите, что все удаленные подключения смогут подключать ваш сервер MongoDB!

Подробнее о bind_ip опция конфигурации: https://docs.mongodb.com/manual/reference/configuration-options/#net.bindIp

Bind IP также может быть установлен в качестве аргумента команды: http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--bind_ip

2. Брандмауэр

Убедитесь, что вы не работаете за брандмауэром

33 голосов
/ 17 июля 2014

Убедитесь, что в вашем файле /etc/mongodb.conf есть следующая строка,

bind_ip = 0.0.0.0

http://jitu -blog.blogspot.com.br / 2013/06 / позволяют-Монго-для-соединения из-дистанционного ip.html

19 голосов
/ 23 августа 2011
  1. Запустите netstat -a на сервере mongo и проверьте порт.
  2. Проверьте настройки DNS и убедитесь, что сервер linux разрешает внешние подключения.
  3. Убедитесь, что mongodb может принимать внешние / удаленныесоединение.

Порт по умолчанию для Монго: 27017. 28017 - порт для веб-статистики.

См. http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Ports

8 голосов
/ 18 декабря 2017

Только что была эта проблема, и это исправило ее:

Редактируйте /etc/mongod.conf с помощью sudo nano /etc/mongod.conf, убедитесь, что раздел net выглядит следующим образом (привязка localhost по умолчанию не разрешает удаленный доступ):

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

Обязательно перезапустите mongod, когда закончите с приведенным выше описанием (при условии systemd ubuntu 16.04+ и т. Д.):

sudo service mongod restart

Очевидно, с точки зрения безопасностиесли вы собираетесь открывать монго для своей сети / мира, осознайте последствия этого (если есть)

3 голосов
/ 23 марта 2016

Другая проблема может заключаться в том, что порт 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...