ssh 如何知道代理隧道下的流量?

ssh 如何知道代理隧道下的流量?

客户端 <--> 本地 SOCKS 代理 <--> 远程 VPS (SSH) 服务器

我想知道,当客户端发送 HTTP 请求(www.youtube.com)时,

并且请求通过 SOCKS 代理到达 VPS 服务器,

ssh 服务器如何知道获取客户端的 YouTube 页面并发回而不是将其丢弃?

我没有对 VPS 服务器的 sshd_config 进行任何特殊配置

我对此进行了大量搜索,但似乎所有这些文章都只是说说而已

关于 '客户端->代理->ssh 服务器' 部分,而不是 'ssh 服务器->外部世界' 部分

答案1

sshd 内部实现 SOCKS 的代码正在执行该工作。

当您运行 时ssh remote.server -D xxx,会在端口 xxx 上设置一个本地侦听器。到该本地端口的流量通过 ssh 隧道传输到远程服务器中的 SOCKS 代码。

它之所以有效,是因为隧道功能被写入了客户端,而完整的 SOCKS 功能被写入了服务器,这两种情况都是由代码作者编写的。除此之外,真的没什么可说的了。

相关内容