3

Я использую команду ssh -N -D 0.0.0.0:1080 localhost которая прекрасно работает для моего веб-браузера, но когда я пытаюсь туннелировать приложение трафика UDP, это не работает.

Я думал, что socks5 должен быть в состоянии обрабатывать трафик UDP, или мне нужно настроить что-то еще?

1 ответ1

7

SOCKS 5 поддерживает UDP. OpenSSH утверждает, что реализует SOCKS4 и SOCKS5, но реализует только подмножество протокола SOCKS5.

Удачи в поиске того, что поддерживается в документации, посмотрите вместо этого на источник:

    if (s5_req.version != 0x05 ||
        s5_req.command != SSH_SOCKS5_CONNECT ||
        s5_req.reserved != 0x00) {
            debug2("channel %d: only socks5 connect supported", c->self);
            return -1;
    }

(от функции channel_decode_socks5() в channels.c OpenSSH-6.4p1 с 8 ноября 2013 года . Обновление продолжается до OpenSSH-7.6p1, октябрь 2017 г.)

SSH_SOCKS5_CONNECT - командный код операции 1, который неявно является TCP-соединением. Команда 3 - UDP ASSOCIATE для UDP-прокси (это то, что было добавлено в SOCKS5, SOCKS4 или 4a не поддерживают UDP).

Доступны коммерческие и бесплатные (например, Dante) SOCKS5 прокси, которые поддерживают UDP.

Если вам не нужна динамическая переадресация портов UDP, вы можете настроить номер (заранее выбирая места назначения) переадресаций UDP через соединение SSH, используя один из следующих методов: трафик UDP через туннель SSH (я рекомендую подход socat , я считаю, это работать лучше всего.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .