ssh:哪一方正在运行SOCKS代理?

可能重复:
SSH和端口转发袜子代理

当我使用dynamic转发(ssh -D)build立一条隧道时,哪一边正在运行SOCKS代理? 也就是说,代理是运行在本地端(客户端)还是远端(服务器)?

情况如下:我想使用-Lbuild立几个链接在一起的隧道。 如果-D隧道是最后一个或第一个?

编辑:我发现超级用户的第二段的答案( -D隧道应该在最远端)。 但是我仍然想知道代理代码在哪里运行。

快速浏览OpenSSH资源,可以发现:

本地ssh客户端处理-D非常简单,就像所有其他转发套接字一样:本地监听,将一个通道推送到服务器。

远程sshd服务器处理涉及SSH_CHANNEL_DYNAMIC所有代理,包括解码SOCKS头,进行出站连接和多路复用数据。