【问题标题】:Are "SOCKS5 proxying" and "ssh tunneling" same thing?“SOCKS5 代理”和“ssh 隧道”是一回事吗?
【发布时间】:2023-03-14 16:55:01
【问题描述】:
  1. 我知道我可以通过 ssh -D some-port-number remote-server-url 运行 socks5 代理。
  2. 我知道我可以将我的应用程序(例如 firefox)配置为使用 socks5 代理(通常通过指定类似 socks5://localhost:that-port-number-metioned-above 的内容)。
  3. 我听到网上有人将这种技术称为“socks5 代理”或“ssh 隧道”;有时我什至看到人们在谈论“反向 ssh 隧道”。
  4. 但据我所知,socks5 和 ssh 是完全不同的协议,它们之间唯一的相似之处是它们都具有服务器-客户端架构。阅读 wiki 定义并在谷歌上搜索这些概念并没有澄清我的困惑。..

那么这些概念——SOCKS5 proxying、ssh tunneling、reverse ssh tunneling 是如何相互关联的?

【问题讨论】:

    标签: ssh proxy openssh socks


    【解决方案1】:

    你描述的是一个 SOCKS 代理。它是各种工具使用的独立协议。 openssh 将这个加密的协议从一个点传送到另一个点。但更准确地说,它被称为 TCP 端口转发(它将客户端的一个端口通过安全隧道转发到服务器)。

    还有其他可能在openssh 中使用 TCP 端口转发,使用正确命名为 Local(将远程服务“带到”本地主机)和 Remote(使本地服务可从远程主机访问)的 -L 和 -R 开关)。

    如您所见,它们有相似之处,但它们的实现方式不同。它们都是 TCP 端口转发(通过安全隧道)。 Dynamic (-D) 特殊,因为服务器必须了解 SOCKS 协议。

    【讨论】:

    • 阅读你的答案加上重新阅读 ssh 隧道上的维基百科页面加上重新阅读 ssh 端口转发上的 ubuntu wiki 页面加上重新阅读 -L -R -D 上的 ssh 手册页加上重新阅读这个(unix.stackexchange.com/questions/115897/…)帖子最终使对我有感觉!
    • 还有一个问题:我知道 SSH 和 SOCKS 是完全不同的两个独立协议,但是……openssh 是否将 SOCKS 协议用于其 -D 选项,因为 SOCKS 协议在某种程度上与 SSH 协议相关? (可能两者都是由同一作者起草的)或者 openssh 只是碰巧使用 SOCKS,因为 SOCKS 可以完成这项工作?
    • 不,socks 用于 SSH,因为它是其他应用程序使用的某种标准协议。您可以在大多数浏览器中使用 SOCKS,但在 Linux 中也可以在系统范围内使用,AFAIK
    猜你喜欢
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2017-04-15
    • 2016-08-17
    • 2020-07-31
    • 2020-11-07
    • 1970-01-01
    • 2013-08-12
    相关资源
    最近更新 更多