"SOCKS5 прокси" и "SSH туннелирование" - это одно и то же?

  1. Я знаю, что могу запустить прокси socks5 ssh -D some-port-number remote-server-url,
  2. Я знаю, что могу настроить свои приложения (например, Firefox) на использование прокси-сервера socks5 (часто указав что-то вроде socks5://localhost:that-port-number-metioned-above).
  3. Я слышу, как люди в Интернете называют эту технику "socks5 proxy" или "ssh tunneling"; иногда я даже вижу людей, говорящих об "обратном туннелировании ssh".
  4. Но насколько я знаю, socks5 и ssh - абсолютно разные протоколы, единственное сходство между ними состоит в том, что они оба имеют архитектуру сервер-клиент. Чтение определений вики и поиск этих понятий не прояснили мою путаницу.

Так как же эти понятия - SOCKS5 proxying, ssh tunneling, reverse ssh tunneling связаны друг с другом?

1 ответ

Решение

То, что вы описываете, является прокси SOCKS. Это автономный протокол, используемый различными инструментами. Какие openssh делает это для туннелирования этого протокола в зашифрованном виде от одной точки к другой. Но, точнее, это называется переадресацией TCP-порта (он перенаправляет один порт от клиента через защищенный туннель к серверу).

Есть и другие возможности использовать переадресацию TCP-порта в openssh с помощью -L а также -R коммутаторы, которые имеют правильное название Local ("переносит" удаленный сервис на локальный хост) и Remove (делает локальный сервис доступным с удаленного хоста).

Как видите, есть сходства, но они реализованы по-разному. Все они перенаправляют порты TCP (через безопасный туннель). Динамический (-D) особенное, потому что сервер должен понимать протокол SOCKS.

Другие вопросы по тегам