Как подключиться к БД в частной сети с локальной машины?

Как подключиться к БД в частной сети с локальной машины?

В настоящее время у меня есть образ docker, работающий под управлением Alpine Linux внутри частной сети. У меня есть root-доступ к этому образу docker.

В той же частной сети есть экземпляр базы данных. Только системы в той же сети могут получить доступ к базе данных (Пример: вышеупомянутый образ docker)

Сейчас, чтобы отладить что-то внутри базы данных, мне пришлось подключиться по SSH к образу docker, а затем запустить инструменты командной строки изнутри этого образа docker. Это довольно сложно

Есть ли способ подключиться к этой базе данных, используя инструменты разработки на моем локальном ПК? Я не уверен, является ли это термином переадресации портов или проксирования

решение1

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

ssh user@docker

Тебе нужно -L:

ssh -L port1:server:port2 user@docker

где server:port2адрес и порт базы данных, как видно из контейнера Docker (этот адрес будет разрешентам).

Ваш локальный sshбудет прослушивать локально на порту TCP port1. Вы выбираете порт.

Теперь подключитесь с локального компьютера к localhost:port1(или 127.0.0.1:port1), и соединение будет достигнуто server:port2из docker. serverМашина увидит, что оно исходит из docker. Это называется «локальная переадресация портов».

Таким образом, локальный инструмент может получить доступ к удаленной базе данных. Инструмент должен подключиться к localhost:port1.

Примечания:

  • Это работает только для TCP,не UDP.
  • Другие машины в вашей локальной сети не смогут использовать ваш локальный компьютер в качестве ретранслятора для доступа к базе данных. Вероятно, это то, что вам нужно. Если нет, то проверьте этот вопрос:Могу ли я использовать SSH для обслуживания туннелированного ресурса в локальной сети?
  • Использовать ssh -N …для создания туннелябез выполнения удаленной команды.
  • Используйте autosshдля автоматизации этого процесса.
  • Порты с номерами ниже 1024 являются привилегированными. Как обычный пользователь вы не можете привязаться к такому порту. Выбирайте port1соответственно.
  • Настройка AllowTcpForwardingна sshd_configсервере SSH ( dockerв вашем случае) может быть использована для запрета переадресации портов. По умолчанию разрешено, так что, вероятно, это будет работать из коробки.

Связанный контент