Как не крути, а бывают такие ситуации, когда надо залезть на свой сервачок через злобное прокси, которое режет, например, ssh трафик. Также бывают такие ситуации, когда некоторые программы не поддерживают работу через прокси. Это тоже беда. Для себя я нашел 2 запасных способа, которые позволяют решить указанные выше неудобства.

Когда-то я отчаялся подключиться к домашнему серверу через прокси, которое беспощадно режет ssh трафик. Пробовал хитрые схемы с переносом sshd на другой порт, надеясь, что закрыт просто 22-ой. Но оказалось дела обстоят сложнее.

Httptunnel

Сначала в своей практике столкнулся с httptunnel. Клиент/серверная штука, позволяющая пустить необходимый тебе трафик поверх http. Это первое решение, с помощью которого мне удалось достучаться до домашнего сервака по ssh из-за прокси. Неудобство данной утилиты состоит в том, что необходимо предварительно установить серверную часть на машину, до которой хотим добраться. И запустить например так:

hts -F localhost:22 8080

Далее на своей рабочей машине запускаем клиентскую часть, дабы создать туннель:

htc -P <proxy.server.com>:<port> -F 8022 -w <home.server.me>:8080

После этих телодвижений можно подключаться к локальному порту 8022 с помощью ssh дабы добраться до своего сервака:

ssh -p 8022 user@localhost

Для Gentoo я в свое время добавил стартовый скрипт для hts в свой репозиторий.

Proxychains

Недавно случайно наткнулся на proxychains. Удивительная штука. Главная идея подменить socket вызовы так, чтобы они шли через указанные в конфиге прокси. Как подробно это работает не разбирался, но результат меня очень порадовал. Добавляем в конфиг необходимую информацию:

[ProxyList]
http    <proxy_ip>      <proxy_port>
https   <proxy_ip>      <proxy_port>

И теперь можем спокойно подключаться к своему серверу:

proxychain4 ssh <home.server.me>

Также успешно через proxychain4 запускаю десктопную версию Viber'а, которая не поддерживает работу с proxy:

proxychain4 </path/to/Viber>

Указанные решения регулярно использую на Mac'е. В основном proxychains. Все устанавливаю через brew. В любом линуксе они тоже должны быть доступны и успешно работать. Было бы здорово узнать, какие решения есть еще. Ну и надеюсь эта информация будет кому-то полезна. Сам долго искал эти утилиты. Лучше конечно, когда на вашем пути нету прокси.



Comments

comments powered by Disqus