从互联网,我可以通过 ssh 访问机器_A并且可以访问内联网。因此,我可以使用如下命令行访问所有内联网站点:
ssh Machine_A -f 'curl -s http://192.168.0.51' > index.html
问题在于网站是一个复杂的东西。它需要下载图像、javascript、css 等。
那么,我怎样才能“隧道“ 或者 ”翻译“我的连接只能使用命令行来访问网站吗?
请看以下场景:
- 我想访问该页面http://192.168.0.51
ssh
因此,我使用上述命令连接并下载该页面。- 我打开
index.html
浏览器,看到需要image.jpg
下载script.js
- 不知何故,我拦截了这个请求,制作了正确的线路来下载文件,然后浏览器使用它
我如何在没有直接访问权限的情况下访问此网站?我该怎么做机器_A成为我的“网关“如何访问内联网网站?
答案1
您要做的是建立一个 SSH 隧道并设置一个浏览器来代理该隧道上的流量,然后您就可以在该浏览器中访问这些资源。
由于您不想设置整个计算机或主浏览器来使用此 SSH 隧道,因此您可以使用备用浏览器,但它必须是允许您独立配置代理的浏览器。火狐允许你这样做,如果你使用 Firefox 作为常规浏览器,你可以使用 Firefox fork 类似水狐或者苍白之月它还允许您独立于系统或 Firefox 设置代理。
要启动隧道,请使用以下参数连接到 SSH 主机:
ssh -ND 9999 Machine_A
这将连接到机器_A并在端口上创建隧道9999(或您设置的任何端口)。
保持 ssh 连接运行,并在 Firefox(或类似的浏览器)中设置代理:
- 打开设置
- 向下滚动到网络设置部分,然后点击设置...按钮。
- 在新打开的窗口中:
- 选择手动代理配置单选按钮
127.0.0.1
在 SOCKS Host 字段和9999
Port 字段中输入- 检查使用 SOCKS v5 时的代理 DNS复选框
- 单击“确定”按钮保存设置。
现在您应该能够通过此浏览器浏览内联网网站,就像在本地一样。