Я столкнулся с несколькими приложениями, которые не поддерживают SSH-туннелирование, и это стало проблемой при работе за пределами нашей площадки с наших серверов.
У меня здесь сидит Raspberry Pi, который никогда не выключается, и мне было интересно, можно ли маршрутизировать определенные порты, такие как 9200 (Elasticsearch) и 3306 (mysql), через туннель SSH на удаленные серверы?
Мне удалось установить соединение с помощью этой команды на Raspberry Pi:
ssh -A -t -N -L 9200:localhost:9200 user@remoteserver
Но он отказывается пересылать пакеты, отправленные с моего компьютера. Это работает, только если я отправляю пакеты как localhost
на Raspberry Pi.
Есть ли способ перенаправить пакеты и сделать это прокси-сервером ssh-туннеля?
-g Разрешает удаленным хостам подключаться к локальным перенаправленным портам
Добавить -g
а затем подключитесь со своего компьютера к Raspberry Pi.
ИЛИ
Используйте ssh в качестве прокси-сервера SOCKS с -D
переключатель. Например. ssh -t -N -D 9000 user@remoteserver
Теперь у вас есть прокси-сервер socks на порту 9000.
Запускайте программы с оболочкой socks, например tsocks
. Каждое TCP-соединение будет проходить через прокси-сервер socks и завершаться на удаленном сервере.
Для HTTP на Raspberry Pi установите HTTP-прокси, например Polipo.
Пример конфигурации Polipo:
proxyPort = 8118
socksParentProxy = "localhost:9000"
socksProxyType = socks5
Настройте свой веб-браузер для использования Raspberry Pi в качестве прокси-сервера, http: // rpi: 8118