Compartir tecnología

El sistema Linux implementa la base de datos de documentos de código abierto MongoDB y realiza acceso remoto sin IP de red pública

2024-07-12

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


💡 recomendar

Hace unos días, descubrí un sitio web gigante de aprendizaje de inteligencia artificial. Es fácil de entender y divertido. No pude evitar compartirlo con todos. 【Haga clic para ir al sitio web

Prefacio

Este artículo presenta principalmente cómo implementar rápidamente MongoDB en el sistema Linux Ubuntu y combina la herramienta de penetración de intranet cpolar para lograr acceso remoto a la base de datos local a través de la red pública.

El servidor MongoDB puede ejecutarse en plataformas Linux, Windows y MacOS. Puede almacenar tipos de datos relativamente complejos. El lenguaje de consulta que admite es muy potente. Casi puede realizar la mayoría de funciones similares a las consultas de una sola tabla en bases de datos relacionales. datos del índice.

Es más complicado instalar MongoDB directamente usando el administrador de paquetes, pero es relativamente simple y rápido instalar e implementar MongoDB usando Docker. Compartamos el proceso de operación específico con usted.

0920c95b762166d005b42f74d46e654

1. Instale Docker

El entorno operativo de este tutorial es el sistema Linux Ubuntu. Antes de comenzar, necesitamos instalar Docker.

Ejecute el siguiente comando en la terminal:

Agregar fuente 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

Instalar el paquete Docker

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

Verifique que la instalación del motor Docker se haya realizado correctamente ejecutando la imagen

sudo docker run hello-world
  • 1

2. Utilice Docker para extraer la imagen de MongoDB

sudo docker pull mongo
  • 1

imagen-20240221134922055

Luego ejecute el comando ver imagen:

sudo docker images
  • 1

imagen-20240221135030232

Puede ver que la imagen de MongoDB se extrajo correctamente.

3. Cree e inicie el contenedor MongoDB.

Después de extraer con éxito la imagen de MongoDB, podemos usar la imagen para crear y ejecutar un contenedor de MongoDB.

Primero, cree el directorio de almacenamiento /docker_mount/mongodb/data en la máquina host para conservar los datos de MongoDB.

Puedes crearlo usando el siguiente comando:

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

Luego ejecute el siguiente comando en la terminal para ejecutar el contenedor:

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

Descripción de parámetros:

  • –nombre excalidraw: El nombre del contenedor en este ejemplo es mongodb, puede nombrarlo usted mismo.
  • **-e MONGO_INITDB_ROOT_USERNAME=root: **Inicializa un usuario root con el rol de root
  • **-e MONGO_INITDB_ROOT_PASSWORD=contraseña: **La contraseña es contraseña, puede configurarla usted mismo.
  • -p27017:27017: Mapeo de puertos, mapeando el puerto local 27017 al puerto 27017 dentro del contenedor.
  • **-d **: configura el contenedor para que siempre se ejecute en segundo plano.

Luego ejecute el siguiente comando para verificar si el contenedor se está ejecutando:

sudo docker ps
  • 1

imagen-20240221153852667

Puede ver que el contenedor MongoDB recién creado se está ejecutando.

4. Prueba de conexión local

Bien, después del proceso anterior, se completa la implementación de la ventana acoplable de mongodb. Ahora podemos realizar pruebas de conexión a través de Navicat.

La versión de Navicat que uso es 16. Cree una nueva conexión mongodb como se muestra a continuación:

El host completa la IP del host, puedes ingresarla en la terminal ip addrcomando para ver.

Complete el puerto: 27017

Completar verificación: admin

Complete el nombre de usuario y la contraseña con la cuenta y la contraseña que acaba de configurar al iniciar el contenedor: raíz y contraseña

imagen-20240221154325747

Luego haga clic en Probar conexión y podrá ver que la conexión se realizó correctamente.

5. Acceda de forma remota al contenedor MongoDB local desde la red pública

Sin embargo, actualmente solo podemos conectarnos localmente al servicio MongoDB que acabamos de implementar usando Docker. ¿Qué sucede si estamos en un lugar diferente y queremos acceder de forma remota al contenedor MongoDB implementado localmente pero no tenemos una IP pública?

Podemos utilizar la herramienta de penetración de intranet cpolar para lograr los requisitos de acceso remoto en un entorno sin IP de red pública.

5.1 Instalación de herramientas de penetración en intranet

Los siguientes son los pasos para instalar cpolar:

Dirección del sitio web oficial de cpolar: https://www.cpolar.com

  • Utilice el comando de instalación de script con un solo clic
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 1
  • Agregar servicios al sistema
