2

Возможно, на это уже дан ответ, и мое беспокойство мешает мне понять ответы ...

Я работаю удаленно. У меня есть локальная сборка, на которой я запускаю 127.0.0.1:8080. Эта сборка должна получать данные из удаленной БД. Удаленная БД позволяет подключаться только определенным IP-адресам. У меня есть другой сервер, который находится в белом списке. Итак, мне нужно настроить туннель для моего белого списка сервера, чтобы получить данные БД и отправить эти данные обратно в мою локальную сборку.

Я могу настроить туннель, чтобы весь мой веб-трафик проходил через мой белый список, но затем я больше не могу получить доступ к своей локальной сборке. Или я могу запустить свою локальную сборку, но не могу ее использовать, потому что она думает, что сервер отключен.

Мне удобно работать с терминалом. Я просто не уверен, как настроить его так, чтобы я получал только информацию о сервере (и подключал ее к своей локальной сборке), а не весь веб-трафик.

1 ответ1

0

Я могу помочь вам подключить вашу локальную сборку (Server-Software-Application?) на локальный порт, который является туннелем для вашего сервера базы данных.

Вы должны иметь возможность подключиться к вашей локальной сборке через браузер через порт 8080, в то время как ваше серверное программное приложение подключается к серверу базы данных, который может быть достигнут через ssh-туннель через сервер из белого списка.

Если это то, что вы хотите, я могу помочь вам со следующим ...

Я предполагаю, что вы можете подключиться через ssh из вашей локальной сборки к вашему белому серверу и что вы можете настроить соединение с вашей базой данных в вашей локальной сборке.

  1. подключиться к вашему белому серверу
  2. настроить туннель от сервера из белого списка до сервера базы данных
  3. настроить локальную сборку для подключения к localhost

Шаг 1. + 2. можно сделать одной командой cli:

ssh -L <any-number-gt-1024>:<database-server-ip>:<database-server-port> <your-username>@<whitelisted-server>

Пример:

Для сервера базы данных PostgreSQL, который принимает соединения через порт 5432 с ip 192.168.1.20, и с сервером белого списка с ip 192.168.1.30 вы можете настроить туннель следующим образом:

ssh -L 1155:192.168.1.20:5432 heino@192.168.1.30

Если это соединение ssh установлено, вы получили туннель от вашей локальной сборки (откуда инициализируется соединение ssh) к серверу базы данных через сервер из белого списка. Вы можете общаться с базой данных, подключившись к «localhost:1155»

telnet localhost 1155

Теперь вы можете настроить localbuild для подключения к localhost через порт 1155 для подключения к серверу базы данных.

Explination

Вы подключаетесь к вашему белому серверу

ssh heino@192.168.1.30

Чтобы настроить туннель, который доступен на локальном хосте (это параметр -L) и подключается к серверу базы данных через белый список, вам необходимо указать имя / ip и порт, по которому сервер базы данных может быть доступен с белого списка. в параметрах для подключения по ssh. Это также работает с DNS-именами или записями / etc / hosts.

-L 1155:<DB-Server>:<DB-Port>

PostgreSQL прослушивает порт 5432 по умолчанию. MySQL: 3306 ...

Шаг 3:

сконфигурируйте ваше серверное программное приложение для подключения к localhost:1155 (или к любому выбранному вами порту) и используйте учетную запись db-login-account с вашего белого списка сервера.

Заметки

  • Вы должны использовать порт на локальном хосте, который не используется. Но вы должны быть предупреждены ssh, если порт уже используется.
  • позаботьтесь о своих командах sql, которые вы отправляете в БД (например, DROP и TRUNCATE). Вы отправляете эти команды не на вашу локальную базу данных, а на сервер базы данных, к которому вы обращаетесь через туннель ssh! Это не ваша локальная база данных сборки, если туннель запущен и работает.
  • Эта Tunnel-Setup также работает со всеми другими доступными портами. Полезно для прослушивания только локального хоста Tomcat-Admin-Manager-App и т.д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .