Ошибка 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)