我如何查看来自其他网络的页面?

我如何查看来自其他网络的页面?

如果我的术语不正确,请原谅。我遇到以下情况:

当我在办公室工作时,我会访问一台远程机器(在其他国家/地区)(我们称之为机器R) 通过其 IP 地址 (使用 ssh)。我在那里工作,然后当我想可视化结果时,我会在该 IP 地址上使用特定端口打开浏览器,然后我就可以看到我的工作可视化。为了访问远程机器,我使用位于办公室的一台计算机(我们称之为工作机器

现在,我想在家里做这件事。在家里,我有一个 VPN 来访问办公室网络。当我激活该 VPN 时,我可以访问我的工作电脑工作机器

但是,我无法访问远程机器机器R) 中我完成了我的工作。

我该如何解决这个问题?好吧,我使用 ssh 访问我的 WorkMachine,然后在其中再次使用 ssh MachineR 访问。这样我就可以完成我的工作了。

我的问题是我无法使用可视化部分做到这一点(或者我还没有弄清楚)。

正如所料,我无法在家里通过浏览器打开 MachineR 的 IP。

所以我的问题是,有没有办法我可以在家打开 MachineR 来查看我的工作可视化?

(顺便说一下,我通过 IP 地址访问 MachineR)

答案1

您可能不太清楚这个等式的一个重要部分是 SSH 的“-X”标志。“-X”启用 X 转发,并且可能在您的工作桌面(而不是您的家庭桌面)的配置/设置中暗示。

只要我不使用 sudo 来更改用户(这似乎会干扰即使在保存环境时使用 X 显示的授权),我就可以在每个实例中使用 SSH -X 来查看系统的远程桌面上的内容。

更有用的变体可能是使用“-J”开关将工作计算机用作跳转箱。 总的来说,我可以做类似的事情

  ssh -X -J [email protected] [email protected]

请注意,上述内容确实假设用户名被信任可以登录 final box - 如果使用密钥登录,则您家用电脑上的密钥需要位于 final.box 上的 ~username/.ssh/authorized_keys 中

您没有指定使用的操作系统 - 我一直使用 Linux。希望这是一个选项 - 或者如果不是,它足以让您继续推出自己的解决方案。(如果您使用 Windows,我认为您将来会使用 cygwin!

答案2

由于您可以通过 SSH 访问两个主机,并且结果是以网页而不是本机应用程序的形式提供的,因此可以使用ssh -D <port>将您的客户端设置为 SOCKS 代理,然后您可以在 Firefox(也可能是其他浏览器)中对其进行配置,以使所有流量都通过该 SSH 连接。

使用中间服务器有两种方法可以实现此目的:

  1. 链式转发:

    Home> ssh WorkPC -L 1080:localhost:1080
      WorkPC> ssh MachineR -D 1080
    
  2. 隧道化整个 SSH 连接:

    Home> ssh MachineR -J WorkPC -D 1080
    
  3. 根据具体情况,直接通过工作机器设置转发可能就足够了,无需第二跳:

    Home> ssh WorkPC -D 1080
    

-DPuTTY(其中模式称为“动态转发”)和其他 SSH 客户端中也存在相同的选项。

相关内容