技術共有

LinuxシステムはオープンソースドキュメントデータベースMongoDBを導入し、パブリックネットワークIPを使用しないリモートアクセスを実現

2024-07-12

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


💡 推薦する

数日前、わかりやすくてユーモアのある巨大な人工知能学習サイトを発見しました。 【クリックするとWebサイトへジャンプします

序文

この記事では主に、Linux Ubuntu システムに MongoDB を迅速に展開する方法を紹介し、cpolar イントラネット侵入ツールを組み合わせてパブリック ネットワーク経由でローカル データベースへのリモート アクセスを実現します。

MongoDB サーバーは、Linux、Windows、および MacOS プラットフォームで実行でき、比較的複雑なデータ型を格納でき、リレーショナル データベースの単一テーブル クエリとほぼ同じ機能を実現できます。インデックスデータ。

パッケージ マネージャーを使用して MongoDB を直接インストールするのはより複雑ですが、Docker を使用して MongoDB をインストールおよびデプロイするのは比較的簡単で迅速です。以下に具体的な操作プロセスを共有します。

0920c95b762166d005b42f74d46e654

1.Dockerをインストールする

このチュートリアルの動作環境は 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

Docker パッケージをインストールする

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

パラメータの説明:

  • –name エクスカリドロー注: この例のコンテナ名は mongodb ですが、自分で名前を付けることができます。
  • **-e MONGO_INITDB_ROOT_USERNAME=root: **root ロールを使用してユーザー root を初期化します。
  • **-e MONGO_INITDB_ROOT_PASSWORD=password: **パスワードはpasswordで、自分で設定できます。
  • -p 27017:27017: ポート マッピング。ローカル 27017 ポートをコンテナ内の 27017 ポートにマッピングします。
  • **-d **: コンテナが常にバックグラウンドで実行されるように設定します。

次に、次のコマンドを実行して、コンテナーが実行されているかどうかを確認します。

sudo docker ps
  • 1

画像-20240221153852667

作成したばかりの MongoDB コンテナが実行されていることがわかります。

4. ローカル接続テスト

OK、上記のプロセスの後、mongodb の docker デプロイが完了しました。これで、Navicat を介して接続テストを実行できるようになります。

私が使用している Navicat のバージョンは 16 です。以下に示すように、新しい mongodb 接続を作成します。

ホスト IP を入力します。ターミナルに入力できます。 ip addr表示するコマンド。

ポートに入力します: 27017

確認記入: 管理者

ユーザー名とパスワードに、コンテナーの起動時に設定したばかりのアカウントとパスワード (root とパスワード) を入力します。

画像-20240221154325747

次に、「接続のテスト」をクリックすると、接続が成功したことがわかります。

5. パブリック ネットワークからローカル MongoDB コンテナにリモート アクセスする

ただし、現時点では、docker を使用してデプロイした MongoDB サービスにローカルでしか接続できません。別の場所にいて、ローカルにデプロイされた MongoDB コンテナにリモートでアクセスしたいが、パブリック IP がない場合はどうすればよいでしょうか。

cpolar イントラネット侵入ツールを使用すると、パブリック ネットワーク IP のない環境でリモート アクセス要件を達成できます。

5.1 イントラネット侵入ツールのインストール

cpolar をインストールする手順は次のとおりです。

cpolar公式ウェブサイトアドレス: https://www.cpolar.com

  • ワンクリックスクリプトインストールコマンドを使用する
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 1
  • システムにサービスを追加する
sudo systemctl enable cpolar
  • 1
  • cpolarサービスを開始する
sudo systemctl start cpolar
  • 1

