我有两台机器S
,C
它们位于本地网络上。从网络上的任何机器访问互联网的方式是使用 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”是使用隧道的客户端。