子域名到另一个私有 IP 地址

子域名到另一个私有 IP 地址

我目前无法从本地网络外部通过 ssh 连接到我的 2 号机器。请参阅下图了解概览。

我的设置图片:

在此处输入图片描述

我想在不进入本地网络的情况下通过 ssh 访问这台机器。

来自 DNS 服务器的 DNS 设置

@    Type  TTL   Prio Data
     A     300   0    1.2.3.4

foo  Type  TTL   Prio Data
     CNAME 3600  0    192.168.0.15

bar  Type  TTL   Prio Data
     A     3600  0    192.168.0.15

我已经尝试使用 CNAME 和 A 作为私有 IP,但无法使用 ssh 连接到它。

我还有以下端口转发规则

IP            Local port External port 
192.168.0.15  22 - 22    33 - 33 
192.168.0.04  22 - 22    22 - 22

下列作品(来自网络外部):

$ ssh [email protected]

下列才不是工作(来自网络外部):

$ ssh [email protected]

或者

$ ssh [email protected] 

编辑1

更改了错误的 IP 地址。

更改了端口转发。端口 33 现在已重定向至192.168.0.15

现在它可以用于。但不能用于子域名。$ ssh -p 33 [email protected]

答案1

让我更清楚地说明这一点:

RFC1918 IP 是无法通过互联网路由. 按设计。

为什么?
我家里有 192.160.0.x/24 范围?你是想路由到我的服务器吗?
还是我的邻居,他可能也有 192.168 的东西?
或者他的邻居?……
等等。

该范围仅供您本地使用。无法通过互联网访问。

如果您将 foo.example.com 指定为 192.168.0.15,那么您可以随意将其用作本地网络的本地名称服务器,这样就没问题了。但您不能在本地网络之外使用它。

以下操作无效(在网络外部):$ ssh[电子邮件保护]

应该如此(但并非如此)。如果 IP 解析为您正在执行 ssh 到 192.168.0.15(端口 22)。到本地 192.168.0.15 所在的任何站点(不是您所在位置的 PC,也不是 NATting 路由器!)
因此路由器不会收到任何信息。忽略端口转发。如果您什么也没收到,则没有任何内容可以应用它。


现在你可以做什么:

如果您只有一个公网 IP,那么您只能有一个 IP:port 组合。如果只有一个 IP,则 IP 是固定的。因此,您只能转发端口。

例如:
ssh 1.2.3.4 2022 并将其端口转发至 192.168.0.15
ssh 1.2.3.4 3022 并将其端口转发至 192.168.0.4

只有一个 IP,所有域名都应解析为您的 1.2.3.4 IP。


或者,获取更多 IP。互联网的设计原则是每个主机至少有一个唯一的公共 IP。您之所以会遇到这个问题,是因为您正在使用 NAT,这是一种解决我们用尽 IP 地址的方法IPv4地址。

幸运的是,我们知道这即将到来,而且在过去的二十年里,IP v6 已经推出。如果你能使用它,那么你就拥有了比你需要的更多的 IP,你只需 ssh 就可以连接到公共 (IP v6) 地址。

答案2

再说一遍,我不能发表评论……无论如何。除非你在路由器上施展魔法,否则你可能无法像使用子域名那样轻松地获得它。

问题是,从外部接入点唯一可访问的地址是您的互联网 IP(1.2.3.4),因此您的子域也需要指向该地址。目前可行的是,您可以使用不同的端口。

如果您想使用子域名来实现这一点,您必须想出一种方法,让您能够根据所请求的 DNS 名称转发数据包。这并不容易,通常需要某种深度数据包检测,因为您需要深入数据流才能获得此类信息,而路由(通常)是在较低的通信层上完成的。

另一个选择是获取第二个公共 IP(对于普通 ISP 来说,这可能也很难)。因此,您可以将第一个外部 IP 指向第一台机器,将第二个外部 IP 指向第二台机器。这也只是一种 NAT。

解决此问题的另一种方法是设置整个 VPN,这样您实际上就“进入”了网络,并且能够解析这些私有 IP。

编辑:我很好奇,我搜索了一下(我的 DNS 知识不是最强的),但看起来你可能使用 SRV 记录将你的子域指向不同端口上的顶级域。因此,foo.exmaple.com 将解析为 example.com:33,至少根据此线程:https://stackoverflow.com/questions/19015138/how-to-redirect-dns-to-different-ports

这可能是一些不太常见的设置...所以您可能会遇到一些障碍。

相关内容