"SOCKS5 прокси" и "SSH туннелирование" - это одно и то же?
- Я знаю, что могу запустить прокси socks5
ssh -D some-port-number remote-server-url
, - Я знаю, что могу настроить свои приложения (например, Firefox) на использование прокси-сервера socks5 (часто указав что-то вроде
socks5://localhost:that-port-number-metioned-above
). - Я слышу, как люди в Интернете называют эту технику "socks5 proxy" или "ssh tunneling"; иногда я даже вижу людей, говорящих об "обратном туннелировании ssh".
- Но насколько я знаю, socks5 и ssh - абсолютно разные протоколы, единственное сходство между ними состоит в том, что они оба имеют архитектуру сервер-клиент. Чтение определений вики и поиск этих понятий не прояснили мою путаницу.
Так как же эти понятия - SOCKS5 proxying
, ssh tunneling
, reverse ssh tunneling
связаны друг с другом?
1 ответ
То, что вы описываете, является прокси SOCKS. Это автономный протокол, используемый различными инструментами. Какие openssh
делает это для туннелирования этого протокола в зашифрованном виде от одной точки к другой. Но, точнее, это называется переадресацией TCP-порта (он перенаправляет один порт от клиента через защищенный туннель к серверу).
Есть и другие возможности использовать переадресацию TCP-порта в openssh
с помощью -L
а также -R
коммутаторы, которые имеют правильное название Local ("переносит" удаленный сервис на локальный хост) и Remove (делает локальный сервис доступным с удаленного хоста).
Как видите, есть сходства, но они реализованы по-разному. Все они перенаправляют порты TCP (через безопасный туннель). Динамический (-D
) особенное, потому что сервер должен понимать протокол SOCKS.