sudo systemctl enable cpolar
  • 1
  • Iniciar servicio cpolar
sudo systemctl start cpolar
  • 1

Después de que cpolar se haya instalado correctamente, acceda al puerto de Linux 9200 en un navegador externo: [http://IP de LAN del servidor: 9200]. Inicie sesión con su cuenta de cpolar. Después de iniciar sesión, podrá ver la interfaz de configuración web de cpolar. en la web Simplemente configure la interfaz de administración.

imagen-20230831171159175

5.2 Crear una dirección de red pública para conexión remota

Después de iniciar sesión en la interfaz de administración de la interfaz de usuario web de cpolar, haga clic en Administración de túneles - Crear túnel en el panel izquierdo:

  • Nombre del túnel: se puede personalizar. Tenga cuidado de no duplicar el nombre del túnel existente. Este ejemplo utiliza: mongo1.
  • Protocolo: tcp
  • Dirección local: 27017
  • Tipo de nombre de dominio: nombre de dominio aleatorio
  • Región: Seleccionar China VIP

Hacer clic创建

imagen-20240221160200575

Luego abra la lista de túneles en línea, vea y copie la dirección pública del protocolo tcp,注意tcp://无需复制

imagen-20240221160228682

Abra navicat u otras herramientas de conexión, ingrese la dirección de red pública creada en nuestro cpolar arriba en la opción de host, y el número de puerto corresponde al número de puerto de red pública generado después de los dos puntos en la dirección.

imagen-20240221160051207

Luego haga clic en Probar conexión y podrá ver que la conexión se realizó correctamente.

resumen

Para facilitar la demostración, utilizamos el túnel de dirección de red pública TCP generado por cpolar en el proceso de operación anterior, y su dirección de red pública se generó aleatoriamente.

La ventaja de esta dirección aleatoria es que se establece rápidamente y se puede utilizar inmediatamente. Sin embargo, su desventaja es que la URL se genera aleatoriamente y esta dirección cambiará aleatoriamente dentro de las 24 horas, lo que la hace más adecuada para uso temporal.

Si tiene necesidades a largo plazo de acceso remoto al servicio MongoDB local, pero no desea reconfigurar la dirección de la red pública todos los días y también desea que la dirección sea agradable y fácil de recordar, le recomiendo que elija usar una dirección TCP fija para acceso remoto.

5.3 Acceso remoto mediante dirección TCP fija

Accesobackend del sitio web oficial de cpolar, haga clic en Reservar a la izquierda para encontrar la dirección TCP reservada. Reservemos una dirección TCP fija para la conexión remota a la base de datos MongoDB.

  • Región: Seleccionar China vip
  • Descripción: Notas, personalizables

Hacer clic保留

imagen-20240221160835462

Una vez reservada correctamente la dirección, el sistema generará la dirección pública fija correspondiente y la copiará.

En este ejemplo, la dirección es: 6.tcp.vip.cpolar.cn:13644

Luego acceda a él en su navegador.Linux局域网ip地址+:9200端口, inicie sesión en la interfaz de administración de la interfaz de usuario web de cpolar.

Haga clic en Administración de túneles - Lista de túneles en el panel izquierdo, busque el túnel de base de datos remota que creamos arriba y haga clic en编辑

imagen-20240221161016132

Modifique la información del túnel y configure la dirección TCP fija reservada correctamente en el túnel.

  • Tipo de puerto: modificado a puerto tcp fijo
  • Dirección tcp reservada: complete la dirección reservada con éxito por el sitio web oficial,

Hacer clic更新

imagen-20240221161130133

Una vez que el túnel se haya actualizado correctamente, haga clic en el estado en el panel izquierdo: Lista de túneles en línea y podrá ver que la dirección de la red pública se actualizó a una dirección TCP fija.

imagen-20240221161207657

Abra la herramienta de conexión, ingrese la dirección TCP fija reservada por el sitio web oficial, el puerto es el número de puerto de la red pública correspondiente después de la dirección y haga clic en Probar conexión.

imagen-20240221161332281
Una conexión exitosa indica éxito. Ahora la dirección de la red pública ya no cambiará aleatoriamente. Mientras el túnel permanezca en línea, podemos conectarnos de forma remota a la base de datos MongoDB en la LAN a través de esta dirección de red pública.

Lo anterior es el proceso completo de cómo usar Docker para implementar un contenedor MongoDB en el sistema Ubuntu y combinarlo con la herramienta de penetración de intranet cpolar para lograr acceso remoto a los servicios locales en la intranet desde la red pública.