developer tip

Linux에서 MongoDB를 가져와 원격 연결 수신

copycodes 2020. 12. 27. 11:17
반응형

Linux에서 MongoDB를 가져와 원격 연결 수신


Windows (로컬 머신)에 서비스로 MongoDB를 성공적으로 설치했지만 이제 MongoDb를 별도의 서버로 옮기고 싶습니다. 그래서 타르볼을 네트워크 (리눅스 실행)의 가상 서버로 추출했습니다.

로컬 컴퓨터에서 PuTTY를 사용하여 서버 ( "testmongoserver")에 연결했을 때 mongod 서버를 시작했는데 기본 28017 포트를 수신하고 있다고 알려줍니다. mongo 콘솔도 작동하며 새 데이터베이스 (testdb)를 만들고 여기에 사용자를 추가 할 수 있습니다.

그러나 원격에서 서버에 액세스 할 수 없습니다. 입력 testmongoserver:28017localhost:28017로컬 컴퓨터 에서처럼 HTTP 콘솔이 열리지 않습니다. 또한 공식 드라이버를 사용하여 연결하고 연결 문자열을 제공 할 수 없습니다.

연결 문자열을 사용하여 원격 시스템에서 액세스하고 다음을 통해 HTTP 콘솔을 사용할 수 있도록 Linux에 MongoDB를 설치하는 데 필요한 단계는 무엇입니까? testmongoserver:28017

감사!


  1. mongo 서버에서 netstat -a를 실행하고 포트를 확인하십시오.
  2. DNS 설정을 확인하고 Linux 서버가 외부 연결을 허용하는지 확인하십시오.
  3. mongodb가 외부 / 원격 연결을 허용 할 수 있는지 확인하십시오.

mongo의 기본 포트는 27017입니다. 28017-웹 통계 용 포트입니다.

http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Ports를 참조하십시오 .


1. 바인드 IP 옵션

Bind IP는 특정 IP에 대한 연결을 제한하는 MongoDB 옵션입니다.

mongod 구성 파일을 살펴보십시오. 대부분의 경우 bind_ip127.0.0.1명백한 보안상의 이유로 설정됩니다 . 다음을 수행 할 수 있습니다.

  1. MongoDB를 여러 IP 주소에 바인딩하기 위해 쉼표로 구분 된 값 목록을 연결하여 원하는 IP를 추가합니다.
  2. 줄을 제거하거나 주석 ( #문자 포함)합니다 bind_ip. 그러나 모든 원격 연결은 MongoDB 서버에 연결할 수 있습니다!

bind_ip구성 옵션 에 대한 추가 정보 : https://docs.mongodb.com/manual/reference/configuration-options/#net.bindIp

바인드 IP는 명령 인수로 설정할 수도 있습니다 : http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--bind_ip

2. 방화벽

방화벽 뒤에서 실행되고 있지 않은지 확인


/etc/mongodb.conf파일에 다음 줄이 있는지 확인하십시오 .

bind_ip = 0.0.0.0

http://jitu-blog.blogspot.com.br/2013/06/allow-mongo-to-connect-from-remote-ip.html


이 문제가 발생하여 해결되었습니다.

편집 /etc/mongod.conf과는 sudo nano /etc/mongod.conf보장이 순 단면 모양 (로컬 호스트 원격 액세스를 허용하지 않는 기본적으로 바인딩) 다음과 같은 :

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

위의 작업을 마치면 mongod를 다시 시작하십시오 (systemd ubuntu 16.04+ 등을 가정).

sudo service mongod restart

분명히 보안 관점에서 몽고를 네트워크에 공개하려는 경우 / 세계는 이것의 의미를 인식하십시오 (있는 경우)


또 다른 문제는 mongodb 포트가 활성화되지 않은 것일 수 있습니다. 다른 호스트에서 서버에서 활성화 된 포트를 확인하십시오. 이를 위해 다음 명령을 사용할 수 있습니다.

sudo nmap -P0 your_server_ip

다음과 같은 답을 얻을 수 있습니다.

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

클라우드에서 가상 서버를 AWS로 사용하는 경우 mongodb 포트 (기본적으로 27017)를 추가하는 새 규칙을 추가해야합니다.

중요 :이 구성을 사용하면 누구나 데이터베이스에 액세스 할 수 있습니다.

여기에 이미지 설명 입력

참조 URL : https://stackoverflow.com/questions/7159737/getting-mongodb-on-linux-to-listen-to-remote-connections

반응형