기술나눔

Linux 시스템은 MongoDB 오픈 소스 문서 데이터베이스를 배포하고 공용 네트워크 IP 없이 원격 액세스를 실현합니다.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


💡 추천하다

며칠 전, 이해하기 쉽고 유머러스한 거대한 인공지능 학습 웹사이트를 발견했습니다. 【클릭하시면 홈페이지로 이동합니다

머리말

이 기사에서는 주로 Linux Ubuntu 시스템에 MongoDB를 신속하게 배포하는 방법을 소개하고 cpole 인트라넷 침투 도구를 결합하여 공용 네트워크를 통해 로컬 데이터베이스에 원격 액세스하는 방법을 소개합니다.

MongoDB 서버는 Linux, Windows 및 MacOS 플랫폼에서 실행될 수 있으며 상대적으로 복잡한 데이터 유형을 저장할 수 있습니다. 지원하는 쿼리 언어는 관계형 데이터베이스의 단일 테이블 쿼리와 거의 유사한 기능을 실현할 수 있습니다. 인덱스 데이터.

패키지 관리자를 사용하여 MongoDB를 직접 설치하는 것이 더 복잡하지만, Docker를 사용하여 MongoDB를 설치하고 배포하는 것이 비교적 간단하고 빠릅니다.

0920c95b762166d005b42f74d46e654

1. 도커 설치

이 튜토리얼의 운영 환경은 Linux Ubuntu 시스템입니다. 시작하기 전에 Docker를 설치해야 합니다.

터미널에서 다음 명령을 실행합니다.

Docker 소스 추가

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | 
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

도커 패키지 설치

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 1

이미지를 실행하여 Docker 엔진 설치가 성공했는지 확인하세요.

sudo docker run hello-world
  • 1

2. Docker를 사용하여 MongoDB 이미지 가져오기

sudo docker pull mongo
  • 1

이미지-20240221134922055

그런 다음 이미지 보기 명령을 실행합니다.

sudo docker images
  • 1

이미지-20240221135030232

MongoDB 이미지를 성공적으로 가져온 것을 확인할 수 있습니다.

3. MongoDB 컨테이너 생성 및 시작

MongoDB 이미지를 성공적으로 가져온 후 해당 이미지를 사용하여 MongoDB 컨테이너를 생성하고 실행할 수 있습니다.

먼저 MongoDB 데이터를 유지하기 위해 호스트 시스템에 스토리지 디렉터리 /docker_mount/mongodb/data를 만듭니다.

다음 명령을 사용하여 만들 수 있습니다.

sudo mkdir -p /docker_mount/mongodb/data
  • 1

그런 다음 터미널에서 다음 명령을 실행하여 컨테이너를 실행합니다.

sudo docker run -d -p 27017:27017 --name mongodb -v /docker_mount/mongodb/data:/data/db -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=password mongo
  • 1

1708500820559

매개변수 설명:

  • –이름 엑스칼리드로우: 이 예시의 컨테이너 이름은 mongodb이며 직접 이름을 지정할 수 있습니다.
  • **-e MONGO_INITDB_ROOT_USERNAME=root: **루트 역할로 사용자 루트를 초기화합니다.
  • **-e MONGO_INITDB_ROOT_PASSWORD=password: **비밀번호는 비밀번호이며 직접 설정할 수 있습니다.
  • -p 27017:27017: 포트 매핑, 로컬 27017 포트를 컨테이너 내부의 27017 포트에 매핑합니다.
  • **-d **: 컨테이너가 항상 백그라운드에서 실행되도록 설정합니다.

그런 다음 다음 명령을 실행하여 컨테이너가 실행 중인지 확인합니다.

sudo docker ps
  • 1

이미지-20240221153852667

방금 생성된 MongoDB 컨테이너가 실행 중인 것을 확인할 수 있습니다.

4. 로컬 연결 테스트

자, 위 과정이 끝나면 mongodb의 docker 배포가 완료되었습니다. 이제 Navicat을 통해 연결 테스트를 수행할 수 있습니다.

내가 사용하는 Navicat 버전은 16입니다. 아래와 같이 새로운 mongodb 연결을 생성합니다.

호스트 호스트 IP를 입력하면 터미널에 입력할 수 있습니다. ip addr보기 위한 명령입니다.

포트를 입력하세요: 27017

확인 작성: 관리자

컨테이너를 시작할 때 방금 설정한 계정과 비밀번호(root 및 비밀번호)로 사용자 이름과 비밀번호를 입력합니다.

이미지-20240221154325747

그런 다음 연결 테스트를 클릭하면 연결이 성공한 것을 확인할 수 있습니다!

5. 공용 네트워크에서 로컬 MongoDB 컨테이너에 원격으로 액세스

그러나 현재는 docker를 사용하여 방금 배포한 MongoDB 서비스에만 로컬로 연결할 수 있습니다. 다른 장소에 있고 로컬로 배포된 MongoDB 컨테이너에 원격으로 액세스하고 싶지만 공용 IP가 없다면 어떻게 될까요?

공용 네트워크 IP가 없는 환경에서 원격 액세스 요구 사항을 충족하기 위해 cpole 인트라넷 침투 도구를 사용할 수 있습니다.

5.1 인트라넷 침투 도구 설치

