Обмен технологиями

Система Linux развертывает базу данных документов с открытым исходным кодом MongoDB и реализует удаленный доступ без IP-адреса общедоступной сети.

2024-07-12

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


💡 рекомендовать

Несколько дней назад я обнаружил гигантский веб-сайт по обучению искусственному интеллекту. Он простой и юмористический, и я не мог не поделиться им со всеми. 【Нажмите, чтобы перейти на сайт

Предисловие

В этой статье в основном рассказывается, как быстро развернуть MongoDB в системе Linux Ubuntu, а также сочетается инструмент проникновения в интрасеть cpolar для обеспечения удаленного доступа к локальной базе данных через общедоступную сеть.

Сервер MongoDB может работать на платформах Linux, Windows и MacOS. Он может хранить относительно сложные типы данных. Поддерживаемый им язык запросов очень мощный. Он может практически реализовать большинство функций, аналогичных однотабличным запросам в реляционных базах данных. индексные данные.

Установить MongoDB напрямую с помощью менеджера пакетов сложнее, но установить и развернуть MongoDB с помощью Docker относительно просто и быстро. Давайте поделимся с вами конкретным процессом работы.

0920c95b762166d005b42f74d46e654

1. Установите Докер

Операционная среда этого руководства — система 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.

Сначала создайте каталог хранения /docker_mount/mongodb/data на хост-компьютере для хранения данных MongoDB.

Вы можете создать его с помощью следующей команды:

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

Описание параметра:

  • –имя excalidraw: Имя контейнера в этом примере — mongodb, вы можете назвать его самостоятельно.
  • **-e MONGO_INITDB_ROOT_USERNAME=root: **Инициализировать пользователя root с ролью root.
  • **-e MONGO_INITDB_ROOT_PASSWORD=пароль: **Пароль — это пароль, вы можете установить его самостоятельно.
  • -п 27017:27017: Сопоставление портов, сопоставление локального порта 27017 с портом 27017 внутри контейнера.
  • **-d **: настроить контейнер на постоянную работу в фоновом режиме.

Затем выполните следующую команду, чтобы проверить, запущен ли контейнер:

sudo docker ps
  • 1

изображение-20240221153852667

Вы можете видеть, что только что созданный контейнер MongoDB работает.

4. Проверка локального соединения

Хорошо, после описанного выше процесса развертывание mongodb в докере завершено. Теперь мы можем выполнить тестирование соединения через Navicat.

Я использую версию Navicat 16. Создайте новое соединение mongodb, как показано ниже:

Хост заполните IP хоста, вы можете ввести его в терминале ip addrкоманда для просмотра.

Укажите порт: 27017.

Заполните для подтверждения: администратор

Введите имя пользователя и пароль с учетной записью и паролем, которые вы только что установили при запуске контейнера: root и пароль.

изображение-20240221154325747

Затем нажмите «Проверить соединение», и вы увидите, что соединение установлено успешно!

5. Удаленный доступ к локальному контейнеру MongoDB из общедоступной сети.

Однако в настоящее время мы можем подключаться только локально к только что развернутому сервису MongoDB с помощью Docker. Что, если мы находимся в другом месте и хотим получить удаленный доступ к локально развернутому контейнеру 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://IP-адрес локальной сети сервера: 9200]. Войдите в систему под своей учетной записью cpolar. После входа вы увидите веб-интерфейс конфигурации cpolar. в Интернете Просто настройте интерфейс управления.

изображение-20230831171159175

5.2 Создайте адрес общедоступной сети для удаленного подключения

После входа в интерфейс управления веб-интерфейсом cpolar нажмите «Управление туннелем» — «Создать туннель» на левой панели управления:

  • Имя туннеля: его можно настроить. Будьте осторожны, не дублируйте существующее имя туннеля. В этом примере используется: mongo1.
  • Протокол: TCP
  • Местный адрес: 27017
  • Тип доменного имени: случайное доменное имя.
  • Регион: Выберите Китай VIP

Нажмите创建

изображение-20240221160200575

Затем откройте список онлайн-туннелей, просмотрите и скопируйте публичный адрес протокола TCP,注意tcp://无需复制

изображение-20240221160228682

Откройте navicat или другие инструменты подключения, введите адрес общедоступной сети, созданный в нашем cpolar выше, в опции хоста, а номер порта соответствует номеру порта общедоступной сети, сгенерированному после двоеточия в адресе.

изображение-20240221160051207

Затем нажмите «Проверить соединение», и вы увидите, что соединение установлено успешно!

краткое содержание

Для удобства демонстрации мы использовали туннель адресов общедоступной сети TCP, сгенерированный cpolar в описанном выше процессе операции, и его адрес общедоступной сети был сгенерирован случайным образом.

Преимущество этого случайного адреса в том, что он устанавливается быстро и может быть немедленно использован. Однако его недостатком является то, что URL-адрес генерируется случайным образом и этот адрес будет меняться случайным образом в течение 24 часов, что делает его более подходящим для временного использования.

Если у вас есть долгосрочная потребность в удаленном доступе к локальному сервису MongoDB, но вы не хотите каждый день перенастраивать адрес общедоступной сети, а также хотите, чтобы адрес был красивым и легко запоминающимся, то я рекомендую вам использовать фиксированный TCP-адрес для удаленного доступа.

5.3 Удаленный доступ с использованием фиксированного TCP-адреса

АвторизоватьсяСерверная часть официального сайта cpolar, нажмите «Зарезервировать» слева, чтобы найти зарезервированный TCP-адрес. Давайте зарезервируем фиксированный TCP-адрес для удаленного подключения к базе данных MongoDB.

  • Регион: Выберите Китай vip
  • Описание: Заметки, настраиваемые.

Нажмите保留

изображение-20240221160835462

После того, как адрес будет успешно зарезервирован, система сгенерирует соответствующий фиксированный публичный адрес и скопирует его.

В этом примере адрес: 6.tcp.vip.cpolar.cn:13644.

Затем откройте его в своем браузереLinux局域网ip地址+:9200端口, войдите в интерфейс управления веб-интерфейсом cpolar.

Нажмите «Управление туннелями» — «Список туннелей» на левой панели управления, найдите туннель удаленной базы данных, который мы создали выше, и нажмите编辑

изображение-20240221161016132

Измените информацию туннеля и настройте в туннеле успешно зарезервированный фиксированный адрес TCP.

  • Тип порта: изменен на фиксированный TCP-порт.
  • Зарезервированный адрес TCP: введите адрес, успешно зарезервированный официальным сайтом,

Нажмите更新

изображение-20240221161130133

После успешного обновления туннеля щелкните статус на левой панели мониторинга — Список онлайн-туннелей, и вы увидите, что адрес общедоступной сети был обновлен до фиксированного TCP-адреса.

изображение-20240221161207657

Откройте инструмент подключения, введите фиксированный TCP-адрес, зарезервированный официальным сайтом, порт — это соответствующий номер порта общедоступной сети после адреса, и нажмите «Проверить соединение».

изображение-20240221161332281
Успешное соединение означает успех. Теперь адрес общедоступной сети больше не будет меняться случайным образом. Пока туннель остается в сети, мы можем удаленно подключаться к базе данных MongoDB в локальной сети через этот адрес общедоступной сети.

Выше описан весь процесс использования Docker для развертывания контейнера MongoDB в системе Ubuntu и объединения его с инструментом проникновения в интрасеть cpolar для обеспечения удаленного доступа к локальным службам в интрасети из общедоступной сети. Спасибо за просмотр.