通过 SSH 访问的远程代理进行 Web 访问

通过 SSH 访问的远程代理进行 Web 访问

我正在运行 Windows 或 Linux 的客户端 PC 上浏览网页。我想浏览一个http://access.lan:52050//cgi-bin/login.cgi无法从我的电脑直接访问的网站 ( )。

  • 如果我通过代理机器就可以浏览该网站。它的IP地址是192.168.1.1。它运行的是 Red Hat Linux。
  • 我可以使用 SSH 版本 1 从客户端 PC 登录 Red Hat 计算机。

我怎样才能以简单的方式进行设置?

答案1

您可以使用 ssh 隧道来访问该网站。由于IP 192.168.1.1的PC可以访问该网站,因此您可以让192.168.1.1代表您询问该网站。您发送的所有请求将首先通过 ssh 隧道发送到 192.168.1.1。

您必须使用以下命令:

$ ssh -N -L your-port:access.lan:52050 [email protected]

笔记:

1. your-port: Port > 1024 which you will make as your end of tunnel.    
2. user-name: login name of the user on 192.168.1.1 whose passwd you know.

答案2

在 Linux 客户端 (212.1.1.1) 的终端中运行以下命令:

ssh -L 3130:localhost:3128 192.168.1.1

这会将 Linux 客户端上 TCP 端口 3130 的连接重定向到 192.168.1.1 上的 TCP 端口 3128。您可以选择您喜欢的端口,而不是本地计算机上的 3130。在代理上,使用代理程序运行的任何端口(可以是 3128、8080 或其他端口)。

当您想要使用代理时,请告诉您的浏览器使用本地主机端口 3130 作为代理 ( http://127.0.0.1:3030/)。

如果您不想每次启动和停止使用代理时都编辑浏览器设置,请使用浏览器扩展,例如狡猾的代理对于 Firefox 或相当于铬合金并将其设置为http://127.0.0.1:3030/仅用作 URL 匹配的代理http://access.lan:52050/*

如果您要经常这样做,请将以下行添加到文件中~/.ssh/config

Host some_proxy
HostName 192.168.1.1
LocalForward 3130 localhost:3128

然后运行ssh some_proxy(您可以选择比 更重要的名称some_proxy)。

注意:SSH 版本 1 已经过时了。我认为我提到的命令当时就存在,但我没有检查。令我惊讶的是 SSH 第 1 版服务器仍在运行。您确定不能使用 SSH 协议版本 2 吗?

相关内容