Reputation: 1965
I've successfully installed MongoDB on Windows (on a local machine) as a service, but now I want to move MongoDb to a separate server. So I extracted the tarball to a virtual server on network (running linux).
When I connected to the server ("testmongoserver") using PuTTY from my local machine, I started the mongod server and it told me that it was listening to the default 28017 port. The mongo console is also working and allowed me to create a new database (testdb) and add users to it.
However, I could not access the server from remote. When I type testmongoserver:28017
it doesn't open the HTTP console as localhost:28017
on my local machine does. I also can't connect using official drivers and providing a connectionstring.
What are the neccesarry steps to install MongoDB on Linux, so that I could access it from a remote machine with a connectionstring and use its HTTP console via testmongoserver:28017
Thanks!
Upvotes: 59
Views: 89413
Reputation: 318
To enable remote connections to a MongoDB instance running on Linux and access it via both a connection string and the HTTP console, follow these steps:
Edit the MongoDB Configuration File:
mongod.conf
, typically in /etc/mongod.conf
.bindIp
from 127.0.0.1
to 0.0.0.0
to listen for connections from all IP addresses.
net:
bindIp: 0.0.0.0
port: 27017
27017
is the default MongoDB port. HTTP console runs on 28017
.Enable Security:
mongod.conf
, enable authorization:
security:
authorization: "enabled"
Restart the MongoDB Service:
sudo service mongod restart
Configure the Firewall:
iptables
for port 27017
):
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
iptables
rules.Create a MongoDB User:
admin
database.Test Server Port Accessibility:
Connect Using MongoDB Compass:
mongodb://username:password@testmongoserver:27017/testdb
Access the HTTP console via http://testmongoserver:28017
(if enabled and running on port 28017).
Security Note: Ensure strong user credentials and consider SSL/TLS encryption and network filtering for security.
Upvotes: 3
Reputation: 1409
Make sure in your /etc/mongodb.conf
file you have the following line,
bind_ip = 0.0.0.0
http://jitu-blog.blogspot.com.br/2013/06/allow-mongo-to-connect-from-remote-ip.html
Upvotes: 37
Reputation: 30987
Bind IP is a MongoDB option that restricts connections to specifics IPs.
Have a look at your mongod configuration file, most of the time bind_ip is set to 127.0.0.1
for obvious security reasons. You can:
#
character) the bind_ip
line. But be aware that all remote connection will be able to connect your MongoDB server!More about bind_ip
configuration option: https://docs.mongodb.com/manual/reference/configuration-options/#net.bindIp
Bind IP can also be set as a command argument: http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--bind_ip
Check that you are not running behind a firewall
Upvotes: 81
Reputation: 22954
Just had this issue and this fixed it:
Edit /etc/mongod.conf
with sudo nano /etc/mongod.conf
ensure that the net section looks like below (localhost binding by default doesn't allow for remote access):
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
Make sure to restart mongod when you are done with above with below (assuming systemd ubuntu 16.04+ etc.):
sudo service mongod restart
Obviously from a security perspective if you are going to be opening up mongo to your network/the world be aware of the implications of this (if any)
Upvotes: 8
Reputation: 5442
Another problem may be that the mongodb port is not enabled. Check, from another host, the ports enabled on your server. For that you can use the command:
sudo nmap -P0 your_server_ip
You can get an answer like this:
Host is up (0.052s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp closed https
If you use a virtual server in the cloud, as AWS, you need to add a new rule to add mongodb port (27017 by default).
Important: Note that with this configuration anyone can have access to your database
Upvotes: 3
Reputation: 7504
Default port for mongo is 27017. 28017 - port for webstats.
See http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Ports
Upvotes: 21