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

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

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

当我使用动态转发 (ssh -D) 设置隧道时,哪一端正在运行 SOCKS 代理?也就是说,代理是在本地端 (客户端) 还是在远程端 (服务器) 上运行?

情况如下:我想使用 建立多个串联的隧道-L-D隧道应该是串联中的最后一个还是第一个?

编辑:我在 Super User 上找到了第二段的答案(隧道-D应该在最远端)。但我仍然想知道代理代码在哪里运行。

答案1

快速浏览一下 OpenSSH 源代码可以发现:

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

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

相关内容