Compartilhamento de tecnologia

O sistema Linux implanta banco de dados de documentos de código aberto MongoDB e realiza acesso remoto sem IP de rede pública

2024-07-12

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


💡 recomendar

Há alguns dias, descobri um site gigante de aprendizado de inteligência artificial. É fácil de entender e bem-humorado e não pude deixar de compartilhá-lo com todos. 【Clique para ir para o site

Prefácio

Este artigo apresenta principalmente como implantar rapidamente o MongoDB no sistema Linux Ubuntu e combina a ferramenta de penetração da intranet cpolar para obter acesso remoto ao banco de dados local pela rede pública.

O servidor MongoDB pode ser executado em plataformas Linux, Windows e MacOS. Ele pode armazenar tipos de dados relativamente complexos. A linguagem de consulta que suporta é quase capaz de realizar a maioria das funções semelhantes às consultas de tabela única em bancos de dados relacionais. dados de índice.

É mais complicado instalar o MongoDB diretamente usando o gerenciador de pacotes, mas é relativamente simples e rápido instalar e implantar o MongoDB usando o Docker. Vamos compartilhar o processo de operação específico com você.

0920c95b762166d005b42f74d46e654

1. Instale o Docker

O ambiente operacional deste tutorial é o sistema Linux Ubuntu. Antes de começar, precisamos instalar o Docker.

Execute o seguinte comando no terminal:

Adicionar fonte 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

Instale o pacote Docker

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

Verifique se a instalação do mecanismo Docker foi bem-sucedida executando a imagem

sudo docker run hello-world
  • 1

2. Use o Docker para extrair a imagem do MongoDB

sudo docker pull mongo
  • 1

imagem-20240221134922055

Em seguida, execute o comando visualizar imagem:

sudo docker images
  • 1

imagem-20240221135030232

Você pode ver que a imagem do MongoDB foi extraída com sucesso.

3. Crie e inicie o contêiner MongoDB

Depois de extrair com êxito a imagem do MongoDB, podemos usar a imagem para criar e executar um contêiner MongoDB.

Primeiro, crie o diretório de armazenamento /docker_mount/mongodb/data na máquina host para persistir dados do MongoDB.

Você pode criá-lo usando o seguinte comando:

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

Em seguida, execute o seguinte comando no terminal para executar o contêiner:

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

Descrição do parâmetro:

  • –nome excalidraw: O nome do contêiner neste exemplo é mongodb, você mesmo pode nomeá-lo.
  • **-e MONGO_INITDB_ROOT_USERNAME=root: **Inicialize um usuário root com a função root
  • **-e MONGO_INITDB_ROOT_PASSWORD=senha: **A senha é uma senha, você mesmo pode defini-la.
  • -p 27017:27017: Mapeamento de portas, mapeando a porta 27017 local para a porta 27017 dentro do contêiner.
  • **-d **: Defina o contêiner para sempre ser executado em segundo plano.

Em seguida, execute o seguinte comando para verificar se o contêiner está em execução:

sudo docker ps
  • 1

imagem-20240221153852667

Você pode ver que o contêiner MongoDB recém-criado está em execução.

4. Teste de conexão local

OK, após o processo acima, a implantação do docker do mongodb está concluída. Agora podemos realizar o teste de conexão por meio do Navicat.

A versão do Navicat que uso é a 16. Crie uma nova conexão mongodb conforme mostrado abaixo:

Host preencha o IP do host, você pode inseri-lo no terminal ip addrcomando para visualizar.

Preencha a porta: 27017

Preenchimento de verificação: admin

Preencha o nome de usuário e senha com a conta e senha que você acabou de definir ao iniciar o contêiner: root e senha

imagem-20240221154325747

Em seguida, clique em Test Connection e você verá que a conexão foi bem-sucedida!

5. Acesse remotamente o contêiner MongoDB local da rede pública

No entanto, atualmente só podemos nos conectar localmente ao serviço MongoDB que acabamos de implantar usando o docker. E se estivermos em um local diferente e quisermos acessar remotamente o contêiner MongoDB implantado localmente, mas não tivermos um IP público?

Podemos usar a ferramenta de penetração de intranet cpolar para atender aos requisitos de acesso remoto em um ambiente sem IP de rede pública.

5.1 Instalação de ferramentas de penetração na intranet

A seguir estão as etapas para instalar o cpolar:

Endereço do site oficial da cpolar: https://www.cpolar.com

  • Use o comando de instalação de script com um clique
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 1
  • Adicione serviços ao sistema
