2015-01-07 2 views
2

У меня есть сервер Ubuntu с установленным mongodb. Возможно ли настроить mongodb таким образом, чтобы я мог подключиться к нему с помощью только localhost и его IP-адрес локальной сети.mongodb слушать localhost и lan ip только

конфигурация Монго по умолчанию работает отлично для подключения с использованием Localhost:

bind_ip = 127.0.0.1 

Если я изменяю к IP локальной сети, то я только в состоянии подключиться с помощью этого IP, а не с помощью Localhost:

bind_ip = 10.10.10.10 

Если я пытаюсь добавить как, то я получаю address in use ошибку и не запускается:

bind_ip = 127.0.0.1, 10.10.10.10 

Если я удалю параметр bind_ip, то оба работают, но я также могу подключиться к внешним IP-серверам (которых я не хочу).

#bind_ip = 127.0.0.1, 10.10.10.10 

Итак, как я могу сказать Монго слушать на локальном интерфейсе, но разрешить доступ с обоих локальный и его IP локальной сети?

+1

Установка 'bind_ip = localhost, ' является правильной настройкой MongoDB. Можете ли вы включить полное сообщение об ошибке из журнала? Кроме того, может оказаться полезным извлечение всех сетевых настроек из файла конфигурации. Какую версию MongoDB вы используете? – wdberkeley

+0

Это интересно. Я попытался воспроизвести ошибку снова, используя ваше предложение (просто чтобы убедиться) - и это сработало без проблем ... После нескольких тестов я понял, в чем разница. Обратите внимание на ** пробел ** после запятой в моем сообщении. Это проблема. Удаление пространства работает так, как я хочу. Интересно. (Кстати, его чистая установка 2.6.6 - никаких других изменений конфигурации). – pqvst

+0

Это несчастливо, потому что я заметил пространство и попытался воспроизвести проблему, включив дополнительное пространство. Работала хорошо для меня. Теперь я понимаю, что вы используете старый формат файла конфигурации, а не новый YAML. Я использовал формат YAML. Рад слышать, что проблема решена. – wdberkeley

ответ

4

С помощью @ wdberkeley замечания, я понял, что проблема заключалась в пробеле после того, как в списке IP-адресов связывается. Однако кажется, что эта проблема влияет только на старый формат файла конфигурации (а не на YAML).

# This Works: 
bind_ip = 127.0.0.1,10.10.10.10 

# This doesn't work: 
bind_ip = 127.0.0.1, 10.10.10.10 
1

Bind для решения 0.0.0.0 это позволит ему отвечать независимо от IP-адреса используются и даже на машинах, имеющие несколько сетевых карт с разными IP-адресами

+0

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

Смежные вопросы