Множество SOCKS-подключений могут делить один транспорт SSH
ssh -D мультиплексирует потоки к назначениям по каналам SSH; одно внешнее TCP-соединение может по-прежнему стать их общим узким местом.
Один процесс ssh -D может обслуживать несколько подключений к сайтам одновременно. Считайте уровни отдельно:
| Уровень | Что он переносит |
|---|---|
| Приложение к слушателю SOCKS | Отдельные подключения приложений и запросы SOCKS |
| Каналы SSH | Независимо адресуемые потоки с управлением потоком на уровне канала |
| Транспорт SSH | Мультиплексированные данные каналов, обычно через одно нижележащее TCP-соединение |
| Шлюз к сайтам | Отдельные подключения к назначениям, которые открывает шлюз |
Поэтому один зашифрованный сокет SSH не означает, что каждый запрос к сайту выстраивается в очередь в одном соединении с назначением. Динамическое перенаправление передаёт данные потоков и открывает новые соединения; оно отличается от пакетного туннеля, который переносит исходные TCP-пакеты приложения и заголовки IP внутри другого TCP-соединения.
Общий транспорт всё же важен. Пропускная способность, планирование, работа шифрования, а также потери или задержки транспорта могут влиять сразу на несколько каналов. Задержка одного назначения сама по себе не доказывает ограничение в один канал.
Если несколько приложений замедляются одновременно, проверьте, используют ли они одну и ту же сессию SSH и путь через шлюз, затем сравните их реальную нагрузку. Подсчёт локальных портов SOCKS не измеряет ни пропускную способность, ни независимые маршруты. Мультиплексирование само по себе не обещает ни ускорения, ни отдельного публичного выхода для каждого потока.