Страницы

Поиск по вопросам

понедельник, 8 октября 2018 г.

Как проксировать http[s] через ssh-туннель?

иногда возникает необходимость работать из браузера (например, firefox) как-будто бы из другой точки сети (куда есть доступ по протоколу ssh).

например, нужно работать с веб-сайтом, который доступен только в локальной сети, из внешнего мира. при этом есть ssh-доступ к машине в этой локальной сети. или при доступе к веб-сайту требуется «прикинуться» работающим из другой страны (и есть ssh-доступ к серверу в этой стране). или в локальной сети вообще нет доступа в интернет, но есть ssh-доступ к машине, на которой соединения с интернетом разрешены.
как всё это осуществить? как настроить браузер? как запускать ssh-клиент?


Ответ

предположим, что вы подключаетесь к некоему серверу по протоколу ssh такой командой:
$ ssh user@server
тогда вам потребуется:
запустить ssh-клиент с опцией -D порт, тогда программа ssh будет слушать указанный порт на локальном компьютере и (пока работает) все обращения к этому порту по протоколу socks будет ретранслировать на сервер:
$ ssh -D 1122 user@server
номер порта здесь произвольный, но, конечно, должен быть больше 1024 и меньше максимального номера порта (скорее всего, в вашей системе это 65536), и, конечно, не должен использоваться каким-нибудь другим локальным процессом. в браузере firefox на странице about:config измените следующие параметры:
network.proxy.type = 1 (0 — отключить proxy) network.proxy.socks = 127.0.0.1 network.proxy.socks_port = 1122 (тот порт, что вы указали выше) network.proxy.socks_remote_dns = true (dns-запросы тоже будут отправляться через туннель)
вышеперечисленные настройки можно сделать и с помощью «мышки» — на странице "preferences": "advanced" → "network" → "settings".

для отключения проксирования достаточно поменять один параметр — network.proxy.type = 0
вероятно, достаточно удобным будет завести новый профиль в firefox с этими настройками, чтобы они не мешали «обычной» работе. запустить firefox, чтобы он показал диалог выбора профилей, можно примерно так:
$ firefox --no-remote -P
можно и сразу запускать нужный профиль. например, если вы назвали профиль proxy
$ firefox --no-remote -P proxy

скорее всего, подобные настройки можно осуществить и в других браузерах. обратитесь к документации вашего браузера по поводу использования socks-proxy

Комментариев нет:

Отправить комментарий