У меня есть SSH-доступ к iSeries (база данных DB2) через брандмауэр. Я пытаюсь сделать запросы к базе данных на машине с помощью ODBC.
Я нашел несколько таблиц, поясняющих, какие порты используются протоколом, но не знаю, что делать с этой информацией. Есть ли способ перенаправить трафик на порты, используемые odbc, если у меня есть ssh-доступ к машине?
http://search400.techtarget.com/answer/What-TCP-ports-are-used-by-ODBC-to-connect-to-the-DB2-400
Итак, предполагая, что у вас есть клиент базы данных, работающий на вашем ПК, вы можете создать туннель ssh, который устанавливает порты на вашем ПК для отображения портов, которые работают на сервере базы данных. Затем направьте своего клиента запросить ваш локальный хост. Вот как настроить туннель для одного из портов, скажем, 8471:
ssh -L 8471: локальный: 8471
В этом случае "localhost" относится к серверу, а не к вашему ПК. Вы можете заменить localhost на IP-адрес сервера, если хотите.
Если после настройки этого туннеля вы подключитесь к порту 8471 на своем ПК через Telnet, он подключит вас к порту сервера базы данных 8471.
Вам придется повторить это для каждого из портов в списке.
Вы можете столкнуться с проблемой, если серверу базы данных требуется собственное имя хоста в строке подключения. Если это так, вам нужно будет обмануть вашего клиента, заставив его думать, что имя хоста ПК совпадает с именем хоста сервера db.