23 September 2009

Организация HTTP-туннеля на примере утилит для работы с MySQL

System administration
Если вы не знаете, что такое HTTP-туннель, для управления MySQL предпочитаете десктопное приложение вместо веб-интерфейса и выполняется одно из следующих условий:

  • у вас есть возможность выхода во внешний мир только через HTTP-прокси
  • в вашей сети установлено ограничение на возможность работы только с 80 портом
  • хостинг-провайдером разрешено работать с базой только через локалхост


то эта небольшая заметка для вас.

Собственно, предназначение HTTP-туннелей более широкое, в том числе, в целях безопасности. Схема в общих чертах выглядит следующим образом1:



Рассмотрим организацию таких соединений на примере HeidiSQL (или любого другого приложения):
  1. Скачиваем и устанавливаем (выбирайте полную установку) GNU HTTPTunnel2.
  2. Выкачиваем серверную часть на хостинг (папка phpserver).
  3. Открываем админку _http://domain.com/tunnel/admin.php и настраиваем авторизацию, логи и другие опции. Можно просто вручную изменить файл cfg.php. Для авторизации еще необходимо переименовать файл htaccess.txt в .htaccess
  4. Запускаем клиент HTTPTunnelPath\client\httptunnel_client.exe
  5. Открываем админку _http://localhost:1079/ и настраиваем портмаппинг. Добавляем например:

    3000 -> your_mysql_server.com:3306


    Т.е. все запросы на 3000 порт локалхоста будут переадресованы через HTTP-туннель на порт 3306 вашего сервера баз данных.
  6. На вкладке Tunnel Server указываем URL к серверной части туннеля, данные авторизации и прокси (если необходимо).
  7. Теперь в HeidiSQL вместо your_mysql_server.com:3306 указываем localhost:3000. Остальные настройки вам должны быть известны.


Если разработчики позаботились о возможности соединения через HTTP-туннель, то организовать его еще проще. Возьмем, пример, dbForge Studio for MySQL:

  1. необходимо выкачать скрипт tunnel.php (который является серверной частью HTTP-туннеля) на сервер хостинг-провайдера. Советую ограничить доступ к скрипту на сервере с помощью .htaccess.
  2. на вкладке «HTTP» вашего соединения указать URL скрипта tunnel.php и другие необходимые настройки: логин, пароль (если доступ к скрипту ограничен) и прокси (если соединение осуществляется через него). Остальные настройки вам должны быть известны.


  1. Иллюстрация взята из сайта HTTPTunnel
  2. Существует также бесплатное для некоммерческого использования решение с готовыми собственными серверами и минимумом настроек HTTP-Tunnel
Tags:HTTP-туннельMySQLHTTP-прокси
Hubs: System administration
+15
20.1k 48
Comments 14
Popular right now
Тренажер product-менеджера
December 3, 202028,900 ₽SkillFactory
SEO-специалист
December 7, 202064,900 ₽Нетология
Python для работы с данными
December 7, 202031,500 ₽Нетология
iOS-разработчик с нуля
December 7, 202070,740 ₽Нетология