如何设置 SSH 隧道来连接到代理?

如何设置 SSH 隧道来连接到代理?

我有两台机器SC它们位于本地网络上。从网络上的任何机器访问互联网的方式是使用 Web 代理,使用的是 Squid3。因此,我一次只能从其中一台机器登录代理,因此无法同时从其他机器访问互联网。

因此,我设置了从C到 的SSH 隧道S。我登录到 上的 Web 代理S。我将 上的 Web 浏览器配置C为使用隧道作为代理。但是,我无法从 访问互联网C。我在启动 SSH 隧道进程的终端上收到错误“连接被拒绝”。

ssh -fND 8080 user@remotehost

在此处输入图片描述

我的问题是:由于S本身也使用代理,我是否需要在任何地方更改任何设置以使 SSH 隧道正常工作?

如何S知道如何处理C通过 SSH 隧道接收到的数据?

编辑:我现在已经完成了以下操作:S我安装了 squid3 代理服务器,并配置C为使用新代理。此解决方案有效。我不需要 SSH 提供的加密。我想知道这一点:除了加密之外,SSH 隧道是否比我当前的解决方案更好?(请告诉我我是否应该为此提出一个新问题)。

答案1

这是我使用的命令:ssh -g -L192.168.2.1:8190:proxy-server:3128 trunk

因此,我在本地网络中有一台客户端计算机、一台本地服务器、然后是我连接的服务器,最后是作为 HTTP 代理工作的代理服务器。代理和中继服务器当然可以相同。

我发出这个命令本地服务器之后,通过地址为 192.168.2.1 的接口访问的客户端可以使用代理。需要使用选项 -g 才能使代理对任何人开放,即创建隧道的机器之外的人。使用 -g 是有风险的,因此您需要指定要绑定的本地接口;您不想为全世界打开隧道。

在您的图像中,“代理”既是代理服务器又是中继服务器,“S”是本地服务器,“C”是使用隧道的客户端。

相关内容