Ошибка Mong_DB bind_ip: bind() failed errno: 99 Невозможно назначить запрошенный адрес для сокета

Я хочу настроить mongodb для разрешения удаленных подключений с внешнего IP-адреса, например 66.31.123.123.

Настройка 0.0.0.0 на bind_ip работает, но я хочу быть более ограничительной и разрешать только определенные IP-адреса. Я добавил 66.31.123.123 в список bind_ip, но mongodb выдает следующую ошибку:

mongodb.conf

bind_ip = 127.0.0.1,66.31.123.123
port = 27017

auth = true

журналы mongodb

Mon Dec  9 03:25:59 [initandlisten] ERROR: listen(): bind() failed errno:99 Cannot assign requested address for socket: 66.31.123.123:27017

Вопрос: Почему добавление внешнего ip не работает? Если используется auth=true, делает ли это достаточно безопасным использование 0.0.0.0 в качестве bind_ip? Mongodb будет локально доступен из приложения Meteor.js.

Ответы

Ответ 1

Как сказал Гвидо, bind_ip предназначен для собственного IP-адреса сервера Монго.

Аут это хорошая идея, но только полагаясь на аутентификацию, вы подвергаетесь атаке грубой силы.

Вы можете bind_ip = 0.0.0.0 и использовать брандмауэр, чтобы заблокировать все входящие подключения к порту 27017, если они не поступают с 66.31.123.123.

Другая проблема - близость вашего метеорного сервера к вашему монго-серверу - будь то в частной сети или через общедоступную сеть. Если вы общедоступны, вам следует либо перекомпилировать mongodb для поддержки SSL, либо туннелировать ваше соединение mongodb через SSH.

Если вы решите туннелировать, bind_ip к 127.0.0.1 и пропустите входящий 27017.

Ответ 2

У меня та же проблема, и 0.0.0.0 по-прежнему не разрешает мне подключаться с другого ip моей локальной сети, кроме locahosts или самого ip сервера mongo (пробовал с 2.2 3.4 3.6)