客户端 <--> 本地 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 功能被写入了服务器,这两种情况都是由代码作者编写的。除此之外,真的没什么可说的了。