X通过NAT转发

时间:2013-12-19 18:54:18

标签: oracle amazon-web-services oracle11g x11 x11-forwarding

我正在尝试在AWS Linux机器上从头开始安装Oracle 11g。为了做到这一点,我相信我需要启用X转发,以便我可以使用图形安装。我从未对X服务器/客户端的情况很好。

设置

  • cygwin64(本地)
  • NAT实例(亚马逊)
  • 私有子网中的Linux实例可通过所述NAT(亚马逊)访问

我想将Linux安装从Linux实例通过NAT转发到我的本地计算机。任何帮助,将不胜感激。我很乐意提供更多信息,特别是因为到目前为止我没有提供太多信息。我也很想听到我说这一切都错了,从命令行安装Oracle很容易。

1 个答案:

答案 0 :(得分:1)

客户端和服务器似乎在X世界中“倒退”,因为您的工作站是“服务器”,提供显示设备和键盘/鼠标的服务 ...同时程序你经常远程运行的是“客户端”,使用那些显示和输入设备服务。

因此,您想要运行的程序需要能够“向后”连接到您的计算机,但您可以暂时忘记NAT方面,因为这不是直接相关的。重要的是你有办法从头到尾建立一个SSH连接链,这应该是你所需要的,因为SSH可以完成工作。在回答这个问题时,没有防火墙受到伤害。

我不知道cygwin有什么样的SSH实用程序,但它可能具有可比性。我首先在端到端Linux上测试以下内容,然后在工作站的Windows 7桌面计算机上将“ssh”替换为“\ Program Files(x86)\ PuTTY \ putty.exe”。这两种方案都按预期工作,并且参数方便地相同。

我们将调用NAT机器主机名“natbox”和数据库“databox”。

在本地计算机上,您的X服务器可能正在侦听端口6000,因此我们需要将流量恢复到它。

workstation $ ssh -R 127.0.0.1:5555:127.0.0.1:6000 natbox

我随意选择了5555,但1024以上的任何未使用值都应该有效。你也可以使用6000,但这使得这个例子比现在更加反直觉。

第一个IP /端口对127.0.0.1:5555是指远程机器(natbox)。您的SSH会话将打开一个套接字,侦听远程计算机上的回送接口的端口5555。第二个IP /端口对127.0.0.1:6000指的是您的工作站,这是流量返回的位置。与“natbox”上的端口5555的连接将在您的工作站上进行隧道传输,并尝试连接到本地端口6000.

natbox $

所以现在我们登录到natbox,并且隧道是半建的。

natbox $ ssh -R 127.0.0.1:6000:127.0.0.1:5555 databox

这使得SSH连接到“databox”,它在该服务器的端口6000上打开一个侦听套接字,该端口6000绑定到环回地址。连接到该端口的连接将从ssh连接发回“natbox”,在那里他们将尝试连接到natbox的端口5555 ...在上一步中,我们已经链接回工作站的端口6000 - 你的X服务器

databox $ export DISPLAY=:0.0
databox $

完成。

在“databox”上运行的任何X客户端程序都会尝试在端口6000上连接到本地计算机的显示器“0”...这应该最终返回到您的控制台。

databox $ xterm

这应该打开本地显示器上“databox”的终端窗口。您不需要这样做,但可能更容易验证X设置并对其进行故障排除,而无需将Oracle组件拖入混合组件中。


注意,ssh :选项对127.0.0.1(以及它与第一个端口号之间的-R)的第一次引用实际上是隐含的,但是我将它们包括在内,因为它似乎略微少了对我来说是违反直觉的。通过在中间计算机上提供“执行命令”作为本地计算机上“ssh”的最终参数,也可以在单个命令行上级联设置,只要添加{{{ 1}}到第一个ssh,以便它知道你想要一个tty端到端...但它已经足够复杂了,所以我没有包含它。