2

Я использую базу данных MongoDB, которая установлена с IP-адресом 126.22.252.25. Информация о версии Ubuntu - 12.04.3 LTS.

Моя MongoDB использует порт 27017 по умолчанию. На этом локальном компьютере я могу использовать команду mongo --host 126.22.252.25 на локальном компьютере для доступа, но я не могу использовать эту команду на любом другом компьютере Linux для доступа к MongoDB, а также не могу использовать telnet 126.22.252.25 27017 на моем компьютере с Windows ,

Я уверен, что машина 126.22.252.25 доступна из Интернета, потому что я могу использовать winSCP и secureCRT для входа в нее. Если я запускаю команду netstat -tnlp , она показывает:

tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN

Я уже изменил файл /ect/mongodb.conf , изменив параметр bind_ip с 0.0.0.0 до 126.22.252.25 .

Что еще я могу сделать?

2 ответа2

-1

Попробуй это

Первый - использовать нестандартный порт. Это скорее техника запутывания и просто означает, что адаптеры подключения по умолчанию не будут работать.

В файле конфигурации MongoDB измените следующую строку на что-то отличное от 27017

port = 27017

Во-вторых, вы захотите привязать Mongo напрямую к IP-адресу вашего сервера приложений. Установка этого значения в 127.0.0.1 гарантирует, что Mongo принимает соединения только локально.

В файле конфигурации MongoDB измените следующую строку на IP-адрес сервера приложений

 bind_ip = 127.0.0.1

Наконец, рассмотрите возможность использования функции аутентификации MongoDB и установите имя пользователя и пароль. Чтобы настроить это, подключитесь к оболочке MongoDB в качестве администратора с помощью команды mongo и добавьте пользователя. Как только это будет сделано, убедитесь, что вы добавляете новое имя пользователя / пароль в строки подключения MongoDB.

-1

Наличие адреса привязки для 0.0.0.0 означает, что служба прослушивает все доступные интерфейсы для машины. В этом случае не требуется явно изменять bind_ip (кстати, это вариант, с которого вы могли бы сделать это), чтобы соответствовать адресу, который был бы доступен.

Скорее всего, ваша проблема здесь заключается в том, что существуют правила внешнего брандмауэра от вашего хостинг-провайдера или иным образом настроенные в вашей сети. Это будет явная блокировка, или, скорее, только разрешение явно разрешенного трафика общаться с внешним миром Интернета. Или в другом случае, вы можете даже заблокировать этот порт, откуда вы пытаетесь получить доступ к вашему серверу.

Блокировка портов распространена, и большинство администраторов оставляют открытыми только подмножество типичных портов, http и т.д. И т.д. Но наличие одной службы не означает автоматически, что вы получаете другую бесплатно.

Поэтому вам, вероятно, нужно проверить, что порты доступа к серверу и клиенту доступны на обоих концах, чтобы вы могли общаться с MongoDB.

Тем не менее, вы, вероятно, не должны этого делать, так как показ вашей базы данных всему миру - очень плохая идея. Если вам абсолютно необходимы инструменты для подключения из удаленных мест, то лучше туннелировать через что-то вроде ssh , которое будет чаще поддерживаться в разрешенных протоколах и будет значительно более безопасным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .