Condivisione della tecnologia

Il sistema Linux distribuisce il database di documenti open source MongoDB e realizza l'accesso remoto senza IP di rete pubblica

2024-07-12

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


💡 consigliare

Qualche giorno fa ho scoperto un gigantesco sito web per l'apprendimento dell'intelligenza artificiale. È facile da capire e divertente, non ho potuto fare a meno di condividerlo con tutti. 【Fare clic per passare al sito Web

Prefazione

Questo articolo introduce principalmente come distribuire rapidamente MongoDB nel sistema Linux Ubuntu e combina lo strumento di penetrazione intranet cpolar per ottenere l'accesso remoto al database locale sulla rete pubblica.

Il server MongoDB può essere eseguito su piattaforme Linux, Windows e MacOS. Può archiviare tipi di dati relativamente complessi. Il linguaggio di query che supporta è molto potente. Può realizzare quasi la maggior parte delle funzioni simili alle query a tabella singola nei database relazionali dati dell'indice.

È più complicato installare MongoDB direttamente utilizzando il gestore pacchetti, ma è relativamente semplice e veloce installare e distribuire MongoDB utilizzando Docker. Condividiamo con te il processo operativo specifico.

0920c95b762166d005b42f74d46e654

1. Installa Docker

L'ambiente operativo di questo tutorial è il sistema Linux Ubuntu. Prima di iniziare, dobbiamo installare Docker.

Esegui il seguente comando nel terminale:

Aggiungi la 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

Installa il pacchetto Docker

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

Verificare che l'installazione del motore Docker sia andata a buon fine eseguendo l'immagine

sudo docker run hello-world
  • 1

2. Utilizzare Docker per estrarre l'immagine MongoDB

sudo docker pull mongo
  • 1

immagine-20240221134922055

Quindi esegui il comando visualizza immagine:

sudo docker images
  • 1

immagine-20240221135030232

Puoi vedere che l'immagine MongoDB è stata estratta con successo.

3. Crea e avvia il contenitore MongoDB

Dopo aver estratto con successo l'immagine MongoDB, possiamo utilizzare l'immagine per creare ed eseguire un contenitore MongoDB.

Innanzitutto, crea la directory di archiviazione /docker_mount/mongodb/data sul computer host per rendere persistenti i dati MongoDB.

Puoi crearlo utilizzando il seguente comando:

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

Quindi esegui il seguente comando nel terminale per eseguire il contenitore:

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

Descrizione dei parametri:

  • –nome excalidraw: Il nome del contenitore in questo esempio è mongodb, puoi nominarlo tu stesso.
  • **-e MONGO_INITDB_ROOT_USERNAME=root: **Inizializza un utente root con il ruolo root
  • **-e MONGO_INITDB_ROOT_PASSWORD=password: **La password è password, puoi impostarla tu stesso.
  • -p 27017:27017: Mappatura delle porte, mappatura della porta 27017 locale sulla porta 27017 all'interno del container.
  • **-d **: imposta il contenitore in modo che venga sempre eseguito in background.

Quindi esegui il comando seguente per verificare se il contenitore è in esecuzione:

sudo docker ps
  • 1

immagine-20240221153852667

Puoi vedere che il contenitore MongoDB appena creato è in esecuzione.

4. Test di connessione locale

OK, dopo il processo precedente, la distribuzione della finestra mobile di mongodb è completata. Ora possiamo eseguire il test della connessione tramite Navicat.

La versione di Navicat che utilizzo è la 16. Crea una nuova connessione mongodb come mostrato di seguito:

Host inserisci l'IP dell'host, puoi inserirlo nel terminale ip addrcomando per visualizzare.

Compila la porta: 27017

Compilazione verifica: admin

Compila il nome utente e la password con l'account e la password che hai appena impostato all'avvio del contenitore: root e password

immagine-20240221154325747

Quindi fare clic su Prova connessione e puoi vedere che la connessione ha avuto successo!

5. Accedi in remoto al contenitore MongoDB locale dalla rete pubblica

Tuttavia, al momento possiamo connetterci solo localmente al servizio MongoDB che abbiamo appena distribuito utilizzando la finestra mobile. Cosa succede se ci troviamo in un posto diverso e desideriamo accedere in remoto al contenitore MongoDB distribuito localmente ma non disponiamo di un IP pubblico?

Possiamo utilizzare lo strumento di penetrazione intranet cpolar per soddisfare i requisiti di accesso remoto in un ambiente senza IP di rete pubblica.

5.1 Installazione di strumenti di penetrazione intranet

Di seguito sono riportati i passaggi per installare cpolar:

Indirizzo del sito web ufficiale cpolar: https://www.cpolar.com

  • Utilizzare il comando di installazione dello script con un clic
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 1
  • Aggiungere servizi al sistema
sudo systemctl enable cpolar
  • 1
  • Avvia il servizio cpolar
