source

원격 연결을 수신하기 위해 Linux에서 MongoDB 가져오기

nicesource 2023. 6. 3. 08:31
반응형

원격 연결을 수신하기 위해 Linux에서 MongoDB 가져오기

Windows(로컬 시스템)에 MongoDB를 서비스로 설치했지만 이제 MongoDB를 다른 서버로 이동하려고 합니다.그래서 저는 tarball을 (리눅스를 실행하는) 네트워크의 가상 서버에 추출했습니다.

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

하지만 원격으로 서버에 접속할 수 없었습니다.가 때할력을 치면.testmongoserver:28017을 HTTP로 localhost:28017내 로컬 컴퓨터에서 합니다.저도 공식 드라이버를 사용하여 연결할 수 없고 연결 문자열을 제공할 수 없습니다.

할 수 MongoDB를 하는 데 입니까?testmongoserver:28017

감사합니다!

IP 바인딩 옵션

IP 바인딩은 특정 IP에 대한 연결을 제한하는 MongoDB 옵션입니다.

mongod 구성 파일을 확인하십시오. 대부분의 경우 bind_ip은 다음과 같이 설정됩니다.127.0.0.1명백한 보안상의 이유로할 수 있는 일:

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

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

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

방화벽

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

에서 확인합니다./etc/mongodb.conf을 가지고 있는 , 줄있파일다는이음▁you,

bind_ip = 0.0.0.0

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

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

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

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

방금 이 문제를 해결했습니다.

편집/etc/mongod.conf와 함께sudo nano /etc/mongod.confnet 섹션이 아래와 같은지 확인합니다(기본적으로 localhost 바인딩에서는 원격 액세스가 허용되지 않음).

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

아래 작업을 완료한 후 mongod를 다시 시작하십시오(시스템dubuntu 16.04+ 등으로 가정).

sudo service mongod restart

확실히 보안 관점에서 네트워크에 mongo를 개방하려는 경우/세계가 이에 대한 영향을 인지하고 있어야 합니다(있는 경우).

또 다른 문제는 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).

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

여기에 이미지 설명 입력

아래 참조로 수정했습니다.

https://medium.com/founding-ithaka/setting-up-and-connecting-to-a-remote-mongodb-database-5df754a4da89

사실, 처음에 나는 나의 것을 바꿨습니다.bindIp부터127.0.0.1로.0.0.0.0mongod.conf에서 보안을 활성화합니다.

security:
  authorization: "enabled"

그리고 나서 나는 몽고드를 다시 시작했습니다.sudo service mongod restart.(mongod.conf의 새로운 변경 사항으로 인해) 그 후 방화벽을 설정하여 mongod 실행 포트(iptables 기준)를 열고 새 액세스 권한을 가진 새 사용자를 admin db에 생성합니다(이 링크를 기준으로: https://medium.com/mongoaudit/how-to-enable-authentication-on-mongodb-b9e8a924efac), 는 마지막으로 외부에서 내 서버의 열린 포트를 테스트합니다.https://www.yougetsignal.com/tools/open-ports/) mongcompass.exe를 사용하여 원격 mongod에 성공적으로 연결되었습니다.

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

반응형