要求:问题必须是假设性的,答案仅限于技术方面。(不涉及道德和其他事项)
我所在的组织(学校)的网络政策非常严格。我们只能通过 squid 代理访问互联网。Stackoverflow 被禁止了,我想以某种方式访问它。
现在我在某个云中拥有一台直接连接到互联网主干网的机器。我拥有这台机器的 root 访问权限。不用说,它位于我组织的网络之外。这台机器可以通过 HTTP 从我的组织网络访问。
现在告诉我,我可以在云机器上安装什么东西,以便我可以从组织的网络上浏览任何我想要的内容?
我认为这可以归结为一个问题:基本上,我们有 SSH 隧道,HTTP 隧道是否可行?
答案1
您是否知道代理服务器实际上是 Squid?代理服务器的性质改变了方法。
学校法规可能会变得相当复杂(我不是本意),但最重要的是学区有责任尽最大努力适当过滤内容(这与标准大学政策相反)。这意味着学校需要某种方式不断更新哪些网站可以访问(当然,除非他们只是举手投降并制定非常严格的白名单政策,如果他们只是使用 Squid,他们可能会这样做)。在许多组织中,使用专用的代理设备订阅不断更新网站分类的服务。多年来,这些服务在检测和防止绕过机构代理的标准方式方面已经变得非常出色(例如在网络外部设置您自己的代理服务器并使用它来查看 Stack Overflow,这基本上是 Bruno 的答案)。
可以通过 HTTP 代理使用 VNC,这样也许可以实现您想要的功能(远程访问外部机器,然后在其中运行 Web 浏览器)。我还看到一些人通过 HTTP 代理成功建立了 SSH 隧道(Craig 指出这应该行不通,也许对 Squid 也不行,但我见过使用其他代理设备成功建立隧道,尽管我自己从未尝试过)。同样,除非他们真的使用相当静态的 Squid 配置,否则如果管理员很快发现您在做什么,请不要感到惊讶。
事实上,由于我受雇就是为了防止您所描述的事情发生,所以我应该指出,违反您所在机构的可接受使用政策将使您陷入困境。是的,您说要无视道德规范,但这篇文章以我的名义出现,并且很容易被 Google 搜索到。:)
话虽如此,即使我还是学生而不是员工,我也发现有些问题最好由组织来解决。某个地方有一个解除网站封锁的程序,并且有人被授权遵守该程序(即教师、教授等)。如果你能向他们说明某些网站应该被解除封锁,那么他们就可以向 IT 部门说明。只要以前没有人冒犯过 BOFH,你就应该能够访问该网站。毕竟,它是众所周知的,致力于智能地解决技术问题,而不是交换攻击网络的方式。
答案2
您需要在该服务器上建立网站吗?如果不需要,为什么不在端口 80 上运行 sshd,然后使用 SSH 隧道?如果这不可能,这可能感兴趣但我还没有尝试过。
答案3
如果您的机器正在运行类似 Apache Httpd 的程序,您可能可以在机器上配置一个路径,以使用mod_proxy
其反向代理功能将请求中继到您选择的服务器。