Partage de technologie

Le système Linux déploie la base de données de documents open source MongoDB et réalise un accès à distance sans IP de réseau public

2024-07-12

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


💡 recommander

Il y a quelques jours, j’ai découvert un site géant d’apprentissage de l’intelligence artificielle, facile à comprendre et humoristique, que je n’ai pas pu m’empêcher de partager avec tout le monde. 【Cliquez pour accéder au site Web

Préface

Cet article présente principalement comment déployer rapidement MongoDB dans le système Linux Ubuntu et combine l'outil de pénétration intranet cpolar pour obtenir un accès à distance à la base de données locale sur le réseau public.

Le serveur MongoDB peut fonctionner sur les plates-formes Linux, Windows et MacOS. Il peut stocker des types de données relativement complexes. Le langage de requête qu'il prend en charge est très puissant et peut également réaliser la plupart des fonctions similaires aux requêtes à table unique. données d'indexation.

Il est plus compliqué d'installer MongoDB directement à l'aide du gestionnaire de packages, mais il est relativement simple et rapide d'installer et de déployer MongoDB à l'aide de Docker. Partageons avec vous le processus d'opération spécifique.

0920c95b762166d005b42f74d46e654

1. Installez Docker

L'environnement d'exploitation de ce didacticiel est le système Linux Ubuntu Avant de commencer, nous devons installer Docker.

Exécutez la commande suivante dans le terminal :

Ajouter une source 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

Installer le package Docker

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

Vérifiez que l'installation du moteur Docker a réussi en exécutant l'image

sudo docker run hello-world
  • 1

2. Utilisez Docker pour extraire l'image MongoDB

sudo docker pull mongo
  • 1

image-20240221134922055

Exécutez ensuite la commande view image :

sudo docker images
  • 1

image-20240221135030232

Vous pouvez voir que l'image MongoDB a été extraite avec succès.

3. Créez et démarrez le conteneur MongoDB

Après avoir réussi à extraire l'image MongoDB, nous pouvons utiliser l'image pour créer et exécuter un conteneur MongoDB.

Tout d'abord, créez le répertoire de stockage /docker_mount/mongodb/data sur la machine hôte pour conserver les données MongoDB.

Vous pouvez le créer à l'aide de la commande suivante :

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

Exécutez ensuite la commande suivante dans le terminal pour exécuter le conteneur :

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

Description du paramètre :

  • –nom excalidraw: Le nom du conteneur dans cet exemple est mongodb, vous pouvez le nommer vous-même.
  • **-e MONGO_INITDB_ROOT_USERNAME=root : **Initialiser un utilisateur root avec le rôle root
  • **-e MONGO_INITDB_ROOT_PASSWORD=mot de passe : **Le mot de passe est un mot de passe, vous pouvez le définir vous-même.
  • -p 27017:27017: Mappage de port, mappage du port 27017 local au port 27017 à l'intérieur du conteneur.
  • **-d ** : configurez le conteneur pour qu'il s'exécute toujours en arrière-plan.

Exécutez ensuite la commande suivante pour vérifier si le conteneur est en cours d'exécution :

sudo docker ps
  • 1

image-20240221153852667

Vous pouvez voir que le conteneur MongoDB qui vient d'être créé est en cours d'exécution.

4. Test de connexion locale

OK, après le processus ci-dessus, le déploiement docker de mongodb est terminé. Nous pouvons maintenant effectuer des tests de connexion via Navicat.

La version de Navicat que j'utilise est la 16. Créez une nouvelle connexion mongodb comme indiqué ci-dessous :

Hôte, remplissez l'adresse IP de l'hôte, vous pouvez la saisir dans le terminal ip addrcommande à afficher.

Remplissez le port : 27017

Remplir la vérification : admin

Remplissez le nom d'utilisateur et le mot de passe avec le compte et le mot de passe que vous venez de définir lors du démarrage du conteneur : root et mot de passe

image-20240221154325747

Cliquez ensuite sur Tester la connexion et vous pouvez voir que la connexion est réussie !

5. Accédez à distance au conteneur MongoDB local depuis le réseau public

Cependant, nous ne pouvons actuellement nous connecter que localement au service MongoDB que nous venons de déployer à l'aide de Docker. Que se passe-t-il si nous sommes dans un endroit différent et souhaitons accéder à distance au conteneur MongoDB déployé localement mais n'avons pas d'adresse IP publique ?

Nous pouvons utiliser l'outil de pénétration intranet cpolar pour répondre aux exigences d'accès à distance dans un environnement sans réseau IP public.

5.1 Installation d'outils de pénétration intranet

Voici les étapes pour installer cpolar :

Adresse du site officiel de cpolar : https://www.cpolar.com

  • Utiliser la commande d'installation de script en un clic
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 1
  • Ajouter des services au système
