我正在尝试设置 SSH 隧道作为 Web 代理,以便在公共场所使用。我已经有一个可以使用的远程服务器,过去我也使用过这个服务器。但是现在当我尝试时,我成功建立了 SSH 连接,但 Web 浏览器没有返回我访问的每个页面的数据。
我使用的 SSH 命令是:
ssh -ND 8080 -p 20000[电子邮件保护]
这样连接就正确了。如果我不包含 -N,那么我就能正确地看到远程 shell,因此连接成功。
但是,当我将浏览器设置为使用本地代理时,每个页面都不会返回 HTML 数据。它也不会返回任何错误。实际上只是一个空白页。请注意,如果我断开 SSH 连接,则浏览器会显示代理错误。因此,浏览器肯定在使用代理。
如果我尝试在 Chrome 中执行此操作,则会收到一个 Chrome 错误,明确指出“未返回数据”。如果我尝试在 Firefox 中执行此操作,则只会得到一个空白页。
请注意,我仅从一个公共位置尝试此操作。我目前正在度假,并使用公寓的 wifi 连接。所以我猜这可能与他们的设置有关。但是,鉴于我可以成功通过 SSH 连接到我的服务器 - 我不确定他们的配置中有什么不同。请注意,我还尝试过通过代理进行 DNS 查找。
答案1
-D
选项分配一个套接字来监听端口 8080。因此,请确保在 SOCKS Host 中输入代理信息,不是HTTP 代理。
答案2
您说您已将浏览器设置为使用代理,但没有说明具体操作。您使用的是浏览器的 SOCKS 代理选项,而不是 HTTP(或其他)代理,对吗?
答案3
您的设置是什么?具体来说,您是否将连接设置为 socks 代理?
对于 Firefox,使用 Foxyproxy(扩展)会更简单。它可以使设置更方便。
答案4
我的办公室内有一个内部网,里面有一台单独的防火墙机器,昨天,我一直试图将我的工作防火墙计算机设置为代理服务器,并启用动态端口转发的 ssh 登录,即。ssh -D8080 <uname@firewall>
每次我尝试在家中将 localhost:8080 代理与客户端机器一起使用时,我的 chrome 浏览器都会出现“无数据返回”的错误。今天我意识到我关闭了阻止连接的防火墙机器的传出 443,80/tcp 端口。真是愚蠢的情况,我关闭了试图设置为代理服务器的机器的传出端口。因此,我可以得出结论,如果有什么东西阻止代理机器连接互联网,您可能会收到“无数据返回”错误消息,顺便说一下,53/udp 在线,所以问题不是解析名称而是连接互联网。