Cho phép truy cập từ xa với MongoDB – Remote access

Cho phép truy cập từ xa với MongoDB – Remote access.

Cho phép truy cập từ xa với MongoDB - Remote access

MongoDB Remote Access

Mặc định MongoDB không cho phép các kết nối từ bên ngoài. Tức là máy bạn cài MongoDB thì bạn chỉ có thể kết nối MongoDB từ máy của bạn. Máy khác không thể truy cập được MongoDB trên máy của bạn.

Để cho phép các kết nối từ xa tới MongoDB ta cần chỉnh lại tham số bindIp trong file mongo.cfg

Ví dụ máy mình là windows, cài mongodb bản 4.0 thì file mongo.cfg sẽ là:

C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg

Với hệ điều hành ubuntu thì file mongo.cfg mặc định nằm ở /etc/mongod.cfg

Mặc định giá trị bindIp ban đầu sẽ là 127.0.0.1 tức là chỉ cho phép kết nối nội bộ / localhost

...
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

Để cho phép các máy trên cùng mạng LAN truy cập vào MongoDB trên máy của bạn thì bạn thêm địa chỉ LAN IP vào bindIP

Ví dụ LAN IP của mình là: 192.168.0.15, sau khi thêm LAN IP vào bindIp thì các máy tính trong cùng mạng LAN có thể truy cập MongoDB trên máy mình qua địa chỉ 192.168.0.15

...
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1, 192.168.0.15

Tương tự nếu bạn có static ip, public ip thì đều có thể thêm vào bindIp để truy cập mongodb qua các ip đó.

Đặc biệt, thay vì thêm địa chỉ ip vào bindIp các bạn có thể để nó thành DNS 0.0.0.0 nó sẽ tự động map tất cả các IP của máy bạn (public IP, LAN IP, public IP…) vào bindIp và bạn có thể truy cập vào MongoDB bằng bất kỳ địa chỉ IP nào trong số đó.

...
# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

Với trường hợp dùng domain để kết nối tới MongoDB thì bạn cần map domain đó tới IP của bạn và thêm IP đó vào bindIp hoặc cũng có thể khai báo chung cho tất cả bằng 0.0.0.0

Start MongoDB với tham số –bindIp

Ngoài cách cấu hình bindIP trong file mongod.cfg bạn cũng có thể chỉ rõ bindIp khi start MongoDB bằng lệnh mongod

Ví dụ:

mongod --bind_ip 127.0.0.1,192.168.0.15

 

Okay, Done!

References:

https://docs.mongodb.com/…/#net-options

stackjava.com