Пример:
Я пытаюсь использовать PuTTy для создания SSH-туннеля от моего ноутбука к моему серверу (для целей этого примера MyServer.com:22). Порт 22 включен на маршрутизаторе между MyServer.com и Интернетом.
MyServer.com запускает прокси-сервер Privoxy HTTP на порту по умолчанию 8118. Порт 8118 не включен на маршрутизаторе.
Когда я создаю туннель из локального порта на моем ноутбуке, скажем 3500, на MyServer.com:22, а затем настраиваю свой веб-браузер для использования localhost: 3500 в качестве прокси, я не получаю веб-страницы, отображаемые в моем веб-браузере - вместо этого я получаю строку текста из Open SSH, описывающую номер версии программного обеспечения в веб-браузере.
Я видел (и не до конца понял) ссылки на SOCKS и ключевое слово ProxyCommand в файле sshd_config OpenSSH. Могу ли я использовать один / оба из них для создания туннеля к MyServer.com:22, который обслуживает веб-страницы, или совершенно необходимо, чтобы прокси HTTP на MyServer.com:8118 был доступен в Интернете?
Это потому, что вы используете технику переадресации локального порта:
$ ssh -L 3500:yourserver.com:22 user@yourserver.com
Эта команда выделяет сокет для прослушивания порта 3500 на вашем ноутбуке. И когда вы настраиваете браузер для использования localhost:3500
в качестве прокси-сервера веб-трафик пересылается по защищенному каналу, и устанавливается соединение с yourserver.com:22
, а на самом деле ты telnet
подключившись к вашему серверу, вы получаете версию SSH:
SSH-2.0-OpenSSH_4.3
Protocol mismatch.
Возможно, вы захотите вместо этого использовать динамическую переадресацию портов:
$ ssh -D 3500 user@yourserver.com
Этот метод использует протокол приложения, чтобы определить, куда подключиться с вашего сервера.
Не забудьте настроить веб-браузер для использования SOCKS Host, не HTTP-прокси.