sudo systemctl start cpolar
  • 1

Dopo aver installato con successo cpolar, accedere alla porta Linux 9200 su un browser esterno: [http://server's LAN IP:9200] Accedi utilizzando l'account cpolar Dopo aver effettuato l'accesso, è possibile visualizzare l'interfaccia di configurazione web cpolar è sul web Basta configurare l'interfaccia di gestione.

immagine-20230831171159175

5.2 Creare un indirizzo di rete pubblica per la connessione remota

Dopo aver effettuato l'accesso all'interfaccia di gestione dell'interfaccia utente web cpolar, fare clic su Gestione tunnel - Crea tunnel nel dashboard di sinistra:

  • Nome del tunnel: può essere personalizzato. Fare attenzione a non duplicare il nome del tunnel esistente. Questo esempio utilizza: mongo1
  • Protocollo: tcp
  • Indirizzo locale: 27017
  • Tipo di nome di dominio: nome di dominio casuale
  • Regione: seleziona Cina VIP

Clic创建

immagine-20240221160200575

Quindi apri l'elenco dei tunnel online, visualizza e copia l'indirizzo pubblico del protocollo tcp,注意tcp://无需复制

immagine-20240221160228682

Apri navicat o altri strumenti di connessione, inserisci l'indirizzo della rete pubblica creato nel nostro cpolar sopra nell'opzione host e il numero di porta corrisponde al numero di porta della rete pubblica generato dopo i due punti nell'indirizzo.

immagine-20240221160051207

Quindi fare clic su Prova connessione e puoi vedere che la connessione ha avuto successo!

riepilogo

Per comodità di dimostrazione, abbiamo utilizzato il tunnel dell'indirizzo di rete pubblico TCP generato da cpolar nel processo operativo sopra riportato e il suo indirizzo di rete pubblico è stato generato in modo casuale.

Il vantaggio di questo indirizzo casuale è che viene stabilito rapidamente e può essere utilizzato immediatamente. Tuttavia, lo svantaggio è che l'URL viene generato in modo casuale e questo indirizzo cambierà in modo casuale entro 24 ore, rendendolo più adatto per un uso temporaneo.

Se hai necessità a lungo termine di accesso remoto al servizio MongoDB locale, ma non vuoi riconfigurare l'indirizzo della rete pubblica ogni giorno e vuoi anche che l'indirizzo sia bello e facile da ricordare, allora ti consiglio di scegliere di utilizzare un indirizzo TCP fisso per l'accesso remoto.

5.3 Accesso remoto tramite indirizzo TCP fisso

LoginBackend del sito web ufficiale cpolar, fare clic su Prenota a sinistra per trovare l'indirizzo TCP riservato. Riserviamo un indirizzo TCP fisso per la connessione remota al database MongoDB.

  • Regione: seleziona Cina VIP
  • Descrizione: Appunti, personalizzabili

Clic保留

immagine-20240221160835462

Dopo che l'indirizzo è stato prenotato con successo, il sistema genererà il corrispondente indirizzo pubblico fisso e lo copierà.

In questo esempio, l'indirizzo è: 6.tcp.vip.cpolar.cn:13644

Quindi accedi dal tuo browserLinux局域网ip地址+:9200端口, accedere all'interfaccia di gestione dell'interfaccia utente Web cpolar.

Fai clic su Gestione tunnel - Elenco tunnel sulla dashboard di sinistra, trova il tunnel del database remoto che abbiamo creato in precedenza e fai clic su编辑

immagine-20240221161016132

Modificare le informazioni sul tunnel e configurare l'indirizzo TCP fisso riservato con successo nel tunnel.

  • Tipo di porta: modificato in porta TCP fissa
  • Indirizzo TCP riservato: inserisci l'indirizzo prenotato con successo dal sito ufficiale,

Clic更新

immagine-20240221161130133

Dopo che il tunnel è stato aggiornato con successo, fai clic sullo stato nel dashboard di sinistra - Elenco tunnel online e puoi vedere che l'indirizzo della rete pubblica è stato aggiornato a un indirizzo TCP fisso.

immagine-20240221161207657

Apri lo strumento di connessione, inserisci l'indirizzo TCP fisso riservato dal sito Web ufficiale, la porta è il numero di porta della rete pubblica corrispondente dopo l'indirizzo e fai clic su Test connessione.

immagine-20240221161332281
Una connessione riuscita indica successo. Ora l'indirizzo della rete pubblica non cambierà più in modo casuale finché il tunnel rimane online, possiamo connetterci in remoto al database MongoDB nella LAN tramite questo indirizzo di rete pubblica.

Quanto sopra è l'intero processo su come utilizzare Docker per distribuire un contenitore MongoDB sul sistema Ubuntu e combinarlo con lo strumento di penetrazione intranet cpolar per ottenere l'accesso remoto ai servizi locali sull'intranet dalla rete pubblica. Grazie per la visione.