Задать вопрос
Driver86
@Driver86
Немодератор toster.ru

Как технически работает проксирование через ssh?

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

Это понятно. Но как сервер-то получает данные с запрашиваемого ресурса в интернете? Т.е. ssh-демон на сервере, получая по "туннелю" запрос от клиента, затем, по аналогии с curl, или каким-нибудь wget, делает этот запрос к запрашиваемому ресурсу и возвращает его ответ клиенту? Так что ли? Если да, то зачем такой функционал ssh-демону, который был создан задолго до появления РКН и пр.?
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Технически — точно так же и все остальные сетевые протоколы. Вы бы для начала ознакомились бы хотя бы просто с расшифровкой названия протокола:

SSH (англ. Secure Shell — «безопасная оболочка»[1]) — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли.

https://ru.wikipedia.org/wiki/SSH

Использовать SSH для обхода блокировок — не самая удачная идея, т.к. он тоже легко определяется средствами DPI, а некоторые провайдеры даже ограничивают скорость его работы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@Everything_is_bad
Если да, то зачем такой функционал ssh-демону, который был создан задолго до появления РКН и пр.?
какое же рукалицо, ну откуда вы такие, почему вы вдруг думаете, что туннели это про РКН? До него было дофига проблем, например тот же NAT, да даже пресловутый проброс портов, можно через него делать. А цепочка туннелей ssh появилась очень давно, для решения кучи других проблем, почему ты просто не способен даже это погуглить?
Ответ написан
@Drno
причем тут ркн, если надо было передавать файлы, кроме командной строки)
Ответ написан
Комментировать
@rPman
Работает очень 'просто'.

ssh-клиент подключается к ssh-серверу (авторизация и т.п.), затем приложение по протоколу socks proxy подключается к ssh-клиенту, ssh-клиент шлет по своему птичьему протоколу информацию по уже открытому каналу до сервера, сервер создает сокет и отправляет/принимает данные до цели (и поддерживает его, если нужно) и всю коммуникацию перенаправляет к приложению ( приложение <-> ssh-клиент <-> ssh-сервер <-> цель, тут между каждым узлом открытое сокет подключение), добавив своих заголовков и разделяя пакеты по необходимости.
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
по аналогии с curl, или каким-нибудь wget,

Неправильно. SSH-сервер не имеет понятия, на каком птичьем языке говорит тот, кто использует порт. Он тупо туннелирует пакеты как массив байт. Единственная "бонусная" функциональность - это SOCKS5 прокси в SSH-клиенте для динамического проброса портов, а для более статического проброса (в любую сторону) и это не используется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы