1

我正在尝试在 AWS Linux 机器上从头开始安装 Oracle 11g。为此,我相信我需要启用 X 转发,以便我可以使用图形安装。我从来都不擅长 X 服务器/客户端的情况。

设置

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

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

4

1 回答 1

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

这会建立到“databox”的 SSH 连接,在该连接中它会在该服务器的端口 6000 上打开一个侦听套接字,该端口绑定到回送地址。到达该端口的连接将通过 ssh 连接发送回“natbox”,在那里他们将尝试连接到 natbox 的端口 5555...服务器。

databox $ export DISPLAY=:0.0
databox $

完毕。

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

databox $ xterm

这应该从本地显示器上的“数据框”打开一个终端窗口。您不需要这个,但它可能会更容易验证和排除 X 设置故障,而无需将 Oracle 组件拖入组合中。


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

于 2013-12-20T02:32:05.260 回答