Есть ли недостатки у SSH-туннелирования?

Есть ли недостатки у SSH-туннелирования?

Недавно я «купил» VPS, который хочу использовать в качестве прокси-сервера, чтобы иметь возможность пользоваться некоторыми сайтами и т. п., к которым я не могу получить доступ из Германии.

Поскольку мне было еще лень настраивать Squid и OpenVPN (что, как я сейчас считаю, необходимо), я использую ssh-туннелирование.

Теперь, спустя пару недель, я задался вопросом: а не является ли ssh-туннелирование просто прекрасным решением или — и это мой вопрос — есть ли какие-то оговорки/против/недостатки, которые мне нужно иметь в виду?

решение1

Проблема производительности возникает при туннелировании TCP через TCP, поскольку у вас есть два уровня, выполняющих адаптивные коррекции (медленный старт, предотвращение перегрузки, быстрая повторная передача, см.RFC2001).

Не зная друг о друге, они будут испытывать большие трудности, если произойдет потеря внешней связи.

Эта страницаподробно описывает это явление.

Вместо того, чтобы зацикливаться на проблеме TCP через TCP, взгляните нашаттлчто предотвращает это.
Посмотрите раздел под названием "Теория Операции" для более подробной информации об этой ситуации.

решение2

Единственное, что приходит мне на ум, это производительность. Но это действительно зависит от того, что именно вы туннелируете.

решение3

Обычно я обнаружил, что задержка увеличивается, но пропускная способность в порядке (90%) от нормы с туннелированием SSH. Обязательно установите ServerAliveIntervalпредотвращение отключений и оберните его в скрипт, чтобы продолжать перезапускать туннель при сбое.

Главный недостаток в том, что это туннель для каждого порта TCP, если только вы не используете SOCKS. SOCKS хорош, но задержка, похоже, увеличивается еще больше, и, конечно, не каждый клиент поддерживает SOCKS.

Вам может потребоваться запустить GatewayPortsна клиенте или сервере SSH, чтобы разрешить другим подключаться через ваш туннель. На сервере для этого требуется root-доступ к sshd_config.

Основная проблема с производительностью (как отмечают другие) заключается в том, что ненадежные соединения, скорее всего, не будут хорошо работать при таком подходе, поскольку алгоритмы TCP не очень хорошо реагируют на инкапсуляцию.

Тем не менее, SSH, похоже, в большинстве случаев «делает все правильно».

решение4

При туннелировании SSH не должно быть проблем с TCP-over-TCP.

ssh декапсулирует и повторно инкапсулирует TCP, поэтому у вас не возникнет классических проблем TCP-over-TCP

Ссылка:

https://en.wikipedia.org/wiki/Протокол_туннелирования#cite_note-6

https://marc.info/?l=openssh-unix-dev&m=105554033415532

Связанный контент