在 Windows 10 中通过 SSH 隧道将网络呼叫重新路由到多个域

在 Windows 10 中通过 SSH 隧道将网络呼叫重新路由到多个域

我遇到以下情况:有些主机只能通过 ssh 隧道访问。假设它

我可以建立 SSH 隧道并将连接所需的 443 端口绑定到本地端口:

ssh -L 1443:example.com:443 -L 2443:other.com:443 -A -l username myproxy.com

到目前为止,一切都很好 - 当我拨打电话时https://localhost:1443,我可以打开 example.com,如果我拨打电话https://localhost:2443,我可以调用 other.com

问题:有些应用程序没有意识到这一点,仍然尝试通过常规主机名和端口进行连接。

将以下几行添加到我的hosts文件中,我就可以更接近最终的解决方案:

127.0.0.1 example.com
127.0.0.1 other.com

这样我就可以在浏览器中调用https://example.com:1443https://other.com:2443- 但端口仍然是个问题。我需要将两个域都映射到我的本地端口,443才能使其适用于其他应用程序。

我想我需要有一个本地代理服务器监听端口443并根据主机名转发流量到或者1443但这2443就是我迷失的地方。

我该怎么做才能让我机器上的所有应用程序仅使用主机名/端口,但让流量通过我的 SSH 隧道?

答案1

使用ssh -D。这将在指定端口(通常为 1080 或 9050)上创建一个 SOCKS 5 代理服务器,您可以在浏览器中配置并访问一切通过 SSH 隧道。

这与 OpenSSH、PuTTY(plink)、Bitvise Tunnelier 的工作方式相同;并且不依赖于任何操作系统级功能。

例如,在ssh -D 9050运行时,您可以像这样配置 Firefox:

在此处输入图片描述

(Chrome 可能需要命令行选项反而。)

相关内容