На bindIp
127.0.0.1
по конвенция е IP адресът на localhost
и е свързан с интерфейса за обратна връзка, който е достъпен само от същата машина.
Използването на този адрес по подразбиране е най-добрата практика, тъй като това прави невъзможно случайното излагане на услуга на обществеността. Трябва да направите съзнателния избор да промените IP адреса за свързване, за да направите услугата си публично достъпна. Което трябва да направите едва след като се уверите че сте взели подходящи мерки за сигурност.
Обикновено една машина има интерфейс за обратна връзка и един или повече "истински" мрежови интерфейси.
Да кажем, че имате един мрежов интерфейс, който е „вътрешен“ (достъпен само от вашите сървъри за приложения, тъй като сте ги поставили в една и съща мрежа) и имате един мрежов интерфейс, който е „външен“ (достъпен през публичния интернет за целите на поддръжката). Сега, ако обвържете вашия екземпляр на MongoDB с всички интерфейси (ще използвате IP адреса 0.0. 0,0 за да направите това), вашето копие на MongoDB ще бъде достъпно от публичния интернет – едва ли желана ситуация. Нападателите могат да се опитат да принудят вашите пароли и в крайна сметка да получат достъп до вашето MongoDB копие. По-добре изобщо да предотвратите всякакъв достъп от публичния интернет.
Това, което бихте предпочели да имате, вашият MongoDB екземпляр е достъпен за вашите сървъри за приложения и от машината, на която работи. Така че бихте обвързали MongoDB към IP адреса на интерфейса за обратна връзка (127.0.0.1
) и IP на частната мрежа, която по принцип би била една от
- диапазонът от
10.0.0.0
до10.255.255.255
- диапазонът от
172.16.0.0
до172.31.255.255
- диапазонът от
192.168.0.0
до192.168.255.255
Нека вземем нашия пример и кажем, че и сървърите на приложения, и екземплярът на MongoDB са в частна мрежа в диапазона 192.168.X.X
и сте дали на екземпляра на MongoDB IP адреса 192.168.0.1
. Така че бихте искали вашето копие на MongoDB да бъде достъпно чрез 192.168.0.1
така че сървърите на приложения да могат да говорят с него и чрез 127.0.0.1
да използвате инструментите за администриране от машината, на която MongoDB работи безпроблемно.
Така че със синтаксиса за конфигуриране на YAML ще подадете множество IP адреси
ЗАБЕЛЕЖКА не добавяйте интервал между запетаи на множество IP
# WARNING!!! WARNING!!! WARNING!!!
# DO NOT DO THIS UNLESS YOU HAVE CLIENT AUTHENTICATION ENABLED
# (or you really, really, really know what you are doing)
net:
bindIp: 127.0.0.1,192.168.0.1
Относно предупрежденията
Накратко, това е начинът на MongoDB да се каже:
Има нещо като подразбиращо се „Освен ако наистина знайте какво правите!", защото iirc, предупреждението изчезва, ако или активирате удостоверяване на клиента или променете bindIp.