cpolar が正常にインストールされたら、外部ブラウザで Linux ポート 9200 にアクセスします: [http://サーバーの LAN IP:9200]。ログイン後、cpolar Web 設定インターフェイスが表示されます。は Web 上にあります。管理インターフェイスを設定するだけです。

画像-20230831171159175

5.2 リモート接続用のパブリックネットワークアドレスを作成する

cpolar Web UI 管理インターフェイスにログインした後、左側のダッシュボードで [トンネル管理] - [トンネルの作成] をクリックします。

  • トンネル名: 既存のトンネル名と重複しないように注意してください: mongo1。
  • プロトコル: tcp
  • 現地住所: 27017
  • ドメイン名の種類: ランダムなドメイン名
  • 地域: 中国 VIP を選択

クリック创建

画像-20240221160200575

次に、オンライン トンネル リストを開き、TCP プロトコルのパブリック アドレスを表示してコピーします。注意tcp://无需复制

画像-20240221160228682

navicat またはその他の接続ツールを開き、上記の cpolar で作成したパブリック ネットワーク アドレスをホスト オプションに入力します。ポート番号は、アドレス内のコロンの後に生成されたパブリック ネットワーク ポート番号に対応します。

画像-20240221160051207

次に、「接続のテスト」をクリックすると、接続が成功したことがわかります。

まとめ

デモンストレーションの便宜上、上記の操作プロセスでは cpolar によって生成された TCP パブリック ネットワーク アドレス トンネルを使用しました。そのパブリック ネットワーク アドレスはランダムに生成されました。

このランダム アドレスの利点は、迅速に確立され、すぐに使用できることです。ただし、URL がランダムに生成され、このアドレスは 24 時間以内にランダムに変更されるため、一時的な使用に適しているという欠点があります。

ローカル MongoDB サービスに長期的にリモート アクセスしているが、パブリック ネットワーク アドレスを毎日再構成したくない、またアドレスの見栄えを良くして覚えやすいようにしたい場合は、次のオプションを使用することをお勧めします。リモートアクセス用の固定TCPアドレス。

5.3 固定TCPアドレスを使用したリモートアクセス

ログインcpolar公式ウェブサイトのバックエンドで、左側の「予約」をクリックして予約された TCP アドレスを見つけます。MongoDB データベースへのリモート接続用に固定 TCP アドレスを予約しましょう。

  • 地域: 中国vipを選択
  • 説明: メモ、カスタマイズ可能

クリック保留

画像-20240221160835462

アドレスが正常に予約されると、システムは対応する固定パブリック アドレスを生成してコピーします。

この例では、アドレスは 6.tcp.vip.cpolar.cn:13644 です。

次に、ブラウザでアクセスしますLinux局域网ip地址+:9200端口、cpolar Web UI管理インターフェイスにログインします。

左側のダッシュボードで「トンネル管理 - トンネル リスト」をクリックし、上で作成したリモート データベース トンネルを見つけて、编辑

画像-20240221161016132

トンネル情報を変更し、正常に予約された固定 TCP アドレスをトンネルに構成します。

  • ポートタイプ: 固定 TCP ポートに変更されました
  • 予約済みの TCP アドレス: 公式 Web サイトで正常に予約されたアドレスを入力します。

クリック更新

画像-20240221161130133

トンネルが正常に更新されたら、左側のダッシュボードのステータス - [オンライン トンネル リスト] をクリックすると、パブリック ネットワーク アドレスが固定 TCP アドレスに更新されたことがわかります。

画像-20240221161207657

接続ツールを開き、公式 Web サイトで予約されている固定 TCP アドレスを入力し、ポートはアドレスの後に対応するパブリック ネットワーク ポート番号を入力し、[接続のテスト] をクリックします。

画像-20240221161332281
接続が成功すると、パブリック ネットワーク アドレスがランダムに変更されなくなり、このパブリック ネットワーク アドレスを介して LAN 内の MongoDB データベースにリモート接続できます。

上記は、Docker を使用して MongoDB コンテナを Ubuntu システムにデプロイし、それを cpolar イントラネット侵入ツールと組み合わせて、パブリック ネットワークからイントラネット上のローカル サービスへのリモート アクセスを実現する方法のプロセス全体です。ご視聴いただきありがとうございます。