cpole을 설치하는 단계는 다음과 같습니다.

cpole 공식 웹사이트 주소: https://www.cpolar.com

  • 원클릭 스크립트 설치 명령 사용
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 1
  • 시스템에 서비스 추가
sudo systemctl enable cpolar
  • 1
  • c폴라 서비스 시작
sudo systemctl start cpolar
  • 1

cpole이 성공적으로 설치되면 외부 브라우저([http://server's LAN IP:9200)에서 Linux 포트 9200에 액세스합니다. 로그인하면 cpole 웹 구성 인터페이스를 볼 수 있습니다. 웹에서 관리 인터페이스만 구성하면 됩니다.

이미지-20230831171159175

5.2 원격 연결을 위한 공용 네트워크 주소 생성

cpole 웹 UI 관리 인터페이스에 로그인한 후 왼쪽 대시보드에서 Tunnel Management - Create Tunnel을 클릭합니다.

  • 터널 이름: 사용자 정의할 수 있습니다. 이 예에서는 mongo1을 사용합니다.
  • 프로토콜: TCP
  • 지역 주소: 27017
  • 도메인 이름 유형: 임의의 도메인 이름
  • 지역: 중국 VIP 선택

딸깍 하는 소리创建

이미지-20240221160200575

그런 다음 온라인 터널 목록을 열고 TCP 프로토콜의 공개 주소를 보고 복사합니다.注意tcp://无需复制

이미지-20240221160228682

navicat이나 다른 연결 도구를 열고 호스트 옵션에 위의 cpole에서 생성한 공용 네트워크 주소를 입력하세요. 포트 번호는 주소에서 콜론 뒤에 생성된 공용 네트워크 포트 번호와 일치합니다.

이미지-20240221160051207

그런 다음 연결 테스트를 클릭하면 연결이 성공한 것을 확인할 수 있습니다!

요약

시연의 편의를 위해 위 작업 과정에서 cpole이 생성한 TCP 공용 네트워크 주소 터널을 사용했으며 공용 네트워크 주소는 무작위로 생성되었습니다.

이 랜덤 주소의 장점은 빠르게 설정되어 즉시 사용할 수 있다는 점입니다. 하지만 URL이 무작위로 생성되고 이 주소가 24시간 이내에 무작위로 변경되므로 임시 사용에 더 적합하다는 것이 단점입니다.

로컬 MongoDB 서비스에 대한 원격 액세스가 장기적으로 필요하지만 공용 네트워크 주소를 매일 재구성하고 싶지 않고 주소가 기억하기 쉽고 기억하기 쉬우면 다음을 선택하는 것이 좋습니다. 원격 액세스를 위한 고정 TCP 주소.

5.3 고정 TCP 주소를 사용한 원격 접속

로그인cpole 공식 웹사이트 백엔드, 왼쪽의 예약을 클릭하여 예약된 TCP 주소를 찾으세요. MongoDB 데이터베이스에 대한 원격 연결을 위해 고정된 TCP 주소를 예약해 보겠습니다.

  • 지역: 중국 VIP 선택
  • 설명: 메모, 사용자 정의 가능

딸깍 하는 소리保留

이미지-20240221160835462

주소가 성공적으로 예약되면 시스템은 해당 고정 공용 주소를 생성하고 복사합니다.

이 예에서 주소는 6.tcp.vip.cpole.cn:13644입니다.

그런 다음 브라우저에서 액세스하세요.Linux局域网ip地址+:9200端口, cpole 웹 UI 관리 인터페이스에 로그인하세요.

왼쪽 대시보드에서 Tunnel Management - Tunnel List를 클릭하고 위에서 생성한 원격 데이터베이스 터널을 찾아 클릭합니다.编辑

이미지-20240221161016132

터널 정보를 수정하고 성공적으로 예약된 고정 TCP 주소를 터널에 구성합니다.

  • 포트 유형: 고정 TCP 포트로 수정됨
  • 예약된 TCP 주소: 공식 웹사이트에서 성공적으로 예약한 주소를 입력하세요.

딸깍 하는 소리更新

이미지-20240221161130133

터널 업데이트에 성공한 후 왼쪽 대시보드의 상태 - 온라인 터널 목록을 클릭하면 공용 네트워크 주소가 고정 TCP 주소로 업데이트된 것을 확인할 수 있습니다.

이미지-20240221161207657

연결 도구를 열고 공식 웹사이트에서 예약한 고정 TCP 주소를 입력하세요. 포트는 주소 뒤의 해당 공용 네트워크 포트 번호이고 연결 테스트를 클릭하세요.

이미지-20240221161332281
성공적인 연결은 성공을 의미합니다. 이제 공용 네트워크 주소는 더 이상 무작위로 변경되지 않습니다. 터널이 온라인으로 유지되는 한 이 공용 네트워크 주소를 통해 LAN의 MongoDB 데이터베이스에 원격으로 연결할 수 있습니다.

위 내용은 Docker를 사용하여 Ubuntu 시스템에 MongoDB 컨테이너를 배포하고 이를 cpole 인트라넷 침투 도구와 결합하여 공용 네트워크에서 인트라넷의 로컬 서비스에 원격으로 액세스하는 방법에 대한 전체 과정입니다.