sudo systemctl enable cpolar
  • 1
  • Démarrer le service cpolar
sudo systemctl start cpolar
  • 1

Une fois cpolar installé avec succès, accédez au port Linux 9200 sur un navigateur externe : [http://IP LAN du serveur : 9200]. Connectez-vous avec votre compte cpolar. Après vous être connecté, vous pouvez voir l'interface de configuration Web de cpolar. sur le web Configurez simplement l'interface de gestion.

image-20230831171159175

5.2 Créer une adresse de réseau public pour la connexion à distance

Après vous être connecté à l'interface de gestion de l'interface utilisateur Web cpolar, cliquez sur Gestion des tunnels - Créer un tunnel sur le tableau de bord de gauche :

  • Nom du tunnel : Il peut être personnalisé. Attention à ne pas dupliquer le nom du tunnel existant. Cet exemple utilise : mongo1.
  • Protocole : TCP
  • Adresse locale : 27017
  • Type de nom de domaine : nom de domaine aléatoire
  • Région : Sélectionnez Chine VIP

Cliquez sur创建

image-20240221160200575

Ouvrez ensuite la liste des tunnels en ligne, affichez et copiez l'adresse publique du protocole TCP,注意tcp://无需复制

image-20240221160228682

Ouvrez Navicat ou d'autres outils de connexion, entrez l'adresse du réseau public créée dans notre cpolar ci-dessus dans l'option hôte, et le numéro de port correspond au numéro de port du réseau public généré après les deux points dans l'adresse.

image-20240221160051207

Cliquez ensuite sur Tester la connexion et vous pouvez voir que la connexion est réussie !

résumé

Pour faciliter la démonstration, nous avons utilisé le tunnel d'adresse de réseau public TCP généré par cpolar dans le processus opérationnel ci-dessus, et son adresse de réseau public a été générée de manière aléatoire.

L’avantage de cette adresse aléatoire est qu’elle est établie rapidement et peut être utilisée immédiatement. Cependant, son inconvénient est que l'URL est générée de manière aléatoire et que cette adresse changera de manière aléatoire dans les 24 heures, la rendant plus adaptée à une utilisation temporaire.

Si vous avez besoin à long terme d'un accès à distance au service MongoDB local, mais que vous ne souhaitez pas reconfigurer l'adresse du réseau public tous les jours et que vous souhaitez également que l'adresse soit agréable et facile à retenir, alors je vous recommande de choisir d'utiliser une adresse TCP fixe pour l'accès à distance.

5.3 Accès à distance via une adresse TCP fixe

Se connecterbackend du site officiel de cpolar, cliquez sur Réserver à gauche pour trouver l'adresse TCP réservée. Réservons une adresse TCP fixe pour la connexion à distance à la base de données MongoDB.

  • Région : Sélectionnez Chine VIP
  • Description : Notes, personnalisables

Cliquez sur保留

image-20240221160835462

Une fois l'adresse réservée avec succès, le système générera l'adresse publique fixe correspondante et la copiera.

Dans cet exemple, l'adresse est : 6.tcp.vip.cpolar.cn:13644

Accédez-y ensuite sur votre navigateurLinux局域网ip地址+:9200端口, connectez-vous à l'interface de gestion de l'interface utilisateur Web cpolar.

Cliquez sur Gestion des tunnels - Liste des tunnels sur le tableau de bord de gauche, recherchez le tunnel de base de données distant que nous avons créé ci-dessus, puis cliquez sur编辑

image-20240221161016132

Modifiez les informations du tunnel et configurez l'adresse TCP fixe réservée avec succès dans le tunnel.

  • Type de port : modifié en port TCP fixe
  • Adresse TCP réservée : renseignez l'adresse réservée avec succès par le site officiel,

Cliquez sur更新

image-20240221161130133

Une fois le tunnel mis à jour avec succès, cliquez sur l'état sur le tableau de bord de gauche - Liste des tunnels en ligne, et vous pouvez voir que l'adresse du réseau public a été mise à jour vers une adresse TCP fixe.

image-20240221161207657

Ouvrez l'outil de connexion, entrez l'adresse TCP fixe réservée par le site officiel, le port est le numéro de port du réseau public correspondant après l'adresse, et cliquez sur Tester la connexion.

image-20240221161332281
Une connexion réussie indique le succès. Désormais, l'adresse du réseau public ne changera plus de manière aléatoire tant que le tunnel reste en ligne, nous pouvons nous connecter à distance à la base de données MongoDB dans le LAN via cette adresse du réseau public.

Ce qui précède décrit l'ensemble du processus d'utilisation de Docker pour déployer un conteneur MongoDB sur le système Ubuntu et le combiner avec l'outil de pénétration intranet cpolar pour obtenir un accès à distance aux services locaux sur l'intranet à partir du réseau public. Merci d'avoir regardé.