web-dev-qa-db-ja.com

LinuxSOCKS5トンネリングがUDPトラフィックで機能しない

コマンドssh -N -D 0.0.0.0:1080 localhostを使用していますが、これはWebブラウザーでは完全に機能しますが、UDPトラフィックアプリケーションをトンネリングしようとすると機能しません。

Socks5はUDPトラフィックを処理できるはずだと思いましたか、それともセットアップする必要があるものが他にありますか?

3
user2736323

SOCKS5は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;
    }
_

(2013年11月8日からの_channels.c_、OpenSSH-6.4p1の関数channel_decode_socks5()から。Updateこれは引き続きOpenSSHまでのケース-7.6p1、2017年10月。)

_SSH_SOCKS5_CONNECT_ is command opcode 1 これは暗黙的にTCP接続です。コマンド3はUDPプロキシ用の_UDP ASSOCIATE_です(これはに追加されたものです) SOCKS5 、SOCKS4または4aはUDPをサポートしていません)。

UDPをサポートする商用および無料の(例: Dante )SOCKS5プロキシが利用可能です。

動的UDPポート転送が必要ない場合は、次のいずれかの方法を使用して、SSH接続を介したUDP転送の数(事前に宛先を選択)を設定できます。 SSHトンネルを介したUDPトラフィックsocatアプローチをお勧めします。これが最適に機能すると思います。)

7
mr.spuratic