title: Failing to connect to remote mongodb server
body: <p>I am trying to create a remote mongodb server to work with on my java project.</p>
  
  <p>I am using vagrant + ansible to create the environment, but fr soem reson i cannot get a connection. </p>
  
  <p>I always get connection refused through the network. the same code on localhost works perfectly.</p>
  
  <p>I am using vagrant box: <code>chef/centos-6.5</code></p>
  
  <p>and my ansible tasks are as follows:</p>
  
  <blockquote>
  <pre><code>- name: Download EPEL Repo
    get_url: url=http://dl.fedoraproject.org/pub/epel/6/x86_64/epel- release-6-8.noarch.rpm dest=/tmp/epel-release-6-8.noarch.rpm
  - name: Install EPEL Repo
    command: rpm -ivh /tmp/epel-release-6-8.noarch.rpm creates=/etc/yum.repos.d/epel.repo
  - name: Install libselinux-python
    yum: name=libselinux-python
  - name: Create the repository for 10Gen  
    copy: src=10gen.repo.j2 dest=/etc/yum.repos.d/10gen.repo
  - name: Create the EPEL Repository.
    copy: src=epel.repo.j2 dest=/etc/yum.repos.d/epel.repo
  - name: Create the GPG key for EPEL
    copy: src=RPM-GPG-KEY-EPEL-6 dest=/etc/pki/rpm-gpg
  - name: Create the mongod user
    user: name=mongod comment="MongoD"
  - name: Create the data directory for the namenode metadata
    file: path={{ mongodb_datadir_prefix }} owner=mongod group=mongod state=directory
  - name: Install the mongodb package
    yum: name={{ item }} state=installed
    with_items:
     - libselinux-python
     - mongo-10gen
     - mongo-10gen-server
     - bc
     - python-pip
  - name: Install the latest pymongo package
    pip: name=pymongo state=latest use_mirrors=no 
  </code></pre>
  </blockquote>
  
  <p>i have added the iptables exceptions:</p>
  
  <pre><code>sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
  </code></pre>
  
  <p>which is active:</p>
  
  <blockquote>
  <pre><code>[root@localhost ~]# iptables -L -v
  Chain INPUT (policy ACCEPT 209 packets, 13148 bytes)
   pkts bytes target     prot opt in     out     source               destination
   1070 68777 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:27017
  </code></pre>
  </blockquote>
  
  <p>my java code defining <code>MongoDbFactory</code></p>
  
  <blockquote>
  <pre><code>public @Bean
  MongoDbFactory mongoDbFactory() throws Exception {
      MongoClient mongo = new MongoClient("&lt;ip-of-machine&gt;", 27017);
      return new SimpleMongoDbFactory(mongo, "test");
  }
  </code></pre>
  </blockquote>
  
  <p>But i always get the following exception when trying to connect to it.</p>
  
  <pre><code>com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting for a server that matches AnyServerSelector{}. Client view of cluster state is {type=Unknown, servers=[{address=192.168.1.11:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.ConnectException: Connection refused}}]
  </code></pre>
  
  <p>If i run mongodb from localhost and change the ip accordingly, everything works fine.</p>
  
  <p>Thanks</p>