sudo systemctl enable cpolar
  • 1
  • Iniciar serviço cpolar
sudo systemctl start cpolar
  • 1

Após a instalação bem-sucedida do cpolar, acesse a porta 9200 do Linux em um navegador externo: [http://IP da LAN do servidor: 9200]. Faça login com sua conta cpolar. Após fazer login, você poderá ver a interface de configuração da web do cpolar. na web Basta configurar a interface de gerenciamento.

imagem-20230831171159175

5.2 Crie um endereço de rede pública para conexão remota

Depois de fazer login na interface de gerenciamento da interface web cpolar, clique em Tunnel Management - Create Tunnel no painel esquerdo:

  • Nome do túnel: pode ser personalizado. Tenha cuidado para não duplicar o nome do túnel existente. Este exemplo usa: mongo1.
  • Protocolo: tcp
  • Endereço local: 27017
  • Tipo de nome de domínio: nome de domínio aleatório
  • Região: Selecione China VIP

Clique创建

imagem-20240221160200575

Em seguida, abra a lista de túneis online, visualize e copie o endereço público do protocolo tcp,注意tcp://无需复制

imagem-20240221160228682

Abra o navicat ou outras ferramentas de conexão, insira o endereço da rede pública criado em nosso cpolar acima na opção host, e o número da porta corresponde ao número da porta da rede pública gerado após os dois pontos no endereço.

imagem-20240221160051207

Em seguida, clique em Test Connection e você verá que a conexão foi bem-sucedida!

resumo

Para facilitar a demonstração, utilizamos o túnel de endereço de rede pública TCP gerado pelo cpolar no processo de operação acima, e seu endereço de rede pública foi gerado aleatoriamente.

A vantagem deste endereço aleatório é que ele é estabelecido rapidamente e pode ser usado imediatamente. Porém, sua desvantagem é que o URL é gerado aleatoriamente e esse endereço mudará aleatoriamente em 24 horas, tornando-o mais adequado para uso temporário.

Se você tiver necessidades de longo prazo de acesso remoto ao serviço MongoDB local, mas não quiser reconfigurar o endereço da rede pública todos os dias e também quiser que o endereço seja agradável e fácil de lembrar, recomendo que você escolha usar um endereço TCP fixo para acesso remoto.

5.3 Acesso remoto usando endereço TCP fixo

Conecte-seback-end do site oficial da cpolar, clique em Reservar à esquerda para encontrar o endereço TCP reservado. Vamos reservar um endereço TCP fixo para conexão remota ao banco de dados MongoDB.

  • Região: Selecione China vip
  • Descrição: Notas personalizáveis

Clique保留

imagem-20240221160835462

Depois que o endereço for reservado com sucesso, o sistema irá gerar o endereço público fixo correspondente e copiá-lo.

Neste exemplo, o endereço é: 6.tcp.vip.cpolar.cn:13644

Em seguida, acesse-o no seu navegadorLinux局域网ip地址+:9200端口, faça login na interface de gerenciamento da interface do usuário da web cpolar.

Clique em Tunnel Management - Tunnel List no painel esquerdo, encontre o túnel de banco de dados remoto que criamos acima e clique em编辑

imagem-20240221161016132

Modifique as informações do túnel e configure o endereço TCP fixo reservado com sucesso no túnel.

  • Tipo de porta: modificado para porta tcp fixa
  • Endereço tcp reservado: preencha o endereço reservado com sucesso pelo site oficial,

Clique更新

imagem-20240221161130133

Após a atualização bem-sucedida do túnel, clique no status no painel esquerdo - Lista de túneis on-line e você poderá ver que o endereço da rede pública foi atualizado para um endereço TCP fixo.

imagem-20240221161207657

Abra a ferramenta de conexão, insira o endereço TCP fixo reservado pelo site oficial, a porta é o número da porta da rede pública correspondente após o endereço e clique em Testar conexão.

imagem-20240221161332281
Uma conexão bem-sucedida indica sucesso. Agora, o endereço da rede pública não será mais alterado aleatoriamente. Enquanto o túnel permanecer online, podemos conectar-nos remotamente ao banco de dados MongoDB na LAN por meio desse endereço de rede pública.

A descrição acima é todo o processo de como usar o Docker para implantar um contêiner MongoDB no sistema Ubuntu e combiná-lo com a ferramenta de penetração da intranet cpolar para obter acesso remoto a serviços locais na intranet a partir da rede pública.